123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- import 'package:flowy_infra/color.dart';
- import 'package:flutter/material.dart';
- enum ThemeType {
- light,
- dark,
- }
- class AppTheme {
- static ThemeType defaultTheme = ThemeType.light;
- bool isDark;
- late Color surface; //
- late Color hover;
- late Color selector;
- late Color red;
- late Color yellow;
- late Color green;
- late Color shader1;
- late Color shader2;
- late Color shader3;
- late Color shader4;
- late Color shader5;
- late Color shader6;
- late Color shader7;
- late Color bg1;
- late Color bg2;
- late Color bg3;
- late Color bg4;
- late Color tint1;
- late Color tint2;
- late Color tint3;
- late Color tint4;
- late Color tint5;
- late Color tint6;
- late Color tint7;
- late Color tint8;
- late Color tint9;
- late Color main1;
- late Color main2;
- /// Default constructor
- AppTheme({this.isDark = true});
- /// fromType factory constructor
- factory AppTheme.fromType(ThemeType t) {
- switch (t) {
- case ThemeType.light:
- return AppTheme(isDark: false)
- ..surface = Colors.white
- ..hover = const Color(0xFFe0f8ff) //
- ..selector = const Color(0xfff2fcff)
- ..red = const Color(0xfffb006d)
- ..yellow = const Color(0xffffd667)
- ..green = const Color(0xff66cf80)
- ..shader1 = const Color(0xff333333)
- ..shader2 = const Color(0xff4f4f4f)
- ..shader3 = const Color(0xff828282)
- ..shader4 = const Color(0xffbdbdbd)
- ..shader5 = const Color(0xffe0e0e0)
- ..shader6 = const Color(0xfff2f2f2)
- ..shader7 = const Color(0xffffffff)
- ..bg1 = const Color(0xfff7f8fc)
- ..bg2 = const Color(0xffedeef2)
- ..bg3 = const Color(0xffe2e4eb)
- ..bg4 = const Color(0xff2c144b)
- ..tint1 = const Color(0xffe8e0ff)
- ..tint2 = const Color(0xffffe7fd)
- ..tint3 = const Color(0xffffe7ee)
- ..tint4 = const Color(0xffffefe3)
- ..tint5 = const Color(0xfffff2cd)
- ..tint6 = const Color(0xfff5ffdc)
- ..tint7 = const Color(0xffddffd6)
- ..tint8 = const Color(0xffdefff1)
- ..tint9 = const Color(0xffdefff1)
- ..main1 = const Color(0xff00bcf0)
- ..main2 = const Color(0xff00b7ea);
- case ThemeType.dark:
- return AppTheme(isDark: true)
- ..surface = const Color(0xff252525)
- ..hover = const Color(0xFFe0f8ff) //
- ..selector = const Color(0xfff2fcff)
- ..red = const Color(0xfffb006d)
- ..yellow = const Color(0xffffd667)
- ..green = const Color(0xff66cf80)
- ..shader1 = const Color(0xff333333)
- ..shader2 = const Color(0xff4f4f4f)
- ..shader3 = const Color(0xff828282)
- ..shader4 = const Color(0xffbdbdbd)
- ..shader5 = const Color(0xffe0e0e0)
- ..shader6 = const Color(0xfff2f2f2)
- ..shader7 = const Color(0xffffffff)
- ..bg1 = const Color(0xfff7f8fc)
- ..bg2 = const Color(0xffedeef2)
- ..bg3 = const Color(0xffe2e4eb)
- ..bg4 = const Color(0xff2c144b)
- ..tint1 = const Color(0xffe8e0ff)
- ..tint2 = const Color(0xffffe7fd)
- ..tint3 = const Color(0xffffe7ee)
- ..tint4 = const Color(0xffffefe3)
- ..tint5 = const Color(0xfffff2cd)
- ..tint6 = const Color(0xfff5ffdc)
- ..tint7 = const Color(0xffddffd6)
- ..tint8 = const Color(0xffdefff1)
- ..tint9 = const Color(0xffdefff1)
- ..main1 = const Color(0xff00bcf0)
- ..main2 = const Color(0xff00b7ea);
- }
- }
- ThemeData get themeData {
- var t = ThemeData(
- textTheme: (isDark ? ThemeData.dark() : ThemeData.light()).textTheme,
- textSelectionTheme: TextSelectionThemeData(cursorColor: main2),
- primaryIconTheme: IconThemeData(color: hover),
- iconTheme: IconThemeData(color: shader1),
- canvasColor: shader6,
- // hoverColor: hover,
- colorScheme: ColorScheme(
- brightness: isDark ? Brightness.dark : Brightness.light,
- primary: main1,
- primaryVariant: main2,
- secondary: main2,
- secondaryVariant: main2,
- background: bg1,
- surface: surface,
- onBackground: bg1,
- onSurface: surface,
- onError: red,
- onPrimary: bg1,
- onSecondary: bg1,
- error: red),
- );
- return t.copyWith(
- materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
- highlightColor: main1,
- indicatorColor: main1,
- toggleableActiveColor: main1);
- }
- Color shift(Color c, double d) => ColorUtils.shiftHsl(c, d * (isDark ? -1 : 1));
- }
|