feat:参照研听的基础工程

This commit is contained in:
jingyun
2026-06-18 15:02:28 +08:00
commit 364fc837b3
367 changed files with 16495 additions and 0 deletions
+81
View File
@@ -0,0 +1,81 @@
import 'package:flutter/widgets.dart';
import 'package:shadcn_ui/shadcn_ui.dart';
const jinzhiLightScheme = ShadColorScheme(
background: Color(0xFFFBFAF7),
foreground: Color(0xFF1A1A17),
card: Color(0xFFFFFFFF),
cardForeground: Color(0xFF1A1A17),
popover: Color(0xFFFFFFFF),
popoverForeground: Color(0xFF1A1A17),
primary: Color(0xFFB5862A),
primaryForeground: Color(0xFFFFFFFF),
secondary: Color(0xFFF6ECD6),
secondaryForeground: Color(0xFF7A5B12),
muted: Color(0xFFF1EFE9),
mutedForeground: Color(0xFF8A8780),
accent: Color(0xFFF6ECD6),
accentForeground: Color(0xFF7A5B12),
destructive: Color(0xFFC0392B),
destructiveForeground: Color(0xFFFFFFFF),
border: Color(0xFFECEAE3),
input: Color(0xFFECEAE3),
ring: Color(0xFFB5862A),
selection: Color(0xFF1A1A17),
);
/// Hero 卡描边 = demo `--brand-soft-border`(比 brand-soft 填充更深一档的绿)。
/// ShadColorScheme 无对应 slot,单列于此(色值仍集中在 theme,widget 不写 hex);
/// widget 按 brightness 取值。light=oklch(0.9 0.07 128)、dark=oklch(0.42 0.07 131)。
const jinzhiBrandSoftBorderLight = Color(0xFFE3D6B4);
const jinzhiBrandSoftBorderDark = Color(0xFF5E4A22);
Color brandSoftBorder(Brightness b) => b == Brightness.dark
? jinzhiBrandSoftBorderDark
: jinzhiBrandSoftBorderLight;
/// Herobrand-soft 绿底)上的副/弱文本色。
/// 规范:次级文本是**中性 muted**,不挪用语义色(accentForeground 是链接/强调专用)。
/// 浅绿底上灰 muted(#8E8E93) 对比不足,故用 foreground 降透明的**中性深灰**
/// (叠在绿底上自然带轻微绿调、和谐且达 AA);深色底仍用灰 muted(已够对比)。
Color brandSoftMutedForeground(Brightness b, ShadColorScheme cs) =>
b == Brightness.dark
? cs.mutedForeground
: cs.foreground.withValues(alpha: 0.7);
/// 危险警示卡 soft-tintdemo `.da-warn`,与 brand-soft 同语言的 destructive 变体)。
const jinzhiDestructiveSoftLight = Color(0xFFFBEDEA);
const jinzhiDestructiveSoftBorderLight = Color(0xFFE8C7BF);
const jinzhiDestructiveSoftDark = Color(0x1AEF4444);
const jinzhiDestructiveSoftBorderDark = Color(0x52EF4444);
Color destructiveSoft(Brightness b) => b == Brightness.dark
? jinzhiDestructiveSoftDark
: jinzhiDestructiveSoftLight;
Color destructiveSoftBorder(Brightness b) => b == Brightness.dark
? jinzhiDestructiveSoftBorderDark
: jinzhiDestructiveSoftBorderLight;
const jinzhiDarkScheme = ShadColorScheme(
background: Color(0xFF0F0F0F),
foreground: Color(0xFFF0F0F0),
card: Color(0xFF1A1A1A),
cardForeground: Color(0xFFF0F0F0),
popover: Color(0xFF1A1A1A),
popoverForeground: Color(0xFFF0F0F0),
primary: Color(0xFFD9B45D),
primaryForeground: Color(0xFF1A1A17),
secondary: Color(0xFF27272A),
secondaryForeground: Color(0xFFF0F0F0),
muted: Color(0xFF262626),
mutedForeground: Color(0xFFA1A1AA),
accent: Color(0xFF3A2A0D),
accentForeground: Color(0xFFD9B45D),
destructive: Color(0xFFEF4444),
destructiveForeground: Color(0xFFFFFFFF),
border: Color(0x1FFFFFFF),
input: Color(0x26FFFFFF),
ring: Color(0xFFD9B45D),
selection: Color(0xFFF0F0F0),
);