themes_manager 2.0.0 copy "themes_manager: ^2.0.0" to clipboard
themes_manager: ^2.0.0 copied to clipboard

A Flutter themes manager. Switch between themes easily. Add Theme at runtime.

Flutter Themes Manger #

A Themes Manger for your flutter app. Handles multiple themes in your app and easily switch between them. Generate new themes on the fly. Create your own Themes with custom data.

Getting Started #

Add themes_manager to your project.

  dependencies:
    themes_manager: ^1.0.0

run flutter packages get and import themes_manager

import 'package:themes_manager/theme_manager.dart';

How to configure themes data #

class MyApp extends StatelessWidget {
  final List<ThemeManagerData> themes = [
    ThemeManagerData(
      key: 'default-dark',
      name: 'Default Dark',
      creator: '',
      themeData: ThemeData.dark(),
    ),
    ThemeManagerData(
      key: 'default-light',
      name: 'Default Light',
      creator: '',
      themeData: ThemeData(),
    ),
  ];
  final List<CupertinoThemeManagerData> cupertinoThemes = [
    CupertinoThemeManagerData(
      key: 'default',
      name: 'Default',
      creator: '',
      themeData: CupertinoThemeData().copyWith(
        primaryColor: Colors.amber,
      ),
    ),
  ]

// Wrap your app `Widget` with `ThemesManager`:
  @override
  Widget build(BuildContext context) {
    return ThemesManager(
      defaultLightTheme: 'default-light',
      defaultDarkTheme: 'default-dark',
      defaultCupertinoTheme: 'default',
      themeMode: ThemeMode.system,
      themes: themes,
      cupertinoThemes: cupertinoThemes,
      // configure custom data.
      customData: [
        CustomThemeManagerData(
          key: 'example',
          data: 'Your Data Object'
        ),
      ],
      child: MyAppWidget(),
    ),
  }
}

How to add additional theme later in the app:

...
ThemesManager.of(context).generateTheme(
  ThemeManagerData(
    key: 'generated-theme',
    name: 'Generated Theme',
    creator: 'creator name',
    themeData: ThemeData.dark().copyWith(),
  ),
);
...

How to access customData

// remember you can pass any kind of data. To get type checking, you just need to pass the data type while getting that data.
ThemesManager.customDataOf<String>(context);

Additional Help #

For help getting started with Flutter, view our online documentation.

For help on editing package code, view the documentation.

1
likes
130
pub points
0%
popularity

Publisher

unverified uploader

A Flutter themes manager. Switch between themes easily. Add Theme at runtime.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

flutter, shared_preferences

More

Packages that depend on themes_manager