import 'package:flutter/material.dart'; import 'package:shadcn_ui/shadcn_ui.dart'; abstract final class YantingColors { static const background = Color(0xFFFFFFFF); static const foreground = Color(0xFF1A1A1A); static const card = Color(0xFFFFFFFF); static const primary = Color(0xFF95E300); static const primaryForeground = Color(0xFF365314); static const secondary = Color(0xFFF4F4F5); static const secondaryForeground = Color(0xFF27272A); static const muted = Color(0xFFF7F7F7); static const mutedForeground = Color(0xFF71717A); static const border = Color(0xFFE5E5E5); static const input = Color(0xFFE5E5E5); static const destructive = Color(0xFFEF4444); static const warning = Color(0xFF9A6500); static const warningSoft = Color(0xFFFDE68A); static const warningSoftBorder = Color(0xFFF5D26A); static const warningSoftForeground = Color(0xFF7C4A00); static const chart2 = Color(0xFF84CC16); static const brandSoft = Color(0xFFECFCCB); static const brandSoftBorder = Color(0xFFD6F5A8); static const link = Color(0xFF2563EB); static const canvas = background; } abstract final class YantingDarkColors { static const background = Color(0xFF09090B); static const foreground = Color(0xFFF4F4F5); static const card = Color(0xFF111113); static const primary = Color(0xFF95E300); static const primaryForeground = Color(0xFF0F1A00); static const secondary = Color(0xFF1F1F23); static const secondaryForeground = Color(0xFFE4E4E7); static const muted = Color(0xFF18181B); static const mutedForeground = Color(0xFFA1A1AA); static const border = Color(0xFF27272A); static const input = Color(0xFF27272A); static const destructive = Color(0xFFF87171); static const warning = Color(0xFFF59E0B); static const warningSoft = Color(0xFF2A2412); static const warningSoftBorder = Color(0xFF665113); static const warningSoftForeground = Color(0xFFFBBF24); static const chart2 = Color(0xFF84CC16); static const brandSoft = Color(0xFF1C2B00); static const brandSoftBorder = Color(0xFF304800); static const link = Color(0xFF8AB4FF); static const canvas = background; } abstract final class YantingSpacing { static const x1 = 4.0; static const x2 = 8.0; static const x3 = 12.0; static const cardGap = 14.0; static const x4 = 16.0; static const cardPadding = 18.0; static const screenX = 20.0; static const x6 = 24.0; static const sectionGap = 30.0; static const x8 = 32.0; static const x10 = 40.0; static const tabBarHeight = 56.0; } abstract final class YantingRadius { static const base = 7.2; static const sm = 3.2; static const md = 5.2; static const xl = 11.2; static const pill = 9999.0; } abstract final class YantingBorders { static const card = BorderSide(color: YantingColors.border); static const soft = BorderSide(color: YantingColors.brandSoftBorder); } abstract final class YantingTypographyFeatures { static const tabularNums = [FontFeature.tabularFigures()]; } extension YantingShadColorSchemeX on ShadColorScheme { Color get brandSoft => custom['brandSoft'] ?? accent; Color get brandSoftBorder => custom['brandSoftBorder'] ?? border; Color get link => custom['link'] ?? primary; Color get warning => custom['warning'] ?? destructive; Color get warningSoft => custom['warningSoft'] ?? muted; Color get warningSoftBorder => custom['warningSoftBorder'] ?? border; Color get warningSoftForeground => custom['warningSoftForeground'] ?? foreground; Color get chart2 => custom['chart2'] ?? primary; }