fix;设置和深浅色

This commit is contained in:
jingyun
2026-06-05 17:54:46 +08:00
parent 33d04a5545
commit af865b13fb
24 changed files with 742 additions and 290 deletions
+93 -112
View File
@@ -5,126 +5,107 @@ 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,
},
);
ShadThemeData buildYantingShadTheme() =>
_buildShadTheme(brightness: Brightness.light);
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 buildYantingDarkShadTheme() =>
_buildShadTheme(brightness: Brightness.dark);
ShadThemeData _buildShadTheme({required Brightness brightness}) {
final colors = brightness == Brightness.dark
? ShadColorScheme(
background: YantingDarkColors.background,
foreground: YantingDarkColors.foreground,
card: YantingDarkColors.card,
cardForeground: YantingDarkColors.foreground,
popover: YantingDarkColors.card,
popoverForeground: YantingDarkColors.foreground,
primary: YantingDarkColors.primary,
primaryForeground: YantingDarkColors.primaryForeground,
secondary: YantingDarkColors.secondary,
secondaryForeground: YantingDarkColors.secondaryForeground,
muted: YantingDarkColors.muted,
mutedForeground: YantingDarkColors.mutedForeground,
accent: YantingDarkColors.brandSoft,
accentForeground: YantingDarkColors.primaryForeground,
destructive: YantingDarkColors.destructive,
destructiveForeground: YantingDarkColors.background,
border: YantingDarkColors.border,
input: YantingDarkColors.input,
ring: YantingDarkColors.primary,
selection: YantingDarkColors.foreground,
custom: {
'brandSoft': YantingDarkColors.brandSoft,
'brandSoftBorder': YantingDarkColors.brandSoftBorder,
'link': YantingDarkColors.link,
'chart2': YantingDarkColors.chart2,
'warning': YantingDarkColors.warning,
'warningSoft': YantingDarkColors.warningSoft,
'warningSoftBorder': YantingDarkColors.warningSoftBorder,
'warningSoftForeground': YantingDarkColors.warningSoftForeground,
},
)
: 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,
'warningSoft': YantingColors.warningSoft,
'warningSoftBorder': YantingColors.warningSoftBorder,
'warningSoftForeground': YantingColors.warningSoftForeground,
},
);
final textTheme = ShadTextTheme(
family: YantingText.fontFamily,
h1Large: YantingText.appTitle.copyWith(color: colors.foreground),
h1: YantingText.appTitle.copyWith(color: colors.foreground),
h2: YantingText.sectionTitle.copyWith(color: colors.foreground),
h3: YantingText.cardTitle.copyWith(color: colors.foreground),
h4: YantingText.listTitle.copyWith(color: colors.foreground),
p: YantingText.body.copyWith(color: colors.foreground),
blockquote: YantingText.body.copyWith(color: colors.mutedForeground),
table: YantingText.meta.copyWith(color: colors.mutedForeground),
list: YantingText.body.copyWith(color: colors.foreground),
lead: YantingText.sub.copyWith(color: colors.mutedForeground),
large: YantingText.cardTitle.copyWith(color: colors.foreground),
small: YantingText.badge.copyWith(color: colors.mutedForeground),
muted: YantingText.meta.copyWith(color: colors.mutedForeground),
googleFontBuilder: GoogleFonts.dmSans,
);
ShadThemeData buildYantingShadTheme() {
return ShadThemeData(
brightness: Brightness.light,
colorScheme: _lightShadColors,
brightness: brightness,
colorScheme: colors,
radius: BorderRadius.circular(YantingRadius.base),
cardTheme: ShadCardTheme(
padding: const EdgeInsets.all(YantingSpacing.cardPadding),
radius: BorderRadius.circular(YantingRadius.xl),
border: ShadBorder.all(color: YantingColors.border),
border: ShadBorder.all(color: colors.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,
),
textTheme: textTheme,
);
}