@@ -16,52 +16,110 @@ class CatalogueColors {
1616 const CatalogueColors ._();
1717
1818 static const BullTheme light = BullTheme (
19- red: Color (0xFFC50909 ),
20- onRed: Color (0xFFFFFFFF ),
21- surface: Color (0xFFFFFFFF ),
22- card: Color (0xFFFFFFFF ),
23- text: Color (0xFF15171C ),
24- muted: Color (0xFF70747D ),
25- info: Color (0xFF0063F7 ),
26- success: Color (0xFF34C759 ),
27- warning: Color (0xFFFB9300 ),
28- btc: Color (0xFFFF9500 ),
29- outlineVariant: Color (0xFFE8E8E8 ),
30- shimmerBase: Color (0xFFE0E0E0 ),
31- shimmerHighlight: Color (0xFFF5F5F5 ),
19+ primary: Color (0xFFC50909 ),
20+ onPrimary: Color (0xFFFFFFFF ),
21+ primaryFixed: Color (0xFFC50909 ),
22+ onPrimaryFixed: Color (0xFFFFFFFF ),
3223 secondary: Color (0xFF15171C ),
3324 onSecondary: Color (0xFFFFFFFF ),
25+ secondaryFixed: Color (0xFF15171C ),
3426 secondaryFixedDim: Color (0xFFC9CACD ),
35- border: Color (0xFFC9CACD ),
27+ onSecondaryFixed: Color (0xFFFFFFFF ),
28+ tertiary: Color (0xFFFFCC00 ),
29+ onTertiary: Color (0xFFFF9500 ),
30+ tertiaryContainer: Color (0xFFFFF4E6 ),
31+ background: Color (0xFFF5F5F5 ),
32+ surface: Color (0xFFFFFFFF ),
33+ surfaceContainer: Color (0xFFF5F5F5 ),
34+ surfaceContainerHighest: Color (0xFFE8E8E8 ),
35+ surfaceBright: Color (0xFFFFFFFF ),
3636 onSurface: Color (0xFF15171C ),
3737 onSurfaceVariant: Color (0xFF70747D ),
38+ inverseSurface: Color (0xFF15171C ),
39+ cardBackground: Color (0xFFFFFFFF ),
40+ text: Color (0xFF15171C ),
41+ textMuted: Color (0xFF70747D ),
42+ border: Color (0xFFC9CACD ),
43+ outline: Color (0xFFC9CACD ),
44+ outlineVariant: Color (0xFFE8E8E8 ),
45+ error: Color (0xFFFF3B30 ),
46+ onError: Color (0xFFFFFFFF ),
47+ errorContainer: Color (0xFFFFEBEE ),
48+ success: Color (0xFF34C759 ),
49+ warning: Color (0xFFFB9300 ),
50+ warningContainer: Color (0xFFFFF4E6 ),
51+ info: Color (0xFF0063F7 ),
3852 scrim: Color (0x26000000 ),
53+ overlay: Color (0x80000000 ),
54+ transparent: Color (0x00000000 ),
55+ surfaceFixed: Color (0xFFFFFFFF ),
56+ onSurfaceFixed: Color (0xFF15171C ),
57+ shimmerBase: Color (0xFFE0E0E0 ),
58+ shimmerHighlight: Color (0xFFF5F5F5 ),
3959 );
4060
4161 static const BullTheme dark = BullTheme (
42- red: Color (0xFFC50909 ),
43- onRed: Color (0xFFFFFFFF ),
44- surface: Color (0xFF1C1C1E ),
45- card: Color (0xFF2C2C2E ),
46- text: Color (0xFFFFFFFF ),
47- muted: Color (0xFF8E8E93 ),
48- info: Color (0xFF0A84FF ),
49- success: Color (0xFF32D74B ),
50- warning: Color (0xFFFF9F0A ),
51- btc: Color (0xFFFF9F0A ),
52- outlineVariant: Color (0xFF3C3C3E ),
53- shimmerBase: Color (0xFF3C3C3E ),
54- shimmerHighlight: Color (0xFF48484A ),
62+ primary: Color (0xFFC50909 ),
63+ onPrimary: Color (0xFFFFFFFF ),
64+ primaryFixed: Color (0xFFC50909 ),
65+ onPrimaryFixed: Color (0xFFFFFFFF ),
5566 secondary: Color (0xFFFFFFFF ),
5667 onSecondary: Color (0xFF15171C ),
68+ secondaryFixed: Color (0xFF15171C ),
5769 secondaryFixedDim: Color (0xFF58585A ),
58- border: Color (0xFF58585A ),
70+ onSecondaryFixed: Color (0xFFFFFFFF ),
71+ tertiary: Color (0xFFFFCC00 ),
72+ onTertiary: Color (0xFFFF9F0A ),
73+ tertiaryContainer: Color (0xFF3D2D00 ),
74+ background: Color (0xFF000000 ),
75+ surface: Color (0xFF1C1C1E ),
76+ surfaceContainer: Color (0xFF2C2C2E ),
77+ surfaceContainerHighest: Color (0xFF3C3C3E ),
78+ surfaceBright: Color (0xFF48484A ),
5979 onSurface: Color (0xFFFFFFFF ),
6080 onSurfaceVariant: Color (0xFF8E8E93 ),
81+ inverseSurface: Color (0xFFFFFFFF ),
82+ cardBackground: Color (0xFF2C2C2E ),
83+ text: Color (0xFFFFFFFF ),
84+ textMuted: Color (0xFF8E8E93 ),
85+ border: Color (0xFF58585A ),
86+ outline: Color (0xFF58585A ),
87+ outlineVariant: Color (0xFF3C3C3E ),
88+ error: Color (0xFFFF453A ),
89+ onError: Color (0xFFFFFFFF ),
90+ errorContainer: Color (0xFF3D0000 ),
91+ success: Color (0xFF32D74B ),
92+ warning: Color (0xFFFF9F0A ),
93+ warningContainer: Color (0xFF3D2D00 ),
94+ info: Color (0xFF0A84FF ),
6195 scrim: Color (0x26000000 ),
96+ overlay: Color (0x80000000 ),
97+ transparent: Color (0x00000000 ),
98+ surfaceFixed: Color (0xFFFFFFFF ),
99+ onSurfaceFixed: Color (0xFF15171C ),
100+ shimmerBase: Color (0xFF3C3C3E ),
101+ shimmerHighlight: Color (0xFF48484A ),
62102 );
63103}
64104
105+ /// Catalogue-local Golos-Text [TextTheme] , mirroring the app's `AppFonts`
106+ /// roles so the catalogue renders type at the right sizes/weights. Components
107+ /// read roles via `Theme.of(context).textTheme` , so this is what matters.
108+ const TextTheme _catalogueTextTheme = TextTheme (
109+ displayLarge: TextStyle (fontSize: 46 , fontWeight: FontWeight .w500),
110+ displayMedium: TextStyle (fontSize: 43 , fontWeight: FontWeight .w500),
111+ displaySmall: TextStyle (fontSize: 28 , fontWeight: FontWeight .w500),
112+ headlineLarge: TextStyle (fontSize: 16 , fontWeight: FontWeight .w700),
113+ headlineMedium: TextStyle (fontSize: 16 , fontWeight: FontWeight .w500),
114+ headlineSmall: TextStyle (fontSize: 16 ),
115+ bodyLarge: TextStyle (fontSize: 14 , fontWeight: FontWeight .w500),
116+ bodyMedium: TextStyle (fontSize: 14 ),
117+ bodySmall: TextStyle (fontSize: 14 ),
118+ labelLarge: TextStyle (fontSize: 12 , fontWeight: FontWeight .w500),
119+ labelMedium: TextStyle (fontSize: 12 ),
120+ labelSmall: TextStyle (fontSize: 10 ),
121+ );
122+
65123/// Builds a Material [ThemeData] carrying the [BullTheme] extension, matching
66124/// how the app wires `bull_ui` (extension on `ThemeData.extensions` ). Components
67125/// read their colours via `context.bull` , so the extension is what matters.
@@ -73,13 +131,14 @@ ThemeData catalogueThemeData(Brightness brightness) {
73131 useMaterial3: true ,
74132 brightness: brightness,
75133 fontFamily: 'Golos Text' ,
134+ textTheme: _catalogueTextTheme,
76135 extensions: [bull],
77136 colorScheme: ColorScheme .fromSeed (
78- seedColor: bull.red ,
137+ seedColor: bull.primary ,
79138 brightness: brightness,
80- primary: bull.red ,
139+ primary: bull.primary ,
81140 ),
82141 scaffoldBackgroundColor: bull.surface,
83- canvasColor: bull.card ,
142+ canvasColor: bull.cardBackground ,
84143 );
85144}
0 commit comments