theme_extensions_builder_annotation 7.5.0 copy "theme_extensions_builder_annotation: ^7.5.0" to clipboard
theme_extensions_builder_annotation: ^7.5.0 copied to clipboard

Annotations for the theme_extensions_builder. This package does nothing without theme_extensions_builder.

example/example.md

Example #

The annotations do nothing on their own: theme_extensions_builder reads them and writes the copyWith, lerp, merge, == and hashCode members into a .g.theme.dart part file.

A theme extension #

import 'package:flutter/material.dart';
import 'package:theme_extensions_builder_annotation/theme_extensions_builder_annotation.dart';

part 'app_theme.g.theme.dart';

@themeExtensions
class AppTheme extends ThemeExtension<AppTheme> with _$AppTheme {
  const AppTheme({
    required this.primaryColor,
    required this.spacing,
    this.borderRadius,
  });

  final Color primaryColor;
  final double spacing;
  final BorderRadius? borderRadius;
}

// Generated alongside the mixin:
// final theme = context.appTheme;

A plain theme data class #

import 'package:flutter/material.dart';
import 'package:theme_extensions_builder_annotation/theme_extensions_builder_annotation.dart';

part 'button_theme_data.g.theme.dart';

@themeGen
class ButtonThemeData with _$ButtonThemeData {
  const ButtonThemeData({
    required this.backgroundColor,
    this.elevation = 2.0,
    this.debugLabel = '',
  });

  final Color backgroundColor;
  final double elevation;

  /// Left out of every generated member.
  @ignore
  final String debugLabel;

  static ButtonThemeData? lerp(
    ButtonThemeData? a,
    ButtonThemeData? b,
    double t,
  ) => _$ButtonThemeData.lerp(a, b, t);
}

See the package README for the generator setup and the full list of options.

4
likes
160
points
83.3k
downloads

Documentation

Documentation
API reference

Publisher

verified publisherpro100.dev

Weekly Downloads

Annotations for the theme_extensions_builder. This package does nothing without theme_extensions_builder.

Repository (GitHub)
View/report issues

Topics

#theme #theme-extension #build-runner #codegen

License

MIT (license)

Dependencies

meta

More

Packages that depend on theme_extensions_builder_annotation