seedkit_theme 0.4.0 copy "seedkit_theme: ^0.4.0" to clipboard
seedkit_theme: ^0.4.0 copied to clipboard

Темизация для приложений экосистемы SeedKit

seedkit_theme #

Пакет темизации для SeedKit-приложений.

Интеграция #

  • Создай тему до запуска приложения:
final theme = SeedKitThemeModule(
  primaryColor: const Color(0xff4345C3),
  fontFamily: FontFamily.golos,
  customThemes: [
    const UIAgreementThemeData.config(),
    const UIButtonThemeData.config(),
    const UIIconThemeData.config(),
  ],
);
  • Если используется сохранение выбранной темы, перед созданием ThemeCubit инициализируй хранилище:
await StorageFactory.to;

BlocProvider(
  create: (_) => ThemeCubit(
    ThemeRepository(ThemeProvider()),
  ),
);
  • В корне приложения оберни MaterialApp в ThemeWidget:
ThemeWidget(
  builder: (context, themeState) => MaterialApp.router(
    theme: theme.light,
    darkTheme: theme.dark,
    themeMode: themeState.themeMode,
  ),
);

Использование #

  • SeedKitThemeModule — входная точка темизации; создаёт ThemeData для light/dark и добавляет custom ThemeExtension.
  • ThemeCubit — менеджер состояния темы, умеет переключать тему через switchTheme.
  • ThemeState — хранит ThemeMode и флаг isDarkMode.
  • ThemeWidget — корневой виджет темизации приложения.
  • ColorExtension — opacity через оператор *, парсинг hex через ColorExtension.fromHex.
  • TextStyleExtensionsetWeight и setColor.
  • ContextThemeExtension — быстрый доступ к context.colorTheme и context.textTheme.
  • Weight — enum весов шрифта: regular, medium, semiBold, bold; в value хранится соответствующий FontWeight.
  • SeedKitTextThemeThemeExtension с теми же текстовыми стилями, что и StaticTextTheme; конструктор withColor применяет цвет ко всем стилям.
  • SeedKitColorThemeThemeExtension цветов приложения; содержит общие цвета, content/background/border/primary/neutral/semantic/status/sticker поля и конструкторы dark/light.
  • ThemeProvider — provider хранения выбранной темы.
  • ThemeRepository — репозиторий текущего ThemeMode со stream и сохранением значения.

Импорты #

import 'package:seedkit_theme/seedkit_theme.dart';
import 'package:seedkit_theme/seedkit_theme_cubit.dart';
import 'package:seedkit_theme/seedkit_theme_extensions.dart';
import 'package:seedkit_theme/seedkit_theme_models.dart';
import 'package:seedkit_theme/seedkit_theme_provider.dart';
import 'package:seedkit_theme/seedkit_theme_repository.dart';
0
likes
110
points
462
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Темизация для приложений экосистемы SeedKit

Repository

License

unknown (license)

Dependencies

flutter, seedkit_bloc, seedkit_module_storage

More

Packages that depend on seedkit_theme