131 lines
4.7 KiB
Dart
131 lines
4.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:google_fonts/google_fonts.dart';
|
|
import 'package:shadcn_ui/shadcn_ui.dart';
|
|
|
|
import 'yanting_text.dart';
|
|
import 'yanting_tokens.dart';
|
|
|
|
const _lightShadColors = ShadColorScheme(
|
|
background: YantingColors.background,
|
|
foreground: YantingColors.foreground,
|
|
card: YantingColors.card,
|
|
cardForeground: YantingColors.foreground,
|
|
popover: YantingColors.card,
|
|
popoverForeground: YantingColors.foreground,
|
|
primary: YantingColors.primary,
|
|
primaryForeground: YantingColors.primaryForeground,
|
|
secondary: YantingColors.secondary,
|
|
secondaryForeground: YantingColors.secondaryForeground,
|
|
muted: YantingColors.muted,
|
|
mutedForeground: YantingColors.mutedForeground,
|
|
accent: YantingColors.brandSoft,
|
|
accentForeground: YantingColors.primaryForeground,
|
|
destructive: YantingColors.destructive,
|
|
destructiveForeground: YantingColors.background,
|
|
border: YantingColors.border,
|
|
input: YantingColors.input,
|
|
ring: YantingColors.primary,
|
|
selection: YantingColors.foreground,
|
|
custom: {
|
|
'brandSoft': YantingColors.brandSoft,
|
|
'brandSoftBorder': YantingColors.brandSoftBorder,
|
|
'link': YantingColors.link,
|
|
'chart2': YantingColors.chart2,
|
|
'warning': YantingColors.warning,
|
|
},
|
|
);
|
|
|
|
const _darkShadColors = ShadColorScheme(
|
|
background: Color(0xFF0F0F0F),
|
|
foreground: Color(0xFFF0F0F0),
|
|
card: Color(0xFF1A1A1A),
|
|
cardForeground: Color(0xFFF0F0F0),
|
|
popover: Color(0xFF1A1A1A),
|
|
popoverForeground: Color(0xFFF0F0F0),
|
|
primary: YantingColors.primary,
|
|
primaryForeground: Color(0xFF0F1A00),
|
|
secondary: Color(0xFF1F1F23),
|
|
secondaryForeground: Color(0xFFF0F0F0),
|
|
muted: Color(0xFF1A1A1A),
|
|
mutedForeground: Color(0xFFA1A1AA),
|
|
accent: Color(0xFF1C2B00),
|
|
accentForeground: YantingColors.primary,
|
|
destructive: YantingColors.destructive,
|
|
destructiveForeground: YantingColors.background,
|
|
border: Color(0xFF2A2A2A),
|
|
input: Color(0xFF2A2A2A),
|
|
ring: YantingColors.primary,
|
|
selection: Color(0xFFF0F0F0),
|
|
custom: {
|
|
'brandSoft': Color(0xFF1C2B00),
|
|
'brandSoftBorder': Color(0xFF304800),
|
|
'link': YantingColors.link,
|
|
'chart2': YantingColors.chart2,
|
|
'warning': YantingColors.warning,
|
|
},
|
|
);
|
|
|
|
ShadThemeData buildYantingShadTheme() {
|
|
return ShadThemeData(
|
|
brightness: Brightness.light,
|
|
colorScheme: _lightShadColors,
|
|
radius: BorderRadius.circular(YantingRadius.base),
|
|
cardTheme: ShadCardTheme(
|
|
padding: const EdgeInsets.all(YantingSpacing.cardPadding),
|
|
radius: BorderRadius.circular(YantingRadius.xl),
|
|
border: ShadBorder.all(color: YantingColors.border),
|
|
shadows: const [],
|
|
),
|
|
textTheme: ShadTextTheme(
|
|
family: YantingText.fontFamily,
|
|
h1Large: YantingText.appTitle,
|
|
h1: YantingText.appTitle,
|
|
h2: YantingText.sectionTitle,
|
|
h3: YantingText.cardTitle,
|
|
h4: YantingText.listTitle,
|
|
p: YantingText.body,
|
|
blockquote: YantingText.body,
|
|
table: YantingText.meta,
|
|
list: YantingText.body,
|
|
lead: YantingText.sub,
|
|
large: YantingText.cardTitle,
|
|
small: YantingText.badge,
|
|
muted: YantingText.meta,
|
|
googleFontBuilder: GoogleFonts.dmSans,
|
|
),
|
|
);
|
|
}
|
|
|
|
ShadThemeData buildYantingDarkShadTheme() {
|
|
return ShadThemeData(
|
|
brightness: Brightness.dark,
|
|
colorScheme: _darkShadColors,
|
|
radius: BorderRadius.circular(YantingRadius.base),
|
|
cardTheme: ShadCardTheme(
|
|
padding: const EdgeInsets.all(YantingSpacing.cardPadding),
|
|
radius: BorderRadius.circular(YantingRadius.xl),
|
|
border: ShadBorder.all(color: _darkShadColors.border),
|
|
shadows: const [],
|
|
),
|
|
textTheme: ShadTextTheme(
|
|
family: YantingText.fontFamily,
|
|
h1Large: YantingText.appTitle.copyWith(color: _darkShadColors.foreground),
|
|
h1: YantingText.appTitle.copyWith(color: _darkShadColors.foreground),
|
|
h2: YantingText.sectionTitle.copyWith(color: _darkShadColors.foreground),
|
|
h3: YantingText.cardTitle.copyWith(color: _darkShadColors.foreground),
|
|
h4: YantingText.listTitle.copyWith(color: _darkShadColors.foreground),
|
|
p: YantingText.body.copyWith(color: _darkShadColors.foreground),
|
|
blockquote: YantingText.body.copyWith(
|
|
color: _darkShadColors.mutedForeground,
|
|
),
|
|
table: YantingText.meta.copyWith(color: _darkShadColors.mutedForeground),
|
|
list: YantingText.body.copyWith(color: _darkShadColors.foreground),
|
|
lead: YantingText.sub.copyWith(color: _darkShadColors.mutedForeground),
|
|
large: YantingText.cardTitle.copyWith(color: _darkShadColors.foreground),
|
|
small: YantingText.badge.copyWith(color: _darkShadColors.mutedForeground),
|
|
muted: YantingText.meta.copyWith(color: _darkShadColors.mutedForeground),
|
|
googleFontBuilder: GoogleFonts.dmSans,
|
|
),
|
|
);
|
|
}
|