123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- import 'package:flutter/material.dart';
- @immutable
- class AFThemeExtension extends ThemeExtension<AFThemeExtension> {
- final Color? warning;
- final Color? success;
- final Color tint1;
- final Color tint2;
- final Color tint3;
- final Color tint4;
- final Color tint5;
- final Color tint6;
- final Color tint7;
- final Color tint8;
- final Color tint9;
- final Color textColor;
- final Color greyHover;
- final Color greySelect;
- final Color lightGreyHover;
- final Color toggleOffFill;
- final Color progressBarBGcolor;
- final TextStyle code;
- final TextStyle callout;
- final TextStyle caption;
- const AFThemeExtension({
- required this.warning,
- required this.success,
- required this.tint1,
- required this.tint2,
- required this.tint3,
- required this.tint4,
- required this.tint5,
- required this.tint6,
- required this.tint7,
- required this.tint8,
- required this.tint9,
- required this.greyHover,
- required this.greySelect,
- required this.lightGreyHover,
- required this.toggleOffFill,
- required this.textColor,
- required this.code,
- required this.callout,
- required this.caption,
- required this.progressBarBGcolor,
- });
- static AFThemeExtension of(BuildContext context) {
- return Theme.of(context).extension<AFThemeExtension>()!;
- }
- @override
- AFThemeExtension copyWith({
- Color? warning,
- Color? success,
- Color? tint1,
- Color? tint2,
- Color? tint3,
- Color? tint4,
- Color? tint5,
- Color? tint6,
- Color? tint7,
- Color? tint8,
- Color? tint9,
- Color? textColor,
- Color? greyHover,
- Color? greySelect,
- Color? lightGreyHover,
- Color? toggleOffFill,
- Color? progressBarBGcolor,
- TextStyle? code,
- TextStyle? callout,
- TextStyle? caption,
- }) {
- return AFThemeExtension(
- warning: warning ?? this.warning,
- success: success ?? this.success,
- tint1: tint1 ?? this.tint1,
- tint2: tint2 ?? this.tint2,
- tint3: tint3 ?? this.tint3,
- tint4: tint4 ?? this.tint4,
- tint5: tint5 ?? this.tint5,
- tint6: tint6 ?? this.tint6,
- tint7: tint7 ?? this.tint7,
- tint8: tint8 ?? this.tint8,
- tint9: tint9 ?? this.tint9,
- textColor: textColor ?? this.textColor,
- greyHover: greyHover ?? this.greyHover,
- greySelect: greySelect ?? this.greySelect,
- lightGreyHover: lightGreyHover ?? this.lightGreyHover,
- toggleOffFill: toggleOffFill ?? this.toggleOffFill,
- progressBarBGcolor: progressBarBGcolor ?? this.progressBarBGcolor,
- code: code ?? this.code,
- callout: callout ?? this.callout,
- caption: caption ?? this.caption,
- );
- }
- @override
- ThemeExtension<AFThemeExtension> lerp(
- ThemeExtension<AFThemeExtension>? other, double t) {
- if (other is! AFThemeExtension) {
- return this;
- }
- return AFThemeExtension(
- warning: Color.lerp(warning, other.warning, t),
- success: Color.lerp(success, other.success, t),
- tint1: Color.lerp(tint1, other.tint1, t)!,
- tint2: Color.lerp(tint2, other.tint2, t)!,
- tint3: Color.lerp(tint3, other.tint3, t)!,
- tint4: Color.lerp(tint4, other.tint4, t)!,
- tint5: Color.lerp(tint5, other.tint5, t)!,
- tint6: Color.lerp(tint6, other.tint6, t)!,
- tint7: Color.lerp(tint7, other.tint7, t)!,
- tint8: Color.lerp(tint8, other.tint8, t)!,
- tint9: Color.lerp(tint9, other.tint9, t)!,
- textColor: Color.lerp(textColor, other.textColor, t)!,
- greyHover: Color.lerp(greyHover, other.greyHover, t)!,
- greySelect: Color.lerp(greySelect, other.greySelect, t)!,
- lightGreyHover: Color.lerp(lightGreyHover, other.lightGreyHover, t)!,
- toggleOffFill: Color.lerp(toggleOffFill, other.toggleOffFill, t)!,
- progressBarBGcolor:
- Color.lerp(progressBarBGcolor, other.progressBarBGcolor, t)!,
- code: other.code,
- callout: other.callout,
- caption: other.caption,
- );
- }
- }
- enum FlowyTint {
- tint1,
- tint2,
- tint3,
- tint4,
- tint5,
- tint6,
- tint7,
- tint8,
- tint9;
- String toJson() => name;
- static FlowyTint fromJson(String json) {
- try {
- return FlowyTint.values.byName(json);
- } catch (_) {
- return FlowyTint.tint1;
- }
- }
- Color color(BuildContext context) {
- switch (this) {
- case FlowyTint.tint1:
- return AFThemeExtension.of(context).tint1;
- case FlowyTint.tint2:
- return AFThemeExtension.of(context).tint2;
- case FlowyTint.tint3:
- return AFThemeExtension.of(context).tint3;
- case FlowyTint.tint4:
- return AFThemeExtension.of(context).tint4;
- case FlowyTint.tint5:
- return AFThemeExtension.of(context).tint5;
- case FlowyTint.tint6:
- return AFThemeExtension.of(context).tint6;
- case FlowyTint.tint7:
- return AFThemeExtension.of(context).tint7;
- case FlowyTint.tint8:
- return AFThemeExtension.of(context).tint8;
- case FlowyTint.tint9:
- return AFThemeExtension.of(context).tint9;
- }
- }
- }
|