Files
PinePods-nix/PinePods-0.8.2/mobile/lib/ui/themes.dart
2026-03-03 10:57:43 -05:00

2295 lines
79 KiB
Dart

// Copyright 2020 Ben Hills and the project contributors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
final ThemeData _lightTheme = _buildLightTheme();
final ThemeData _darkTheme = _buildDarkTheme();
final ThemeData _nordTheme = _buildNordTheme();
final ThemeData _draculaTheme = _buildDraculaTheme();
final ThemeData _nordicTheme = _buildNordicTheme();
final ThemeData _gruvboxDarkTheme = _buildGruvboxDarkTheme();
final ThemeData _catppuccinMochaTheme = _buildCatppuccinMochaTheme();
final ThemeData _abyssTheme = _buildAbyssTheme();
final ThemeData _cyberSynthwaveTheme = _buildCyberSynthwaveTheme();
final ThemeData _midnightOceanTheme = _buildMidnightOceanTheme();
final ThemeData _forestDepthsTheme = _buildForestDepthsTheme();
final ThemeData _sunsetHorizonTheme = _buildSunsetHorizonTheme();
final ThemeData _arcticFrostTheme = _buildArcticFrostTheme();
final ThemeData _neonTheme = _buildNeonTheme();
final ThemeData _kimbieTheme = _buildKimbieTheme();
final ThemeData _gruvboxLightTheme = _buildGruvboxLightTheme();
final ThemeData _greenMeanieTheme = _buildGreenMeanieTheme();
final ThemeData _wildberriesTheme = _buildWildberriesTheme();
final ThemeData _softLavenderTheme = _buildSoftLavenderTheme();
final ThemeData _mintyFreshTheme = _buildMintyFreshTheme();
final ThemeData _warmVanillaTheme = _buildWarmVanillaTheme();
final ThemeData _coastalBlueTheme = _buildCoastalBlueTheme();
final ThemeData _paperCreamTheme = _buildPaperCreamTheme();
final ThemeData _githubLightTheme = _buildGithubLightTheme();
final ThemeData _hotDogStandTheme = _buildHotDogStandTheme();
class ThemeDefinition {
final String key;
final String name;
final String description;
final ThemeData themeData;
final bool isDark;
const ThemeDefinition({
required this.key,
required this.name,
required this.description,
required this.themeData,
required this.isDark,
});
}
class ThemeRegistry {
static final Map<String, ThemeDefinition> _themes = {
'Light': ThemeDefinition(
key: 'Light',
name: 'Light',
description: 'Clean and bright theme',
themeData: _lightTheme,
isDark: false,
),
'Dark': ThemeDefinition(
key: 'Dark',
name: 'Dark',
description: 'Classic dark theme',
themeData: _darkTheme,
isDark: true,
),
'Nordic': ThemeDefinition(
key: 'Nordic',
name: 'Nordic',
description: 'Cool Nordic inspired theme',
themeData: _nordTheme,
isDark: true,
),
'Dracula': ThemeDefinition(
key: 'Dracula',
name: 'Dracula',
description: 'Popular dark theme with purple accents',
themeData: _draculaTheme,
isDark: true,
),
'Nordic Light': ThemeDefinition(
key: 'Nordic Light',
name: 'Nordic Light',
description: 'Light Nordic inspired theme',
themeData: _nordicTheme,
isDark: false,
),
'Gruvbox Dark': ThemeDefinition(
key: 'Gruvbox Dark',
name: 'Gruvbox Dark',
description: 'Retro groove dark theme',
themeData: _gruvboxDarkTheme,
isDark: true,
),
'Catppuccin Mocha Mauve': ThemeDefinition(
key: 'Catppuccin Mocha Mauve',
name: 'Catppuccin Mocha Mauve',
description: 'Soothing pastel dark theme',
themeData: _catppuccinMochaTheme,
isDark: true,
),
'Abyss': ThemeDefinition(
key: 'Abyss',
name: 'Abyss',
description: 'Deep space darkness',
themeData: _abyssTheme,
isDark: true,
),
'Cyber Synthwave': ThemeDefinition(
key: 'Cyber Synthwave',
name: 'Cyber Synthwave',
description: 'Retro cyberpunk vibes',
themeData: _cyberSynthwaveTheme,
isDark: true,
),
'Midnight Ocean': ThemeDefinition(
key: 'Midnight Ocean',
name: 'Midnight Ocean',
description: 'Dark blue oceanic theme',
themeData: _midnightOceanTheme,
isDark: true,
),
'Forest Depths': ThemeDefinition(
key: 'Forest Depths',
name: 'Forest Depths',
description: 'Deep forest green theme',
themeData: _forestDepthsTheme,
isDark: true,
),
'Sunset Horizon': ThemeDefinition(
key: 'Sunset Horizon',
name: 'Sunset Horizon',
description: 'Warm sunset colors',
themeData: _sunsetHorizonTheme,
isDark: true,
),
'Arctic Frost': ThemeDefinition(
key: 'Arctic Frost',
name: 'Arctic Frost',
description: 'Cool arctic theme',
themeData: _arcticFrostTheme,
isDark: true,
),
'Neon': ThemeDefinition(
key: 'Neon',
name: 'Neon',
description: 'Bright neon colors',
themeData: _neonTheme,
isDark: true,
),
'Kimbie': ThemeDefinition(
key: 'Kimbie',
name: 'Kimbie',
description: 'Warm brown theme',
themeData: _kimbieTheme,
isDark: true,
),
'Gruvbox Light': ThemeDefinition(
key: 'Gruvbox Light',
name: 'Gruvbox Light',
description: 'Retro groove light theme',
themeData: _gruvboxLightTheme,
isDark: false,
),
'Greenie Meanie': ThemeDefinition(
key: 'Greenie Meanie',
name: 'Greenie Meanie',
description: 'Matrix green theme',
themeData: _greenMeanieTheme,
isDark: true,
),
'Wildberries': ThemeDefinition(
key: 'Wildberries',
name: 'Wildberries',
description: 'Purple berry theme',
themeData: _wildberriesTheme,
isDark: true,
),
'Soft Lavender': ThemeDefinition(
key: 'Soft Lavender',
name: 'Soft Lavender',
description: 'Gentle purple light theme',
themeData: _softLavenderTheme,
isDark: false,
),
'Minty Fresh': ThemeDefinition(
key: 'Minty Fresh',
name: 'Minty Fresh',
description: 'Cool mint green theme',
themeData: _mintyFreshTheme,
isDark: false,
),
'Warm Vanilla': ThemeDefinition(
key: 'Warm Vanilla',
name: 'Warm Vanilla',
description: 'Cozy vanilla theme',
themeData: _warmVanillaTheme,
isDark: false,
),
'Coastal Blue': ThemeDefinition(
key: 'Coastal Blue',
name: 'Coastal Blue',
description: 'Ocean blue theme',
themeData: _coastalBlueTheme,
isDark: false,
),
'Paper Cream': ThemeDefinition(
key: 'Paper Cream',
name: 'Paper Cream',
description: 'Vintage paper theme',
themeData: _paperCreamTheme,
isDark: false,
),
'Github Light': ThemeDefinition(
key: 'Github Light',
name: 'Github Light',
description: 'Clean GitHub-inspired theme',
themeData: _githubLightTheme,
isDark: false,
),
'Hot Dog Stand - MY EYES': ThemeDefinition(
key: 'Hot Dog Stand - MY EYES',
name: 'Hot Dog Stand - MY EYES',
description: 'Eye-searing hot dog stand theme',
themeData: _hotDogStandTheme,
isDark: true,
),
};
static Map<String, ThemeDefinition> get themes => _themes;
static List<String> get themeKeys => _themes.keys.toList();
static List<ThemeDefinition> get themeList => _themes.values.toList();
static ThemeDefinition getTheme(String key) {
return _themes[key] ?? _themes['Dark']!;
}
static ThemeData getThemeData(String key) {
return getTheme(key).themeData;
}
static bool isValidTheme(String key) {
return _themes.containsKey(key);
}
}
ThemeData _buildLightTheme() {
final base = ThemeData.light(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: Color(0xffff9800),
secondary: Color(0xfffb8c00),
surface: Color(0xffffffff),
error: Color(0xffd32f2f),
onSurface: Color(0xfffb8c00),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xffffffff),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xffffa900),
shadowColor: const Color(0xfff57c00),
),
brightness: Brightness.light,
primaryColor: const Color(0xffff9800),
primaryColorLight: const Color(0xffffe0b2),
primaryColorDark: const Color(0xfff57c00),
canvasColor: const Color(0xffffffff),
scaffoldBackgroundColor: const Color(0xffffffff),
cardColor: const Color(0xffffffff),
dividerColor: const Color(0x1f000000),
highlightColor: const Color(0x66bcbcbc),
splashColor: const Color(0x66c8c8c8),
unselectedWidgetColor: const Color(0x8a000000),
disabledColor: const Color(0x61000000),
secondaryHeaderColor: const Color(0xffffffff),
dialogBackgroundColor: const Color(0xffffffff),
indicatorColor: Colors.blueAccent,
hintColor: const Color(0x8a000000),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).black,
textTheme: Typography.material2021(
platform: TargetPlatform.android,
).black,
primaryIconTheme: IconThemeData(color: Colors.grey[800]),
buttonTheme: base.buttonTheme.copyWith(
buttonColor: Colors.orange,
),
iconTheme: base.iconTheme.copyWith(
color: Colors.orange,
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: Colors.orange,
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: Colors.white,
foregroundColor: Colors.black,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.dark,
systemNavigationBarColor: Colors.white,
statusBarIconBrightness: Brightness.dark,
)),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: Colors.white,
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(foregroundColor: Colors.grey[800]),
),
);
}
ThemeData _buildDarkTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xffffffff),
secondary: Color(0xfffb8c00),
surface: Color(0xff222222),
error: Color(0xffd32f2f),
onSurface: Color(0xffffffff),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff222222),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff444444),
shadowColor: const Color(0x77ffffff),
),
brightness: Brightness.dark,
primaryColor: const Color(0xffffffff),
primaryColorLight: const Color(0xffffe0b2),
primaryColorDark: const Color(0xfff57c00),
canvasColor: const Color(0xff000000),
scaffoldBackgroundColor: const Color(0xff000000),
cardColor: const Color(0xff0F0F0F),
dividerColor: const Color(0xff444444),
highlightColor: const Color(0xff222222),
splashColor: const Color(0x66c8c8c8),
unselectedWidgetColor: Colors.white,
disabledColor: const Color(0x77ffffff),
secondaryHeaderColor: const Color(0xff222222),
dialogBackgroundColor: const Color(0xff222222),
indicatorColor: Colors.orange,
hintColor: const Color(0x80ffffff),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Colors.white),
iconTheme: base.iconTheme.copyWith(
color: Colors.white,
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff444444),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: Colors.white,
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff222222),
foregroundColor: Colors.white,
shadowColor: const Color(0xff222222),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff222222),
statusBarIconBrightness: Brightness.light,
)),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: Colors.orange,
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xffffffff),
side: const BorderSide(
color: Color(0xffffffff),
style: BorderStyle.solid,
),
),
),
);
}
ThemeData _buildNordTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xff3550af),
secondary: Color(0xff5d80aa),
surface: Color(0xff2e3440),
error: Color(0xffbf616a),
onSurface: Color(0xfff6f5f4),
background: Color(0xff3C4252),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff2e3440),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff2b2f3a),
shadowColor: const Color(0xff3e4555),
),
brightness: Brightness.dark,
primaryColor: const Color(0xff3550af),
canvasColor: const Color(0xff3C4252),
scaffoldBackgroundColor: const Color(0xff3C4252),
cardColor: const Color(0xff2b2f3a),
dividerColor: const Color(0xff6d747f),
highlightColor: const Color(0xff5d80aa),
splashColor: const Color(0xff5d80aa),
unselectedWidgetColor: const Color(0xfff6f5f4),
disabledColor: const Color(0x776d747f),
secondaryHeaderColor: const Color(0xff2e3440),
dialogBackgroundColor: const Color(0xff2e3440),
indicatorColor: const Color(0xff3550af),
hintColor: const Color(0x80f6f5f4),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xfff6f5f4)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xfff6f5f4),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff6d747f),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff3550af),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff2e3440),
foregroundColor: const Color(0xfff6f5f4),
shadowColor: const Color(0xff2e3440),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff2e3440),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff3550af),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xfff6f5f4),
side: const BorderSide(
color: Color(0xff3550af),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff3550af),
foregroundColor: const Color(0xfff6f5f4),
),
),
);
}
ThemeData _buildDraculaTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xffbd93f9),
secondary: Color(0xff6590fd),
surface: Color(0xff282A36),
error: Color(0xffff5555),
onSurface: Color(0xfff6f5f4),
background: Color(0xff282A36),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff262626),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff191a21),
shadowColor: const Color(0xff292e42),
),
brightness: Brightness.dark,
primaryColor: const Color(0xffbd93f9),
canvasColor: const Color(0xff282A36),
scaffoldBackgroundColor: const Color(0xff282A36),
cardColor: const Color(0xff191a21),
dividerColor: const Color(0xff727580),
highlightColor: const Color(0xff4b5563),
splashColor: const Color(0xff4b5563),
unselectedWidgetColor: const Color(0xfff6f5f4),
disabledColor: const Color(0x77727580),
secondaryHeaderColor: const Color(0xff262626),
dialogBackgroundColor: const Color(0xff262626),
indicatorColor: const Color(0xffbd93f9),
hintColor: const Color(0x80f6f5f4),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xfff6f5f4)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xfff6f5f4),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff727580),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xffbd93f9),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff262626),
foregroundColor: const Color(0xfff6f5f4),
shadowColor: const Color(0xff262626),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff262626),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xffbd93f9),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xfff6f5f4),
side: const BorderSide(
color: Color(0xffbd93f9),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xffbd93f9),
foregroundColor: const Color(0xff000000),
),
),
);
}
ThemeData _buildNordicTheme() {
final base = ThemeData.light(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: Color(0xff2a85cf),
secondary: Color(0xff2984ce),
surface: Color(0xffd8dee9),
error: Color(0xffd32f2f),
onSurface: Color(0xff656d76),
background: Color(0xffeceff4),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xffe5e9f0),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xffd8dee9),
shadowColor: const Color(0xffd8dee9),
),
brightness: Brightness.light,
primaryColor: const Color(0xff2a85cf),
canvasColor: const Color(0xffeceff4),
scaffoldBackgroundColor: const Color(0xffeceff4),
cardColor: const Color(0xffd8dee9),
dividerColor: const Color(0xff878d95),
highlightColor: const Color(0xff2a85cf),
splashColor: const Color(0xff2a85cf),
unselectedWidgetColor: const Color(0xff656d76),
disabledColor: const Color(0x77878d95),
secondaryHeaderColor: const Color(0xffe5e9f0),
dialogBackgroundColor: const Color(0xffe5e9f0),
indicatorColor: const Color(0xff2984ce),
hintColor: const Color(0x80656d76),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).black,
textTheme: Typography.material2021(platform: TargetPlatform.android).black,
primaryIconTheme: const IconThemeData(color: Color(0xff656d76)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff656d76),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff878d95),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff2984ce),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xffe5e9f0),
foregroundColor: const Color(0xff656d76),
shadowColor: const Color(0xffe5e9f0),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarIconBrightness: Brightness.dark,
systemNavigationBarColor: const Color(0xffe5e9f0),
statusBarIconBrightness: Brightness.dark,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff2a85cf),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff656d76),
side: const BorderSide(
color: Color(0xff2a85cf),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff2a85cf),
foregroundColor: const Color(0xffffffff),
),
),
);
}
ThemeData _buildGruvboxDarkTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xff424314),
secondary: Color(0xff6f701b),
surface: Color(0xff282828),
error: Color(0xffcc241d),
onSurface: Color(0xff868729),
background: Color(0xff32302f),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff282828),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff302e2e),
shadowColor: const Color(0xff303648),
),
brightness: Brightness.dark,
primaryColor: const Color(0xff424314),
canvasColor: const Color(0xff32302f),
scaffoldBackgroundColor: const Color(0xff32302f),
cardColor: const Color(0xff302e2e),
dividerColor: const Color(0xffebdbb2),
highlightColor: const Color(0xff59544a),
splashColor: const Color(0xff59544a),
unselectedWidgetColor: const Color(0xff868729),
disabledColor: const Color(0x77ebdbb2),
secondaryHeaderColor: const Color(0xff282828),
dialogBackgroundColor: const Color(0xff282828),
indicatorColor: const Color(0xff424314),
hintColor: const Color(0x80868729),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xff868729)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff868729),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xffebdbb2),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff424314),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff282828),
foregroundColor: const Color(0xff868729),
shadowColor: const Color(0xff282828),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff282828),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff424314),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff868729),
side: const BorderSide(
color: Color(0xff424314),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff424314),
foregroundColor: const Color(0xff868729),
),
),
);
}
ThemeData _buildCatppuccinMochaTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xffcba6f7),
secondary: Color(0xfff5c2e7),
surface: Color(0xff313244),
error: Color(0xfff38ba8),
onSurface: Color(0xffcdd6f4),
background: Color(0xff1e1e2e),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff11111b),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff313244),
shadowColor: const Color(0xff313244),
),
brightness: Brightness.dark,
primaryColor: const Color(0xffcba6f7),
canvasColor: const Color(0xff1e1e2e),
scaffoldBackgroundColor: const Color(0xff1e1e2e),
cardColor: const Color(0xff313244),
dividerColor: const Color(0xffcba6f7),
highlightColor: const Color(0xff6c7086),
splashColor: const Color(0xff6c7086),
unselectedWidgetColor: const Color(0xffcdd6f4),
disabledColor: const Color(0x77bac2de),
secondaryHeaderColor: const Color(0xff11111b),
dialogBackgroundColor: const Color(0xff11111b),
indicatorColor: const Color(0xffa6e3a1),
hintColor: const Color(0x80cdd6f4),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xffcdd6f4)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xffcdd6f4),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xffcba6f7),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xffa6e3a1),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff11111b),
foregroundColor: const Color(0xffcdd6f4),
shadowColor: const Color(0xff11111b),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff11111b),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xffcba6f7),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xffcdd6f4),
side: const BorderSide(
color: Color(0xffcba6f7),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xffcba6f7),
foregroundColor: const Color(0xff000000),
),
),
);
}
class Themes {
final ThemeData themeData;
Themes({required this.themeData});
factory Themes.lightTheme() {
return Themes(themeData: _lightTheme);
}
factory Themes.darkTheme() {
return Themes(themeData: _darkTheme);
}
factory Themes.fromKey(String key) {
return Themes(themeData: ThemeRegistry.getThemeData(key));
}
}
ThemeData _buildAbyssTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xff326fef),
secondary: Color(0xffc8aa7d),
surface: Color(0xff061940),
error: Color(0xffbf616a),
onSurface: Color(0xfff6f5f4),
background: Color(0xff000C18),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff051336),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff061940),
shadowColor: const Color(0xff303648),
),
brightness: Brightness.dark,
primaryColor: const Color(0xff326fef),
canvasColor: const Color(0xff000C18),
scaffoldBackgroundColor: const Color(0xff000C18),
cardColor: const Color(0xff061940),
dividerColor: const Color(0xff838385),
highlightColor: const Color(0xff152037),
splashColor: const Color(0xff152037),
unselectedWidgetColor: const Color(0xfff6f5f4),
disabledColor: const Color(0x77838385),
secondaryHeaderColor: const Color(0xff051336),
dialogBackgroundColor: const Color(0xff051336),
indicatorColor: const Color(0xff326fef),
hintColor: const Color(0x80f6f5f4),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xfff6f5f4)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xfff6f5f4),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff838385),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff326fef),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff051336),
foregroundColor: const Color(0xfff6f5f4),
shadowColor: const Color(0xff051336),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff051336),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff326fef),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xfff6f5f4),
side: const BorderSide(
color: Color(0xff326fef),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff326fef),
foregroundColor: const Color(0xffffffff),
),
),
);
}
ThemeData _buildCyberSynthwaveTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xfff92aad),
secondary: Color(0xffff71ce),
surface: Color(0xff2a1f3a),
error: Color(0xffff2e63),
onSurface: Color(0xffeee6ff),
background: Color(0xff1a1721),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff2a1f3a),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff2a1f3a),
shadowColor: const Color(0xff2a1f3a),
),
brightness: Brightness.dark,
primaryColor: const Color(0xfff92aad),
canvasColor: const Color(0xff1a1721),
scaffoldBackgroundColor: const Color(0xff1a1721),
cardColor: const Color(0xff2a1f3a),
dividerColor: const Color(0xffc3b7d9),
highlightColor: const Color(0xffb31777),
splashColor: const Color(0xffb31777),
unselectedWidgetColor: const Color(0xffeee6ff),
disabledColor: const Color(0x77c3b7d9),
secondaryHeaderColor: const Color(0xff2a1f3a),
dialogBackgroundColor: const Color(0xff2a1f3a),
indicatorColor: const Color(0xfff92aad),
hintColor: const Color(0x80eee6ff),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xffeee6ff)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xffeee6ff),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xffc3b7d9),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xfff92aad),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff2a1f3a),
foregroundColor: const Color(0xffeee6ff),
shadowColor: const Color(0xff2a1f3a),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff2a1f3a),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xfff92aad),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xffeee6ff),
side: const BorderSide(
color: Color(0xfff92aad),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xfff92aad),
foregroundColor: const Color(0xff000000),
),
),
);
}
ThemeData _buildMidnightOceanTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xff38bdf8),
secondary: Color(0xff60a5fa),
surface: Color(0xff1e293b),
error: Color(0xffef4444),
onSurface: Color(0xffe2e8f0),
background: Color(0xff0f172a),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff1e293b),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff1e293b),
shadowColor: const Color(0xff1e293b),
),
brightness: Brightness.dark,
primaryColor: const Color(0xff38bdf8),
canvasColor: const Color(0xff0f172a),
scaffoldBackgroundColor: const Color(0xff0f172a),
cardColor: const Color(0xff1e293b),
dividerColor: const Color(0xff1e293b),
highlightColor: const Color(0xff0ea5e9),
splashColor: const Color(0xff0ea5e9),
unselectedWidgetColor: const Color(0xffe2e8f0),
disabledColor: const Color(0x7794a3b8),
secondaryHeaderColor: const Color(0xff1e293b),
dialogBackgroundColor: const Color(0xff1e293b),
indicatorColor: const Color(0xff0ea5e9),
hintColor: const Color(0x80e2e8f0),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xffe2e8f0)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xffe2e8f0),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff1e293b),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff38bdf8),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff1e293b),
foregroundColor: const Color(0xffe2e8f0),
shadowColor: const Color(0xff1e293b),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff1e293b),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff38bdf8),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xffe2e8f0),
side: const BorderSide(
color: Color(0xff38bdf8),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff38bdf8),
foregroundColor: const Color(0xff000000),
),
),
);
}
ThemeData _buildForestDepthsTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xff7fb685),
secondary: Color(0xffa1d0a5),
surface: Color(0xff2d4a33),
error: Color(0xffe67c73),
onSurface: Color(0xffc9e4ca),
background: Color(0xff1a2f1f),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff2d4a33),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff2d4a33),
shadowColor: const Color(0xff2d4a33),
),
brightness: Brightness.dark,
primaryColor: const Color(0xff7fb685),
canvasColor: const Color(0xff1a2f1f),
scaffoldBackgroundColor: const Color(0xff1a2f1f),
cardColor: const Color(0xff2d4a33),
dividerColor: const Color(0xff2d4a33),
highlightColor: const Color(0xff5c8b61),
splashColor: const Color(0xff5c8b61),
unselectedWidgetColor: const Color(0xffc9e4ca),
disabledColor: const Color(0x778fbb91),
secondaryHeaderColor: const Color(0xff2d4a33),
dialogBackgroundColor: const Color(0xff2d4a33),
indicatorColor: const Color(0xff5c8b61),
hintColor: const Color(0x80c9e4ca),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xffc9e4ca)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xffc9e4ca),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff2d4a33),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff7fb685),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff2d4a33),
foregroundColor: const Color(0xffc9e4ca),
shadowColor: const Color(0xff2d4a33),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff2d4a33),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff7fb685),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xffc9e4ca),
side: const BorderSide(
color: Color(0xff7fb685),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff7fb685),
foregroundColor: const Color(0xff000000),
),
),
);
}
ThemeData _buildSunsetHorizonTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xffff9e64),
secondary: Color(0xffffb088),
surface: Color(0xff432e44),
error: Color(0xffff6b6b),
onSurface: Color(0xffffd9c0),
background: Color(0xff2b1c2c),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff432e44),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff432e44),
shadowColor: const Color(0xff432e44),
),
brightness: Brightness.dark,
primaryColor: const Color(0xffff9e64),
canvasColor: const Color(0xff2b1c2c),
scaffoldBackgroundColor: const Color(0xff2b1c2c),
cardColor: const Color(0xff432e44),
dividerColor: const Color(0xff432e44),
highlightColor: const Color(0xffe8875c),
splashColor: const Color(0xffe8875c),
unselectedWidgetColor: const Color(0xffffd9c0),
disabledColor: const Color(0x77d4a5a5),
secondaryHeaderColor: const Color(0xff432e44),
dialogBackgroundColor: const Color(0xff432e44),
indicatorColor: const Color(0xffe8875c),
hintColor: const Color(0x80ffd9c0),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xffffd9c0)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xffffd9c0),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff432e44),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xffff9e64),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff432e44),
foregroundColor: const Color(0xffffd9c0),
shadowColor: const Color(0xff432e44),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff432e44),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xffff9e64),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xffffd9c0),
side: const BorderSide(
color: Color(0xffff9e64),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xffff9e64),
foregroundColor: const Color(0xff000000),
),
),
);
}
ThemeData _buildArcticFrostTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xff88c0d0),
secondary: Color(0xff81a1c1),
surface: Color(0xff2a2f36),
error: Color(0xffbf616a),
onSurface: Color(0xffeceff4),
background: Color(0xff1a1d21),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff2a2f36),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff2a2f36),
shadowColor: const Color(0xff2a2f36),
),
brightness: Brightness.dark,
primaryColor: const Color(0xff88c0d0),
canvasColor: const Color(0xff1a1d21),
scaffoldBackgroundColor: const Color(0xff1a1d21),
cardColor: const Color(0xff2a2f36),
dividerColor: const Color(0xff2a2f36),
highlightColor: const Color(0xff5e81ac),
splashColor: const Color(0xff5e81ac),
unselectedWidgetColor: const Color(0xffeceff4),
disabledColor: const Color(0x77aeb3bb),
secondaryHeaderColor: const Color(0xff2a2f36),
dialogBackgroundColor: const Color(0xff2a2f36),
indicatorColor: const Color(0xff5e81ac),
hintColor: const Color(0x80eceff4),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xffeceff4)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xffeceff4),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff2a2f36),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff88c0d0),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff2a2f36),
foregroundColor: const Color(0xffeceff4),
shadowColor: const Color(0xff2a2f36),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff2a2f36),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff88c0d0),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xffeceff4),
side: const BorderSide(
color: Color(0xff88c0d0),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff88c0d0),
foregroundColor: const Color(0xff000000),
),
),
);
}
ThemeData _buildNeonTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xfff75c1d),
secondary: Color(0xff7000ff),
surface: Color(0xff1a171e),
error: Color(0xffff5555),
onSurface: Color(0xff9F9DA1),
background: Color(0xff120e16),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff120e16),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff1a171e),
shadowColor: const Color(0xff303648),
),
brightness: Brightness.dark,
primaryColor: const Color(0xfff75c1d),
canvasColor: const Color(0xff120e16),
scaffoldBackgroundColor: const Color(0xff120e16),
cardColor: const Color(0xff1a171e),
dividerColor: const Color(0xff4a535e),
highlightColor: const Color(0xff7000ff),
splashColor: const Color(0xff7000ff),
unselectedWidgetColor: const Color(0xff9F9DA1),
disabledColor: const Color(0x774a535e),
secondaryHeaderColor: const Color(0xff120e16),
dialogBackgroundColor: const Color(0xff120e16),
indicatorColor: const Color(0xfff75c1d),
hintColor: const Color(0x809F9DA1),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xff9F9DA1)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff9F9DA1),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff4a535e),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xfff75c1d),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff120e16),
foregroundColor: const Color(0xff9F9DA1),
shadowColor: const Color(0xff120e16),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff120e16),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xfff75c1d),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff9F9DA1),
side: const BorderSide(
color: Color(0xfff75c1d),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xfff75c1d),
foregroundColor: const Color(0xff000000),
),
),
);
}
ThemeData _buildKimbieTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xffca9858),
secondary: Color(0xfff6f5f4),
surface: Color(0xff362712),
error: Color(0xffff5555),
onSurface: Color(0xffB1AD86),
background: Color(0xff221a0f),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff131510),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff362712),
shadowColor: const Color(0xff65533c),
),
brightness: Brightness.dark,
primaryColor: const Color(0xffca9858),
canvasColor: const Color(0xff221a0f),
scaffoldBackgroundColor: const Color(0xff221a0f),
cardColor: const Color(0xff362712),
dividerColor: const Color(0xff4a535e),
highlightColor: const Color(0xffd3af86),
splashColor: const Color(0xffd3af86),
unselectedWidgetColor: const Color(0xffB1AD86),
disabledColor: const Color(0x774a535e),
secondaryHeaderColor: const Color(0xff131510),
dialogBackgroundColor: const Color(0xff131510),
indicatorColor: const Color(0xffca9858),
hintColor: const Color(0x80B1AD86),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xffB1AD86)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xffB1AD86),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff4a535e),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xffca9858),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff131510),
foregroundColor: const Color(0xffB1AD86),
shadowColor: const Color(0xff131510),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff131510),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xffca9858),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xffB1AD86),
side: const BorderSide(
color: Color(0xffca9858),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xffca9858),
foregroundColor: const Color(0xff000000),
),
),
);
}
ThemeData _buildGruvboxLightTheme() {
final base = ThemeData.light(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: Color(0xffd1ac0e),
secondary: Color(0xffa68738),
surface: Color(0xfffbf1c7),
error: Color(0xffcc241d),
onSurface: Color(0xff5f5750),
background: Color(0xfff9f5d7),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xfffbf1c7),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xfffbf1c7),
shadowColor: const Color(0xffaca289),
),
brightness: Brightness.light,
primaryColor: const Color(0xffd1ac0e),
canvasColor: const Color(0xfff9f5d7),
scaffoldBackgroundColor: const Color(0xfff9f5d7),
cardColor: const Color(0xfffbf1c7),
dividerColor: const Color(0xffe0dbb2),
highlightColor: const Color(0xffcfd2a8),
splashColor: const Color(0xffcfd2a8),
unselectedWidgetColor: const Color(0xff5f5750),
disabledColor: const Color(0x77aca289),
secondaryHeaderColor: const Color(0xfffbf1c7),
dialogBackgroundColor: const Color(0xfffbf1c7),
indicatorColor: const Color(0xffd1ac0e),
hintColor: const Color(0x805f5750),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).black,
textTheme: Typography.material2021(platform: TargetPlatform.android).black,
primaryIconTheme: const IconThemeData(color: Color(0xff5f5750)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff5f5750),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xffe0dbb2),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xffd1ac0e),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xfffbf1c7),
foregroundColor: const Color(0xff5f5750),
shadowColor: const Color(0xfffbf1c7),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarIconBrightness: Brightness.dark,
systemNavigationBarColor: const Color(0xfffbf1c7),
statusBarIconBrightness: Brightness.dark,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xffd1ac0e),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff5f5750),
side: const BorderSide(
color: Color(0xffd1ac0e),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xffd1ac0e),
foregroundColor: const Color(0xff000000),
),
),
);
}
ThemeData _buildGreenMeanieTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xff224e44),
secondary: Color(0xff6590fd),
surface: Color(0xff292A2E),
error: Color(0xffff5555),
onSurface: Color(0xff489D50),
background: Color(0xff142e28),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff292A2E),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff292A2E),
shadowColor: const Color(0xff489D50),
),
brightness: Brightness.dark,
primaryColor: const Color(0xff224e44),
canvasColor: const Color(0xff142e28),
scaffoldBackgroundColor: const Color(0xff142e28),
cardColor: const Color(0xff292A2E),
dividerColor: const Color(0xff446448),
highlightColor: const Color(0xff4b5563),
splashColor: const Color(0xff4b5563),
unselectedWidgetColor: const Color(0xff489D50),
disabledColor: const Color(0x77446448),
secondaryHeaderColor: const Color(0xff292A2E),
dialogBackgroundColor: const Color(0xff292A2E),
indicatorColor: const Color(0xff224e44),
hintColor: const Color(0x80489D50),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xff489D50)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff489D50),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff446448),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff224e44),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff292A2E),
foregroundColor: const Color(0xff489D50),
shadowColor: const Color(0xff292A2E),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff292A2E),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff224e44),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff489D50),
side: const BorderSide(
color: Color(0xff224e44),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff489D50),
foregroundColor: const Color(0xff000000),
),
),
);
}
ThemeData _buildWildberriesTheme() {
final base = ThemeData.dark(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.dark(
primary: Color(0xff4b246b),
secondary: Color(0xff5196B2),
surface: Color(0xff19002E),
error: Color(0xffff5555),
onSurface: Color(0xffCF8B3E),
background: Color(0xff240041),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xff19002E),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xff19002E),
shadowColor: const Color(0xff3a264a),
),
brightness: Brightness.dark,
primaryColor: const Color(0xff4b246b),
canvasColor: const Color(0xff240041),
scaffoldBackgroundColor: const Color(0xff240041),
cardColor: const Color(0xff19002E),
dividerColor: const Color(0xffC79BFF),
highlightColor: const Color(0xff44433A),
splashColor: const Color(0xff44433A),
unselectedWidgetColor: const Color(0xffCF8B3E),
disabledColor: const Color(0x77C79BFF),
secondaryHeaderColor: const Color(0xff19002E),
dialogBackgroundColor: const Color(0xff19002E),
indicatorColor: const Color(0xff4b246b),
hintColor: const Color(0x80CF8B3E),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).white,
textTheme: Typography.material2021(platform: TargetPlatform.android).white,
primaryIconTheme: const IconThemeData(color: Color(0xffCF8B3E)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xffCF8B3E),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xffC79BFF),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff4b246b),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xff19002E),
foregroundColor: const Color(0xffCF8B3E),
shadowColor: const Color(0xff19002E),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xff19002E),
statusBarIconBrightness: Brightness.light,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff4b246b),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xffCF8B3E),
side: const BorderSide(
color: Color(0xff4b246b),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff4b246b),
foregroundColor: const Color(0xffCF8B3E),
),
),
);
}
ThemeData _buildSoftLavenderTheme() {
final base = ThemeData.light(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: Color(0xff9b7cb6),
secondary: Color(0xffc8a8d8),
surface: Color(0xfff8f5ff),
error: Color(0xffb91c1c),
onSurface: Color(0xff3e2851),
background: Color(0xfff5f2ff),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xfff8f5ff),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xfff8f5ff),
shadowColor: const Color(0xffc8a8d8),
),
brightness: Brightness.light,
primaryColor: const Color(0xff9b7cb6),
canvasColor: const Color(0xfff5f2ff),
scaffoldBackgroundColor: const Color(0xfff5f2ff),
cardColor: const Color(0xfff8f5ff),
dividerColor: const Color(0xffc8a8d8),
highlightColor: const Color(0xffc8a8d8),
splashColor: const Color(0xffc8a8d8),
unselectedWidgetColor: const Color(0xff3e2851),
disabledColor: const Color(0x77c8a8d8),
secondaryHeaderColor: const Color(0xfff8f5ff),
dialogBackgroundColor: const Color(0xfff8f5ff),
indicatorColor: const Color(0xff9b7cb6),
hintColor: const Color(0x803e2851),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).black,
textTheme: Typography.material2021(platform: TargetPlatform.android).black,
primaryIconTheme: const IconThemeData(color: Color(0xff3e2851)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff3e2851),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xffc8a8d8),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff9b7cb6),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xfff8f5ff),
foregroundColor: const Color(0xff3e2851),
shadowColor: const Color(0xfff8f5ff),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarIconBrightness: Brightness.dark,
systemNavigationBarColor: const Color(0xfff8f5ff),
statusBarIconBrightness: Brightness.dark,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff9b7cb6),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff3e2851),
side: const BorderSide(
color: Color(0xff9b7cb6),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff9b7cb6),
foregroundColor: const Color(0xffffffff),
),
),
);
}
ThemeData _buildMintyFreshTheme() {
final base = ThemeData.light(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: Color(0xff0d9488),
secondary: Color(0xff5eead4),
surface: Color(0xfff0fdfa),
error: Color(0xffdc2626),
onSurface: Color(0xff134e4a),
background: Color(0xffecfdf5),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xfff0fdfa),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xfff0fdfa),
shadowColor: const Color(0xff5eead4),
),
brightness: Brightness.light,
primaryColor: const Color(0xff0d9488),
canvasColor: const Color(0xffecfdf5),
scaffoldBackgroundColor: const Color(0xffecfdf5),
cardColor: const Color(0xfff0fdfa),
dividerColor: const Color(0xff5eead4),
highlightColor: const Color(0xff5eead4),
splashColor: const Color(0xff5eead4),
unselectedWidgetColor: const Color(0xff134e4a),
disabledColor: const Color(0x775eead4),
secondaryHeaderColor: const Color(0xfff0fdfa),
dialogBackgroundColor: const Color(0xfff0fdfa),
indicatorColor: const Color(0xff0d9488),
hintColor: const Color(0x80134e4a),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).black,
textTheme: Typography.material2021(platform: TargetPlatform.android).black,
primaryIconTheme: const IconThemeData(color: Color(0xff134e4a)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff134e4a),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff5eead4),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff0d9488),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xfff0fdfa),
foregroundColor: const Color(0xff134e4a),
shadowColor: const Color(0xfff0fdfa),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarIconBrightness: Brightness.dark,
systemNavigationBarColor: const Color(0xfff0fdfa),
statusBarIconBrightness: Brightness.dark,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff0d9488),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff134e4a),
side: const BorderSide(
color: Color(0xff0d9488),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff0d9488),
foregroundColor: const Color(0xffffffff),
),
),
);
}
ThemeData _buildWarmVanillaTheme() {
final base = ThemeData.light(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: Color(0xffd97706),
secondary: Color(0xfffbbf24),
surface: Color(0xfffffbeb),
error: Color(0xffdc2626),
onSurface: Color(0xff78350f),
background: Color(0xfffef3c7),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xfffffbeb),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xfffffbeb),
shadowColor: const Color(0xfffbbf24),
),
brightness: Brightness.light,
primaryColor: const Color(0xffd97706),
canvasColor: const Color(0xfffef3c7),
scaffoldBackgroundColor: const Color(0xfffef3c7),
cardColor: const Color(0xfffffbeb),
dividerColor: const Color(0xfffbbf24),
highlightColor: const Color(0xfffbbf24),
splashColor: const Color(0xfffbbf24),
unselectedWidgetColor: const Color(0xff78350f),
disabledColor: const Color(0x77fbbf24),
secondaryHeaderColor: const Color(0xfffffbeb),
dialogBackgroundColor: const Color(0xfffffbeb),
indicatorColor: const Color(0xffd97706),
hintColor: const Color(0x8078350f),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).black,
textTheme: Typography.material2021(platform: TargetPlatform.android).black,
primaryIconTheme: const IconThemeData(color: Color(0xff78350f)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff78350f),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xfffbbf24),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xffd97706),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xfffffbeb),
foregroundColor: const Color(0xff78350f),
shadowColor: const Color(0xfffffbeb),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarIconBrightness: Brightness.dark,
systemNavigationBarColor: const Color(0xfffffbeb),
statusBarIconBrightness: Brightness.dark,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xffd97706),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff78350f),
side: const BorderSide(
color: Color(0xffd97706),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xffd97706),
foregroundColor: const Color(0xffffffff),
),
),
);
}
ThemeData _buildCoastalBlueTheme() {
final base = ThemeData.light(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: Color(0xff0369a1),
secondary: Color(0xff7dd3fc),
surface: Color(0xfff0f9ff),
error: Color(0xffdc2626),
onSurface: Color(0xff0c4a6e),
background: Color(0xffe0f2fe),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xfff0f9ff),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xfff0f9ff),
shadowColor: const Color(0xff7dd3fc),
),
brightness: Brightness.light,
primaryColor: const Color(0xff0369a1),
canvasColor: const Color(0xffe0f2fe),
scaffoldBackgroundColor: const Color(0xffe0f2fe),
cardColor: const Color(0xfff0f9ff),
dividerColor: const Color(0xff7dd3fc),
highlightColor: const Color(0xff7dd3fc),
splashColor: const Color(0xff7dd3fc),
unselectedWidgetColor: const Color(0xff0c4a6e),
disabledColor: const Color(0x777dd3fc),
secondaryHeaderColor: const Color(0xfff0f9ff),
dialogBackgroundColor: const Color(0xfff0f9ff),
indicatorColor: const Color(0xff0369a1),
hintColor: const Color(0x800c4a6e),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).black,
textTheme: Typography.material2021(platform: TargetPlatform.android).black,
primaryIconTheme: const IconThemeData(color: Color(0xff0c4a6e)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff0c4a6e),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xff7dd3fc),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff0369a1),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xfff0f9ff),
foregroundColor: const Color(0xff0c4a6e),
shadowColor: const Color(0xfff0f9ff),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarIconBrightness: Brightness.dark,
systemNavigationBarColor: const Color(0xfff0f9ff),
statusBarIconBrightness: Brightness.dark,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff0369a1),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff0c4a6e),
side: const BorderSide(
color: Color(0xff0369a1),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff0369a1),
foregroundColor: const Color(0xffffffff),
),
),
);
}
ThemeData _buildPaperCreamTheme() {
final base = ThemeData.light(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: Color(0xff8b5a3c),
secondary: Color(0xffd4af8c),
surface: Color(0xfff9f7f4),
error: Color(0xffdc2626),
onSurface: Color(0xff4a3728),
background: Color(0xfff5f2ef),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xfff9f7f4),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xfff9f7f4),
shadowColor: const Color(0xffd4af8c),
),
brightness: Brightness.light,
primaryColor: const Color(0xff8b5a3c),
canvasColor: const Color(0xfff5f2ef),
scaffoldBackgroundColor: const Color(0xfff5f2ef),
cardColor: const Color(0xfff9f7f4),
dividerColor: const Color(0xffd4af8c),
highlightColor: const Color(0xffd4af8c),
splashColor: const Color(0xffd4af8c),
unselectedWidgetColor: const Color(0xff4a3728),
disabledColor: const Color(0x77d4af8c),
secondaryHeaderColor: const Color(0xfff9f7f4),
dialogBackgroundColor: const Color(0xfff9f7f4),
indicatorColor: const Color(0xff8b5a3c),
hintColor: const Color(0x804a3728),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).black,
textTheme: Typography.material2021(platform: TargetPlatform.android).black,
primaryIconTheme: const IconThemeData(color: Color(0xff4a3728)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff4a3728),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xffd4af8c),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff8b5a3c),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xfff9f7f4),
foregroundColor: const Color(0xff4a3728),
shadowColor: const Color(0xfff9f7f4),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarIconBrightness: Brightness.dark,
systemNavigationBarColor: const Color(0xfff9f7f4),
statusBarIconBrightness: Brightness.dark,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff8b5a3c),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff4a3728),
side: const BorderSide(
color: Color(0xff8b5a3c),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff8b5a3c),
foregroundColor: const Color(0xffffffff),
),
),
);
}
ThemeData _buildGithubLightTheme() {
final base = ThemeData.light(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: Color(0xff0969da),
secondary: Color(0xff54aeff),
surface: Color(0xffffffff),
error: Color(0xffcf222e),
onSurface: Color(0xff1f2328),
background: Color(0xfff6f8fa),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xffffffff),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xffffffff),
shadowColor: const Color(0xffd0d7de),
),
brightness: Brightness.light,
primaryColor: const Color(0xff0969da),
canvasColor: const Color(0xfff6f8fa),
scaffoldBackgroundColor: const Color(0xfff6f8fa),
cardColor: const Color(0xffffffff),
dividerColor: const Color(0xffd0d7de),
highlightColor: const Color(0xffd0d7de),
splashColor: const Color(0xffd0d7de),
unselectedWidgetColor: const Color(0xff1f2328),
disabledColor: const Color(0x77d0d7de),
secondaryHeaderColor: const Color(0xffffffff),
dialogBackgroundColor: const Color(0xffffffff),
indicatorColor: const Color(0xff0969da),
hintColor: const Color(0x801f2328),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).black,
textTheme: Typography.material2021(platform: TargetPlatform.android).black,
primaryIconTheme: const IconThemeData(color: Color(0xff1f2328)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff1f2328),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xffd0d7de),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xff0969da),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xffffffff),
foregroundColor: const Color(0xff1f2328),
shadowColor: const Color(0xffffffff),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarIconBrightness: Brightness.dark,
systemNavigationBarColor: const Color(0xffffffff),
statusBarIconBrightness: Brightness.dark,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xff0969da),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff1f2328),
side: const BorderSide(
color: Color(0xff0969da),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xff0969da),
foregroundColor: const Color(0xffffffff),
),
),
);
}
ThemeData _buildHotDogStandTheme() {
final base = ThemeData.light(useMaterial3: false);
return base.copyWith(
colorScheme: const ColorScheme.light(
primary: Color(0xffff0000),
secondary: Color(0xffffff00),
surface: Color(0xffffff00),
error: Color(0xffffff00),
onSurface: Color(0xff000000),
background: Color(0xffffff00),
),
bottomAppBarTheme: const BottomAppBarThemeData().copyWith(
color: const Color(0xffffff00),
),
cardTheme: const CardThemeData().copyWith(
color: const Color(0xffffff00),
shadowColor: const Color(0xffffffff),
),
brightness: Brightness.light,
primaryColor: const Color(0xffff0000),
canvasColor: const Color(0xffffff00),
scaffoldBackgroundColor: const Color(0xffffff00),
cardColor: const Color(0xffffff00),
dividerColor: const Color(0xffff0000),
highlightColor: const Color(0xffff0000),
splashColor: const Color(0xffff0000),
unselectedWidgetColor: const Color(0xff000000),
disabledColor: const Color(0x77ff0000),
secondaryHeaderColor: const Color(0xffffff00),
dialogBackgroundColor: const Color(0xffffff00),
indicatorColor: const Color(0xffff0000),
hintColor: const Color(0x80000000),
primaryTextTheme: Typography.material2021(platform: TargetPlatform.android).black,
textTheme: Typography.material2021(platform: TargetPlatform.android).black,
primaryIconTheme: const IconThemeData(color: Color(0xff000000)),
iconTheme: base.iconTheme.copyWith(
color: const Color(0xff000000),
),
dividerTheme: base.dividerTheme.copyWith(
color: const Color(0xffff0000),
),
sliderTheme: const SliderThemeData().copyWith(
valueIndicatorColor: const Color(0xffff0000),
trackHeight: 2.0,
thumbShape: const RoundSliderThumbShape(
enabledThumbRadius: 6.0,
disabledThumbRadius: 6.0,
),
),
appBarTheme: base.appBarTheme.copyWith(
backgroundColor: const Color(0xffffff00),
foregroundColor: const Color(0xff000000),
shadowColor: const Color(0xffffff00),
elevation: 1.0,
systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarIconBrightness: Brightness.dark,
systemNavigationBarColor: const Color(0xffffff00),
statusBarIconBrightness: Brightness.dark,
),
),
snackBarTheme: base.snackBarTheme.copyWith(
actionTextColor: const Color(0xffff0000),
),
outlinedButtonTheme: OutlinedButtonThemeData(
style: OutlinedButton.styleFrom(
foregroundColor: const Color(0xff000000),
side: const BorderSide(
color: Color(0xffff0000),
style: BorderStyle.solid,
),
),
),
elevatedButtonTheme: ElevatedButtonThemeData(
style: ElevatedButton.styleFrom(
backgroundColor: const Color(0xffff0000),
foregroundColor: const Color(0xffffff00),
),
),
);
}