m3e_buttons 0.0.1
m3e_buttons: ^0.0.1 copied to clipboard
Material 3 Expressive button components for Flutter with spring motion, toggle groups, and split menus.
import 'package:flutter/material.dart';
import 'screens/button_m3e_screen.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
ThemeMode _themeMode = ThemeMode.system;
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'M3E Buttons Demo',
themeMode: _themeMode,
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: Colors.deepPurple,
brightness: Brightness.light,
),
useMaterial3: true,
),
darkTheme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: Colors.deepPurple,
brightness: Brightness.dark,
),
useMaterial3: true,
),
home: _ButtonScreenWithThemeToggle(
themeMode: _themeMode,
onThemeModeChanged: (mode) => setState(() => _themeMode = mode),
),
);
}
}
class _ButtonScreenWithThemeToggle extends StatelessWidget {
const _ButtonScreenWithThemeToggle({
required this.themeMode,
required this.onThemeModeChanged,
});
final ThemeMode themeMode;
final ValueChanged<ThemeMode> onThemeModeChanged;
@override
Widget build(BuildContext context) {
return ButtonM3EScreen(
themeMode: themeMode,
onThemeModeChanged: onThemeModeChanged,
);
}
}