Skip to content

Latest commit

 

History

History
50 lines (40 loc) · 1.22 KB

README.md

File metadata and controls

50 lines (40 loc) · 1.22 KB

Light and dark theme with custom color.

In this demo you can find add custom color in theme for light and dark theming. We this demo ThemeExtension to add customise colors. Riverpod state management is use for handling app theme data.

20230130_203347-COLLAGE_2

Use ThemeExtension for add custom color and attribute in ThemeData

class AppColors extends  ThemeExtension<AppColors> {
  final Color? color1;
  final Color? color2;
  final Color? color3;

  const AppColors({
    required this.color1,
    required this.color2,
    required this.color3,
  });

  @override
  AppColors copyWith({
    Color? color1,
    Color? color2,
    Color? color3,
  }) {
    return AppColors(
      color1: color1 ?? this.color1,
      color2: color2 ?? this.color2,
      color3: color3 ?? this.color3,
    );
  }

  @override
  AppColors lerp(ThemeExtension<AppColors>? other, double t) {
    if (other is! AppColors) {
      return this;
    }
    return AppColors(
      color1: Color.lerp(color1, other.color1, t),
      color2: Color.lerp(color2, other.color2, t),
      color3: Color.lerp(color3, other.color3, t),
    );
  }
}