diff --git a/flutter_client/lib/theme/theme_extension.dart b/flutter_client/lib/theme/theme_extension.dart index 8a328ced..7ddd46c2 100644 --- a/flutter_client/lib/theme/theme_extension.dart +++ b/flutter_client/lib/theme/theme_extension.dart @@ -30,26 +30,51 @@ class FabledSwordTheme extends ThemeExtension { final Color warning, error, info; final TextStyle display, body, mono; - static FabledSwordTheme fromTokens() => const FabledSwordTheme( - accent: FabledSwordTokens.accent, - obsidian: FabledSwordTokens.obsidian, - iron: FabledSwordTokens.iron, - slate: FabledSwordTokens.slate, - pewter: FabledSwordTokens.pewter, - parchment: FabledSwordTokens.parchment, - vellum: FabledSwordTokens.vellum, - ash: FabledSwordTokens.ash, - moss: FabledSwordTokens.moss, - bronze: FabledSwordTokens.bronze, - oxblood: FabledSwordTokens.oxblood, - warning: FabledSwordTokens.warning, - error: FabledSwordTokens.error, - info: FabledSwordTokens.info, - display: TextStyle(fontFamily: FabledSwordTokens.fontDisplay), - body: TextStyle(fontFamily: FabledSwordTokens.fontBody), - mono: TextStyle(fontFamily: FabledSwordTokens.fontMono), + factory FabledSwordTheme.dark() => FabledSwordTheme( + accent: FabledSwordFlatTokens.accent, + obsidian: FabledSwordDarkTokens.obsidian, + iron: FabledSwordDarkTokens.iron, + slate: FabledSwordDarkTokens.slate, + pewter: FabledSwordDarkTokens.pewter, + parchment: FabledSwordDarkTokens.parchment, + vellum: FabledSwordDarkTokens.vellum, + ash: FabledSwordDarkTokens.ash, + moss: FabledSwordFlatTokens.moss, + bronze: FabledSwordFlatTokens.bronze, + oxblood: FabledSwordFlatTokens.oxblood, + warning: FabledSwordFlatTokens.warning, + error: FabledSwordFlatTokens.error, + info: FabledSwordFlatTokens.info, + display: TextStyle(fontFamily: FabledSwordFlatTokens.fontDisplay), + body: TextStyle(fontFamily: FabledSwordFlatTokens.fontBody), + mono: TextStyle(fontFamily: FabledSwordFlatTokens.fontMono), ); + factory FabledSwordTheme.light() => FabledSwordTheme( + accent: FabledSwordFlatTokens.accent, + obsidian: FabledSwordLightTokens.obsidian, + iron: FabledSwordLightTokens.iron, + slate: FabledSwordLightTokens.slate, + pewter: FabledSwordLightTokens.pewter, + parchment: FabledSwordLightTokens.parchment, + vellum: FabledSwordLightTokens.vellum, + ash: FabledSwordLightTokens.ash, + moss: FabledSwordFlatTokens.moss, + bronze: FabledSwordFlatTokens.bronze, + oxblood: FabledSwordFlatTokens.oxblood, + warning: FabledSwordFlatTokens.warning, + error: FabledSwordFlatTokens.error, + info: FabledSwordFlatTokens.info, + display: TextStyle(fontFamily: FabledSwordFlatTokens.fontDisplay), + body: TextStyle(fontFamily: FabledSwordFlatTokens.fontBody), + mono: TextStyle(fontFamily: FabledSwordFlatTokens.fontMono), + ); + + /// Back-compat alias for the original API. Returns the dark theme. + /// Existing call sites can keep using fromTokens() until they're + /// migrated to .dark() / .light() explicitly. + static FabledSwordTheme fromTokens() => FabledSwordTheme.dark(); + @override FabledSwordTheme copyWith({ Color? accent,