theme_wizard
Theme Wizard helps you add theme switching to your Flutter apps with clean, customizable UI widgets and sensible defaults. Bring your own ThemeData and state; Theme Wizard handles the UI.
Features
- Clean, reusable widgets to switch themes
- Theme dropdown with color chips
- Visual theme preview card
- Combined selector panel for quick integration
- Sensible defaults with simple overrides
- Dart 3, null-safety, and documented APIs
Install
flutter pub add theme_wizard
Import:
import 'package:theme_wizard/theme_wizard.dart';
Quick Start
final themes = <ThemeModel>[
ThemeModel(
name: 'Blue',
themeData: ThemeData(useMaterial3: true, colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue)),
previewColor: Colors.blue,
),
ThemeModel(
name: 'Green',
themeData: ThemeData(useMaterial3: true, colorScheme: ColorScheme.fromSeed(seedColor: Colors.green)),
previewColor: Colors.green,
),
];
ThemeModel? current = themes.first;
ThemeSelectorPanel(
title: 'Choose a theme',
themes: themes,
selectedTheme: current,
styles: const ThemeSelectorStyles(radius: 16.0, spacing: 16.0),
onChanged: (t) => setState(() => current = t),
);
// Or use the pieces separately
ThemeDropdown(
themes: themes,
selectedTheme: current,
onChanged: (t) => setState(() => current = t),
);
ThemePreviewCard(theme: current!);
Example App
This package includes an example/
showcasing all widgets with labels for screenshots.
Run it:
cd example
flutter run
Contributing
- Pull requests are welcome. Please open an issue for discussion first.
- Follow effective Dart style and keep widgets documented.
- Roadmap:
- Additional widgets (toggle)
- Extended style system
- Theming extensions and presets
Screenshots / GIFs
https://github.com/user-attachments/assets/86fc5f6e-c778-4550-83fa-bd3bd5270257
License
MIT. See LICENSE.
Libraries
- theme_wizard
- Theme Wizard - main library entry.