mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-25 19:30:17 +08:00
feat(tokens): introduce design tokens for colors, spacing, typography, and radius
- Added new CSS files for design tokens including colors, spacing, typography, and border radius. - Updated theme.css to import the new tokens and ensure proper usage in the UI. - Enhanced the theme structure to support light and dark modes with semantic color mappings. - Introduced a build script to generate theme from tokens for easier management.
This commit is contained in:
parent
cd6a38ebeb
commit
77c848035d
@ -15,7 +15,8 @@
|
||||
"lint": "eslint src --ext .ts,.tsx --fix",
|
||||
"type-check": "tsc --noEmit -p tsconfig.json --composite false",
|
||||
"storybook": "storybook dev -p 6006",
|
||||
"build-storybook": "storybook build"
|
||||
"build-storybook": "storybook build",
|
||||
"tokens:build": "node scripts/generate-theme-from-tokens.mjs"
|
||||
},
|
||||
"keywords": [
|
||||
"ui",
|
||||
|
||||
@ -1,443 +1,450 @@
|
||||
/**
|
||||
* CherryStudio Theme - Tailwind CSS 主题配置
|
||||
* Generated from Design Tokens
|
||||
*
|
||||
* 用途:映射设计师的设计系统(--cs-*)到 Tailwind 标准命名
|
||||
* 使用场景:
|
||||
* - 主包:完全使用设计系统
|
||||
* - npm 用户:可选择导入,会覆盖 Tailwind 默认主题
|
||||
* ⚠️ DO NOT EDIT DIRECTLY!
|
||||
* This file is auto-generated from tokens/ directory.
|
||||
* To make changes, edit files in tokens/ and run: npm run tokens:build
|
||||
*
|
||||
* 生成的工具类:bg-primary, bg-red-500, p-md 等(无前缀)
|
||||
* Generated on: 2025-11-07T08:56:09.444Z
|
||||
*/
|
||||
|
||||
@import 'tailwindcss';
|
||||
@import './tokens.css';
|
||||
@import "tailwindcss";
|
||||
|
||||
@custom-variant dark (&:is(.dark *));
|
||||
|
||||
@theme {
|
||||
/* ==================== */
|
||||
/* 语义化颜色(覆盖 Tailwind 标准命名) */
|
||||
/* ==================== */
|
||||
--color-primary: var(--cs-primary);
|
||||
--color-primary-hover: var(--cs-primary-hover);
|
||||
--color-primary-foreground: var(--cs-white);
|
||||
|
||||
--color-destructive: var(--cs-destructive);
|
||||
--color-destructive-hover: var(--cs-destructive-hover);
|
||||
--color-destructive-foreground: var(--cs-white);
|
||||
|
||||
--color-success: var(--cs-success);
|
||||
--color-success-foreground: var(--cs-white);
|
||||
|
||||
--color-warning: var(--cs-warning);
|
||||
--color-warning-foreground: var(--cs-black);
|
||||
|
||||
--color-background: var(--cs-background);
|
||||
--color-foreground: var(--cs-foreground);
|
||||
|
||||
--color-card: var(--cs-card);
|
||||
--color-card-foreground: var(--cs-foreground);
|
||||
|
||||
--color-popover: var(--cs-popover);
|
||||
--color-popover-foreground: var(--cs-foreground);
|
||||
|
||||
--color-secondary: var(--cs-secondary);
|
||||
--color-secondary-foreground: var(--cs-foreground);
|
||||
|
||||
--color-muted: var(--cs-muted);
|
||||
--color-muted-foreground: var(--cs-foreground-muted);
|
||||
|
||||
--color-accent: var(--cs-accent);
|
||||
--color-accent-foreground: var(--cs-foreground);
|
||||
|
||||
--color-border: var(--cs-border);
|
||||
--color-input: var(--cs-border);
|
||||
--color-ring: var(--cs-ring);
|
||||
|
||||
/* 侧边栏 */
|
||||
--color-sidebar: var(--cs-sidebar);
|
||||
--color-sidebar-foreground: var(--cs-foreground);
|
||||
--color-sidebar-primary: var(--cs-primary);
|
||||
--color-sidebar-primary-foreground: var(--cs-white);
|
||||
--color-sidebar-accent: var(--cs-sidebar-accent);
|
||||
--color-sidebar-accent-foreground: var(--cs-foreground);
|
||||
--color-sidebar-border: var(--cs-border);
|
||||
--color-sidebar-ring: var(--cs-ring);
|
||||
|
||||
/* 图表颜色 */
|
||||
--color-chart-1: var(--cs-blue-500);
|
||||
--color-chart-2: var(--cs-emerald-500);
|
||||
--color-chart-3: var(--cs-purple-500);
|
||||
--color-chart-4: var(--cs-amber-500);
|
||||
--color-chart-5: var(--cs-orange-500);
|
||||
|
||||
/* ==================== */
|
||||
/* Primitive 颜色(覆盖 Tailwind 默认色板) */
|
||||
/* Primitive Colors */
|
||||
/* ==================== */
|
||||
|
||||
/* Neutral */
|
||||
--color-neutral-50: var(--cs-neutral-50);
|
||||
--color-neutral-100: var(--cs-neutral-100);
|
||||
--color-neutral-200: var(--cs-neutral-200);
|
||||
--color-neutral-300: var(--cs-neutral-300);
|
||||
--color-neutral-400: var(--cs-neutral-400);
|
||||
--color-neutral-500: var(--cs-neutral-500);
|
||||
--color-neutral-600: var(--cs-neutral-600);
|
||||
--color-neutral-700: var(--cs-neutral-700);
|
||||
--color-neutral-800: var(--cs-neutral-800);
|
||||
--color-neutral-900: var(--cs-neutral-900);
|
||||
--color-neutral-950: var(--cs-neutral-950);
|
||||
|
||||
/* Stone */
|
||||
--color-stone-50: var(--cs-stone-50);
|
||||
--color-stone-100: var(--cs-stone-100);
|
||||
--color-stone-200: var(--cs-stone-200);
|
||||
--color-stone-300: var(--cs-stone-300);
|
||||
--color-stone-400: var(--cs-stone-400);
|
||||
--color-stone-500: var(--cs-stone-500);
|
||||
--color-stone-600: var(--cs-stone-600);
|
||||
--color-stone-700: var(--cs-stone-700);
|
||||
--color-stone-800: var(--cs-stone-800);
|
||||
--color-stone-900: var(--cs-stone-900);
|
||||
--color-stone-950: var(--cs-stone-950);
|
||||
|
||||
/* Zinc */
|
||||
--color-zinc-50: var(--cs-zinc-50);
|
||||
--color-zinc-100: var(--cs-zinc-100);
|
||||
--color-zinc-200: var(--cs-zinc-200);
|
||||
--color-zinc-300: var(--cs-zinc-300);
|
||||
--color-zinc-400: var(--cs-zinc-400);
|
||||
--color-zinc-500: var(--cs-zinc-500);
|
||||
--color-zinc-600: var(--cs-zinc-600);
|
||||
--color-zinc-700: var(--cs-zinc-700);
|
||||
--color-zinc-800: var(--cs-zinc-800);
|
||||
--color-zinc-900: var(--cs-zinc-900);
|
||||
--color-zinc-950: var(--cs-zinc-950);
|
||||
|
||||
/* Slate */
|
||||
--color-slate-50: var(--cs-slate-50);
|
||||
--color-slate-100: var(--cs-slate-100);
|
||||
--color-slate-200: var(--cs-slate-200);
|
||||
--color-slate-300: var(--cs-slate-300);
|
||||
--color-slate-400: var(--cs-slate-400);
|
||||
--color-slate-500: var(--cs-slate-500);
|
||||
--color-slate-600: var(--cs-slate-600);
|
||||
--color-slate-700: var(--cs-slate-700);
|
||||
--color-slate-800: var(--cs-slate-800);
|
||||
--color-slate-900: var(--cs-slate-900);
|
||||
--color-slate-950: var(--cs-slate-950);
|
||||
|
||||
/* Gray */
|
||||
--color-gray-50: var(--cs-gray-50);
|
||||
--color-gray-100: var(--cs-gray-100);
|
||||
--color-gray-200: var(--cs-gray-200);
|
||||
--color-gray-300: var(--cs-gray-300);
|
||||
--color-gray-400: var(--cs-gray-400);
|
||||
--color-gray-500: var(--cs-gray-500);
|
||||
--color-gray-600: var(--cs-gray-600);
|
||||
--color-gray-700: var(--cs-gray-700);
|
||||
--color-gray-800: var(--cs-gray-800);
|
||||
--color-gray-900: var(--cs-gray-900);
|
||||
--color-gray-950: var(--cs-gray-950);
|
||||
|
||||
/* Red */
|
||||
--color-red-50: var(--cs-red-50);
|
||||
--color-red-100: var(--cs-red-100);
|
||||
--color-red-200: var(--cs-red-200);
|
||||
--color-red-300: var(--cs-red-300);
|
||||
--color-red-400: var(--cs-red-400);
|
||||
--color-red-500: var(--cs-red-500);
|
||||
--color-red-600: var(--cs-red-600);
|
||||
--color-red-700: var(--cs-red-700);
|
||||
--color-red-800: var(--cs-red-800);
|
||||
--color-red-900: var(--cs-red-900);
|
||||
--color-red-950: var(--cs-red-950);
|
||||
|
||||
/* Orange */
|
||||
--color-orange-50: var(--cs-orange-50);
|
||||
--color-orange-100: var(--cs-orange-100);
|
||||
--color-orange-200: var(--cs-orange-200);
|
||||
--color-orange-300: var(--cs-orange-300);
|
||||
--color-orange-400: var(--cs-orange-400);
|
||||
--color-orange-500: var(--cs-orange-500);
|
||||
--color-orange-600: var(--cs-orange-600);
|
||||
--color-orange-700: var(--cs-orange-700);
|
||||
--color-orange-800: var(--cs-orange-800);
|
||||
--color-orange-900: var(--cs-orange-900);
|
||||
--color-orange-950: var(--cs-orange-950);
|
||||
|
||||
/* Amber */
|
||||
--color-amber-50: var(--cs-amber-50);
|
||||
--color-amber-100: var(--cs-amber-100);
|
||||
--color-amber-200: var(--cs-amber-200);
|
||||
--color-amber-300: var(--cs-amber-300);
|
||||
--color-amber-400: var(--cs-amber-400);
|
||||
--color-amber-500: var(--cs-amber-500);
|
||||
--color-amber-600: var(--cs-amber-600);
|
||||
--color-amber-700: var(--cs-amber-700);
|
||||
--color-amber-800: var(--cs-amber-800);
|
||||
--color-amber-900: var(--cs-amber-900);
|
||||
--color-amber-950: var(--cs-amber-950);
|
||||
|
||||
/* Yellow */
|
||||
--color-yellow-50: var(--cs-yellow-50);
|
||||
--color-yellow-100: var(--cs-yellow-100);
|
||||
--color-yellow-200: var(--cs-yellow-200);
|
||||
--color-yellow-300: var(--cs-yellow-300);
|
||||
--color-yellow-400: var(--cs-yellow-400);
|
||||
--color-yellow-500: var(--cs-yellow-500);
|
||||
--color-yellow-600: var(--cs-yellow-600);
|
||||
--color-yellow-700: var(--cs-yellow-700);
|
||||
--color-yellow-800: var(--cs-yellow-800);
|
||||
--color-yellow-900: var(--cs-yellow-900);
|
||||
--color-yellow-950: var(--cs-yellow-950);
|
||||
|
||||
/* Lime (品牌主色) */
|
||||
--color-lime-50: var(--cs-lime-50);
|
||||
--color-lime-100: var(--cs-lime-100);
|
||||
--color-lime-200: var(--cs-lime-200);
|
||||
--color-lime-300: var(--cs-lime-300);
|
||||
--color-lime-400: var(--cs-lime-400);
|
||||
--color-lime-500: var(--cs-lime-500);
|
||||
--color-lime-600: var(--cs-lime-600);
|
||||
--color-lime-700: var(--cs-lime-700);
|
||||
--color-lime-800: var(--cs-lime-800);
|
||||
--color-lime-900: var(--cs-lime-900);
|
||||
--color-lime-950: var(--cs-lime-950);
|
||||
|
||||
/* Green */
|
||||
--color-green-50: var(--cs-green-50);
|
||||
--color-green-100: var(--cs-green-100);
|
||||
--color-green-200: var(--cs-green-200);
|
||||
--color-green-300: var(--cs-green-300);
|
||||
--color-green-400: var(--cs-green-400);
|
||||
--color-green-500: var(--cs-green-500);
|
||||
--color-green-600: var(--cs-green-600);
|
||||
--color-green-700: var(--cs-green-700);
|
||||
--color-green-800: var(--cs-green-800);
|
||||
--color-green-900: var(--cs-green-900);
|
||||
--color-green-950: var(--cs-green-950);
|
||||
|
||||
/* Emerald */
|
||||
--color-emerald-50: var(--cs-emerald-50);
|
||||
--color-emerald-100: var(--cs-emerald-100);
|
||||
--color-emerald-200: var(--cs-emerald-200);
|
||||
--color-emerald-300: var(--cs-emerald-300);
|
||||
--color-emerald-400: var(--cs-emerald-400);
|
||||
--color-emerald-500: var(--cs-emerald-500);
|
||||
--color-emerald-600: var(--cs-emerald-600);
|
||||
--color-emerald-700: var(--cs-emerald-700);
|
||||
--color-emerald-800: var(--cs-emerald-800);
|
||||
--color-emerald-900: var(--cs-emerald-900);
|
||||
--color-emerald-950: var(--cs-emerald-950);
|
||||
|
||||
/* Teal */
|
||||
--color-teal-50: var(--cs-teal-50);
|
||||
--color-teal-100: var(--cs-teal-100);
|
||||
--color-teal-200: var(--cs-teal-200);
|
||||
--color-teal-300: var(--cs-teal-300);
|
||||
--color-teal-400: var(--cs-teal-400);
|
||||
--color-teal-500: var(--cs-teal-500);
|
||||
--color-teal-600: var(--cs-teal-600);
|
||||
--color-teal-700: var(--cs-teal-700);
|
||||
--color-teal-800: var(--cs-teal-800);
|
||||
--color-teal-900: var(--cs-teal-900);
|
||||
--color-teal-950: var(--cs-teal-950);
|
||||
|
||||
/* Cyan */
|
||||
--color-cyan-50: var(--cs-cyan-50);
|
||||
--color-cyan-100: var(--cs-cyan-100);
|
||||
--color-cyan-200: var(--cs-cyan-200);
|
||||
--color-cyan-300: var(--cs-cyan-300);
|
||||
--color-cyan-400: var(--cs-cyan-400);
|
||||
--color-cyan-500: var(--cs-cyan-500);
|
||||
--color-cyan-600: var(--cs-cyan-600);
|
||||
--color-cyan-700: var(--cs-cyan-700);
|
||||
--color-cyan-800: var(--cs-cyan-800);
|
||||
--color-cyan-900: var(--cs-cyan-900);
|
||||
--color-cyan-950: var(--cs-cyan-950);
|
||||
|
||||
/* Sky */
|
||||
--color-sky-50: var(--cs-sky-50);
|
||||
--color-sky-100: var(--cs-sky-100);
|
||||
--color-sky-200: var(--cs-sky-200);
|
||||
--color-sky-300: var(--cs-sky-300);
|
||||
--color-sky-400: var(--cs-sky-400);
|
||||
--color-sky-500: var(--cs-sky-500);
|
||||
--color-sky-600: var(--cs-sky-600);
|
||||
--color-sky-700: var(--cs-sky-700);
|
||||
--color-sky-800: var(--cs-sky-800);
|
||||
--color-sky-900: var(--cs-sky-900);
|
||||
--color-sky-950: var(--cs-sky-950);
|
||||
|
||||
/* Blue */
|
||||
--color-blue-50: var(--cs-blue-50);
|
||||
--color-blue-100: var(--cs-blue-100);
|
||||
--color-blue-200: var(--cs-blue-200);
|
||||
--color-blue-300: var(--cs-blue-300);
|
||||
--color-blue-400: var(--cs-blue-400);
|
||||
--color-blue-500: var(--cs-blue-500);
|
||||
--color-blue-600: var(--cs-blue-600);
|
||||
--color-blue-700: var(--cs-blue-700);
|
||||
--color-blue-800: var(--cs-blue-800);
|
||||
--color-blue-900: var(--cs-blue-900);
|
||||
--color-blue-950: var(--cs-blue-950);
|
||||
|
||||
/* Indigo */
|
||||
--color-indigo-50: var(--cs-indigo-50);
|
||||
--color-indigo-100: var(--cs-indigo-100);
|
||||
--color-indigo-200: var(--cs-indigo-200);
|
||||
--color-indigo-300: var(--cs-indigo-300);
|
||||
--color-indigo-400: var(--cs-indigo-400);
|
||||
--color-indigo-500: var(--cs-indigo-500);
|
||||
--color-indigo-600: var(--cs-indigo-600);
|
||||
--color-indigo-700: var(--cs-indigo-700);
|
||||
--color-indigo-800: var(--cs-indigo-800);
|
||||
--color-indigo-900: var(--cs-indigo-900);
|
||||
--color-indigo-950: var(--cs-indigo-950);
|
||||
|
||||
/* Violet */
|
||||
--color-violet-50: var(--cs-violet-50);
|
||||
--color-violet-100: var(--cs-violet-100);
|
||||
--color-violet-200: var(--cs-violet-200);
|
||||
--color-violet-300: var(--cs-violet-300);
|
||||
--color-violet-400: var(--cs-violet-400);
|
||||
--color-violet-500: var(--cs-violet-500);
|
||||
--color-violet-600: var(--cs-violet-600);
|
||||
--color-violet-700: var(--cs-violet-700);
|
||||
--color-violet-800: var(--cs-violet-800);
|
||||
--color-violet-900: var(--cs-violet-900);
|
||||
--color-violet-950: var(--cs-violet-950);
|
||||
|
||||
/* Purple */
|
||||
--color-purple-50: var(--cs-purple-50);
|
||||
--color-purple-100: var(--cs-purple-100);
|
||||
--color-purple-200: var(--cs-purple-200);
|
||||
--color-purple-300: var(--cs-purple-300);
|
||||
--color-purple-400: var(--cs-purple-400);
|
||||
--color-purple-500: var(--cs-purple-500);
|
||||
--color-purple-600: var(--cs-purple-600);
|
||||
--color-purple-700: var(--cs-purple-700);
|
||||
--color-purple-800: var(--cs-purple-800);
|
||||
--color-purple-900: var(--cs-purple-900);
|
||||
--color-purple-950: var(--cs-purple-950);
|
||||
|
||||
/* Fuchsia */
|
||||
--color-fuchsia-50: var(--cs-fuchsia-50);
|
||||
--color-fuchsia-100: var(--cs-fuchsia-100);
|
||||
--color-fuchsia-200: var(--cs-fuchsia-200);
|
||||
--color-fuchsia-300: var(--cs-fuchsia-300);
|
||||
--color-fuchsia-400: var(--cs-fuchsia-400);
|
||||
--color-fuchsia-500: var(--cs-fuchsia-500);
|
||||
--color-fuchsia-600: var(--cs-fuchsia-600);
|
||||
--color-fuchsia-700: var(--cs-fuchsia-700);
|
||||
--color-fuchsia-800: var(--cs-fuchsia-800);
|
||||
--color-fuchsia-900: var(--cs-fuchsia-900);
|
||||
--color-fuchsia-950: var(--cs-fuchsia-950);
|
||||
|
||||
/* Pink */
|
||||
--color-pink-50: var(--cs-pink-50);
|
||||
--color-pink-100: var(--cs-pink-100);
|
||||
--color-pink-200: var(--cs-pink-200);
|
||||
--color-pink-300: var(--cs-pink-300);
|
||||
--color-pink-400: var(--cs-pink-400);
|
||||
--color-pink-500: var(--cs-pink-500);
|
||||
--color-pink-600: var(--cs-pink-600);
|
||||
--color-pink-700: var(--cs-pink-700);
|
||||
--color-pink-800: var(--cs-pink-800);
|
||||
--color-pink-900: var(--cs-pink-900);
|
||||
--color-pink-950: var(--cs-pink-950);
|
||||
|
||||
/* Rose */
|
||||
--color-rose-50: var(--cs-rose-50);
|
||||
--color-rose-100: var(--cs-rose-100);
|
||||
--color-rose-200: var(--cs-rose-200);
|
||||
--color-rose-300: var(--cs-rose-300);
|
||||
--color-rose-400: var(--cs-rose-400);
|
||||
--color-rose-500: var(--cs-rose-500);
|
||||
--color-rose-600: var(--cs-rose-600);
|
||||
--color-rose-700: var(--cs-rose-700);
|
||||
--color-rose-800: var(--cs-rose-800);
|
||||
--color-rose-900: var(--cs-rose-900);
|
||||
--color-rose-950: var(--cs-rose-950);
|
||||
|
||||
/* Black & White */
|
||||
--color-black: var(--cs-black);
|
||||
--color-white: var(--cs-white);
|
||||
|
||||
/* Brand (Cherry Studio 品牌色) */
|
||||
--color-brand-50: var(--cs-brand-50);
|
||||
--color-brand-100: var(--cs-brand-100);
|
||||
--color-brand-200: var(--cs-brand-200);
|
||||
--color-brand-300: var(--cs-brand-300);
|
||||
--color-brand-400: var(--cs-brand-400);
|
||||
--color-brand-500: var(--cs-brand-500);
|
||||
--color-brand-600: var(--cs-brand-600);
|
||||
--color-brand-700: var(--cs-brand-700);
|
||||
--color-brand-800: var(--cs-brand-800);
|
||||
--color-brand-900: var(--cs-brand-900);
|
||||
--color-brand-950: var(--cs-brand-950);
|
||||
--color-neutral-50: hsla(0, 0%, 98%, 1);
|
||||
--color-neutral-100: hsla(0, 0%, 96%, 1);
|
||||
--color-neutral-200: hsla(0, 0%, 90%, 1);
|
||||
--color-neutral-300: hsla(0, 0%, 83%, 1);
|
||||
--color-neutral-400: hsla(0, 0%, 64%, 1);
|
||||
--color-neutral-500: hsla(0, 0%, 45%, 1);
|
||||
--color-neutral-600: hsla(215, 14%, 34%, 1);
|
||||
--color-neutral-700: hsla(0, 0%, 25%, 1);
|
||||
--color-neutral-800: hsla(0, 0%, 15%, 1);
|
||||
--color-neutral-900: hsla(0, 0%, 9%, 1);
|
||||
--color-neutral-950: hsla(0, 0%, 4%, 1);
|
||||
--color-stone-50: hsla(60, 9%, 98%, 1);
|
||||
--color-stone-100: hsla(60, 5%, 96%, 1);
|
||||
--color-stone-200: hsla(20, 6%, 90%, 1);
|
||||
--color-stone-300: hsla(24, 6%, 83%, 1);
|
||||
--color-stone-400: hsla(24, 5%, 64%, 1);
|
||||
--color-stone-500: hsla(25, 5%, 45%, 1);
|
||||
--color-stone-600: hsla(33, 5%, 32%, 1);
|
||||
--color-stone-700: hsla(30, 6%, 25%, 1);
|
||||
--color-stone-800: hsla(12, 6%, 15%, 1);
|
||||
--color-stone-900: hsla(24, 10%, 10%, 1);
|
||||
--color-stone-950: hsla(20, 14%, 4%, 1);
|
||||
--color-zinc-50: hsla(0, 0%, 98%, 1);
|
||||
--color-zinc-100: hsla(240, 5%, 96%, 1);
|
||||
--color-zinc-200: hsla(240, 6%, 90%, 1);
|
||||
--color-zinc-300: hsla(240, 5%, 84%, 1);
|
||||
--color-zinc-400: hsla(240, 5%, 65%, 1);
|
||||
--color-zinc-500: hsla(240, 4%, 46%, 1);
|
||||
--color-zinc-600: hsla(240, 5%, 34%, 1);
|
||||
--color-zinc-700: hsla(240, 5%, 26%, 1);
|
||||
--color-zinc-800: hsla(240, 4%, 16%, 1);
|
||||
--color-zinc-900: hsla(240, 6%, 10%, 1);
|
||||
--color-zinc-950: hsla(240, 10%, 4%, 1);
|
||||
--color-slate-50: hsla(210, 40%, 98%, 1);
|
||||
--color-slate-100: hsla(210, 40%, 96%, 1);
|
||||
--color-slate-200: hsla(214, 32%, 91%, 1);
|
||||
--color-slate-300: hsla(213, 27%, 84%, 1);
|
||||
--color-slate-400: hsla(215, 20%, 65%, 1);
|
||||
--color-slate-500: hsla(215, 16%, 47%, 1);
|
||||
--color-slate-600: hsla(215, 19%, 35%, 1);
|
||||
--color-slate-700: hsla(215, 25%, 27%, 1);
|
||||
--color-slate-800: hsla(217, 33%, 17%, 1);
|
||||
--color-slate-900: hsla(222, 47%, 11%, 1);
|
||||
--color-slate-950: hsla(229, 84%, 5%, 1);
|
||||
--color-gray-50: hsla(210, 20%, 98%, 1);
|
||||
--color-gray-100: hsla(220, 14%, 96%, 1);
|
||||
--color-gray-200: hsla(220, 13%, 91%, 1);
|
||||
--color-gray-300: hsla(216, 12%, 84%, 1);
|
||||
--color-gray-400: hsla(218, 11%, 65%, 1);
|
||||
--color-gray-500: hsla(220, 9%, 46%, 1);
|
||||
--color-gray-600: hsla(0, 0%, 32%, 1);
|
||||
--color-gray-700: hsla(217, 19%, 27%, 1);
|
||||
--color-gray-800: hsla(215, 28%, 17%, 1);
|
||||
--color-gray-900: hsla(221, 39%, 11%, 1);
|
||||
--color-gray-950: hsla(224, 71%, 4%, 1);
|
||||
--color-red-50: hsla(0, 86%, 97%, 1);
|
||||
--color-red-100: hsla(0, 93%, 94%, 1);
|
||||
--color-red-200: hsla(0, 96%, 89%, 1);
|
||||
--color-red-300: hsla(0, 94%, 82%, 1);
|
||||
--color-red-400: hsla(0, 91%, 71%, 1);
|
||||
--color-red-500: hsla(0, 84%, 60%, 1);
|
||||
--color-red-600: hsla(0, 72%, 51%, 1);
|
||||
--color-red-700: hsla(0, 74%, 42%, 1);
|
||||
--color-red-800: hsla(0, 70%, 35%, 1);
|
||||
--color-red-900: hsla(0, 63%, 31%, 1);
|
||||
--color-red-950: hsla(0, 75%, 15%, 1);
|
||||
--color-orange-50: hsla(33, 100%, 96%, 1);
|
||||
--color-orange-100: hsla(34, 100%, 92%, 1);
|
||||
--color-orange-200: hsla(32, 98%, 83%, 1);
|
||||
--color-orange-300: hsla(31, 97%, 72%, 1);
|
||||
--color-orange-400: hsla(27, 96%, 61%, 1);
|
||||
--color-orange-500: hsla(25, 95%, 53%, 1);
|
||||
--color-orange-600: hsla(21, 90%, 48%, 1);
|
||||
--color-orange-700: hsla(17, 88%, 40%, 1);
|
||||
--color-orange-800: hsla(15, 79%, 34%, 1);
|
||||
--color-orange-900: hsla(15, 75%, 28%, 1);
|
||||
--color-orange-950: hsla(13, 81%, 15%, 1);
|
||||
--color-amber-50: hsla(48, 100%, 96%, 1);
|
||||
--color-amber-100: hsla(48, 96%, 89%, 1);
|
||||
--color-amber-200: hsla(48, 97%, 77%, 1);
|
||||
--color-amber-300: hsla(46, 97%, 65%, 1);
|
||||
--color-amber-400: hsla(43, 96%, 56%, 1);
|
||||
--color-amber-500: hsla(38, 92%, 50%, 1);
|
||||
--color-amber-600: hsla(32, 95%, 44%, 1);
|
||||
--color-amber-700: hsla(26, 90%, 37%, 1);
|
||||
--color-amber-800: hsla(23, 83%, 31%, 1);
|
||||
--color-amber-900: hsla(22, 78%, 26%, 1);
|
||||
--color-amber-950: hsla(21, 92%, 14%, 1);
|
||||
--color-yellow-50: hsla(55, 92%, 95%, 1);
|
||||
--color-yellow-100: hsla(55, 97%, 88%, 1);
|
||||
--color-yellow-200: hsla(53, 98%, 77%, 1);
|
||||
--color-yellow-300: hsla(50, 98%, 64%, 1);
|
||||
--color-yellow-400: hsla(48, 96%, 53%, 1);
|
||||
--color-yellow-500: hsla(45, 93%, 47%, 1);
|
||||
--color-yellow-600: hsla(41, 96%, 40%, 1);
|
||||
--color-yellow-700: hsla(35, 92%, 33%, 1);
|
||||
--color-yellow-800: hsla(32, 81%, 29%, 1);
|
||||
--color-yellow-900: hsla(28, 73%, 26%, 1);
|
||||
--color-yellow-950: hsla(26, 83%, 14%, 1);
|
||||
--color-lime-50: hsla(78, 92%, 95%, 1);
|
||||
--color-lime-100: hsla(80, 89%, 89%, 1);
|
||||
--color-lime-200: hsla(81, 88%, 80%, 1);
|
||||
--color-lime-300: hsla(82, 85%, 67%, 1);
|
||||
--color-lime-400: hsla(83, 78%, 55%, 1);
|
||||
--color-lime-500: hsla(84, 81%, 44%, 1);
|
||||
--color-lime-600: hsla(85, 85%, 35%, 1);
|
||||
--color-lime-700: hsla(86, 78%, 27%, 1);
|
||||
--color-lime-800: hsla(86, 69%, 23%, 1);
|
||||
--color-lime-900: hsla(88, 61%, 20%, 1);
|
||||
--color-lime-950: hsla(89, 80%, 10%, 1);
|
||||
--color-green-50: hsla(138, 76%, 97%, 1);
|
||||
--color-green-100: hsla(141, 84%, 93%, 1);
|
||||
--color-green-200: hsla(141, 79%, 85%, 1);
|
||||
--color-green-300: hsla(142, 77%, 73%, 1);
|
||||
--color-green-400: hsla(142, 69%, 58%, 1);
|
||||
--color-green-500: hsla(142, 71%, 45%, 1);
|
||||
--color-green-600: hsla(142, 76%, 36%, 1);
|
||||
--color-green-700: hsla(142, 72%, 29%, 1);
|
||||
--color-green-800: hsla(143, 64%, 24%, 1);
|
||||
--color-green-900: hsla(144, 61%, 20%, 1);
|
||||
--color-green-950: hsla(145, 80%, 10%, 1);
|
||||
--color-emerald-50: hsla(152, 81%, 96%, 1);
|
||||
--color-emerald-100: hsla(149, 80%, 90%, 1);
|
||||
--color-emerald-200: hsla(152, 76%, 80%, 1);
|
||||
--color-emerald-300: hsla(156, 72%, 67%, 1);
|
||||
--color-emerald-400: hsla(158, 64%, 52%, 1);
|
||||
--color-emerald-500: hsla(160, 84%, 39%, 1);
|
||||
--color-emerald-600: hsla(161, 94%, 30%, 1);
|
||||
--color-emerald-700: hsla(163, 94%, 24%, 1);
|
||||
--color-emerald-800: hsla(163, 88%, 20%, 1);
|
||||
--color-emerald-900: hsla(164, 86%, 16%, 1);
|
||||
--color-emerald-950: hsla(166, 91%, 9%, 1);
|
||||
--color-teal-50: hsla(166, 76%, 97%, 1);
|
||||
--color-teal-100: hsla(167, 85%, 89%, 1);
|
||||
--color-teal-200: hsla(168, 84%, 78%, 1);
|
||||
--color-teal-300: hsla(171, 77%, 64%, 1);
|
||||
--color-teal-400: hsla(172, 66%, 50%, 1);
|
||||
--color-teal-500: hsla(173, 80%, 40%, 1);
|
||||
--color-teal-600: hsla(175, 84%, 32%, 1);
|
||||
--color-teal-700: hsla(175, 77%, 26%, 1);
|
||||
--color-teal-800: hsla(176, 69%, 22%, 1);
|
||||
--color-teal-900: hsla(176, 61%, 19%, 1);
|
||||
--color-teal-950: hsla(179, 84%, 10%, 1);
|
||||
--color-cyan-50: hsla(183, 100%, 96%, 1);
|
||||
--color-cyan-100: hsla(185, 96%, 90%, 1);
|
||||
--color-cyan-200: hsla(186, 94%, 82%, 1);
|
||||
--color-cyan-300: hsla(187, 92%, 69%, 1);
|
||||
--color-cyan-400: hsla(188, 86%, 53%, 1);
|
||||
--color-cyan-500: hsla(189, 94%, 43%, 1);
|
||||
--color-cyan-600: hsla(192, 91%, 36%, 1);
|
||||
--color-cyan-700: hsla(193, 82%, 31%, 1);
|
||||
--color-cyan-800: hsla(194, 70%, 27%, 1);
|
||||
--color-cyan-900: hsla(196, 64%, 24%, 1);
|
||||
--color-cyan-950: hsla(197, 79%, 15%, 1);
|
||||
--color-sky-50: hsla(204, 100%, 97%, 1);
|
||||
--color-sky-100: hsla(204, 94%, 94%, 1);
|
||||
--color-sky-200: hsla(201, 94%, 86%, 1);
|
||||
--color-sky-300: hsla(199, 95%, 74%, 1);
|
||||
--color-sky-400: hsla(198, 93%, 60%, 1);
|
||||
--color-sky-500: hsla(199, 89%, 48%, 1);
|
||||
--color-sky-600: hsla(200, 98%, 39%, 1);
|
||||
--color-sky-700: hsla(201, 96%, 32%, 1);
|
||||
--color-sky-800: hsla(201, 90%, 27%, 1);
|
||||
--color-sky-900: hsla(202, 80%, 24%, 1);
|
||||
--color-sky-950: hsla(204, 80%, 16%, 1);
|
||||
--color-blue-50: hsla(214, 100%, 97%, 1);
|
||||
--color-blue-100: hsla(214, 95%, 93%, 1);
|
||||
--color-blue-200: hsla(213, 97%, 87%, 1);
|
||||
--color-blue-300: hsla(212, 96%, 78%, 1);
|
||||
--color-blue-400: hsla(213, 94%, 68%, 1);
|
||||
--color-blue-500: hsla(217, 91%, 60%, 1);
|
||||
--color-blue-600: hsla(221, 83%, 53%, 1);
|
||||
--color-blue-700: hsla(224, 76%, 48%, 1);
|
||||
--color-blue-800: hsla(226, 71%, 40%, 1);
|
||||
--color-blue-900: hsla(224, 64%, 33%, 1);
|
||||
--color-blue-950: hsla(226, 57%, 21%, 1);
|
||||
--color-indigo-50: hsla(226, 100%, 97%, 1);
|
||||
--color-indigo-100: hsla(226, 100%, 94%, 1);
|
||||
--color-indigo-200: hsla(228, 96%, 89%, 1);
|
||||
--color-indigo-300: hsla(230, 94%, 82%, 1);
|
||||
--color-indigo-400: hsla(234, 89%, 74%, 1);
|
||||
--color-indigo-500: hsla(239, 84%, 67%, 1);
|
||||
--color-indigo-600: hsla(243, 75%, 59%, 1);
|
||||
--color-indigo-700: hsla(245, 58%, 51%, 1);
|
||||
--color-indigo-800: hsla(244, 55%, 41%, 1);
|
||||
--color-indigo-900: hsla(242, 47%, 34%, 1);
|
||||
--color-indigo-950: hsla(244, 47%, 20%, 1);
|
||||
--color-violet-50: hsla(250, 100%, 98%, 1);
|
||||
--color-violet-100: hsla(251, 91%, 95%, 1);
|
||||
--color-violet-200: hsla(251, 95%, 92%, 1);
|
||||
--color-violet-300: hsla(253, 95%, 85%, 1);
|
||||
--color-violet-400: hsla(255, 92%, 76%, 1);
|
||||
--color-violet-500: hsla(258, 90%, 66%, 1);
|
||||
--color-violet-600: hsla(262, 83%, 58%, 1);
|
||||
--color-violet-700: hsla(263, 70%, 50%, 1);
|
||||
--color-violet-800: hsla(263, 69%, 42%, 1);
|
||||
--color-violet-900: hsla(264, 67%, 35%, 1);
|
||||
--color-violet-950: hsla(262, 78%, 23%, 1);
|
||||
--color-purple-50: hsla(270, 100%, 98%, 1);
|
||||
--color-purple-100: hsla(269, 100%, 95%, 1);
|
||||
--color-purple-200: hsla(269, 100%, 92%, 1);
|
||||
--color-purple-300: hsla(269, 97%, 85%, 1);
|
||||
--color-purple-400: hsla(270, 95%, 75%, 1);
|
||||
--color-purple-500: hsla(271, 91%, 65%, 1);
|
||||
--color-purple-600: hsla(271, 81%, 56%, 1);
|
||||
--color-purple-700: hsla(272, 72%, 47%, 1);
|
||||
--color-purple-800: hsla(273, 67%, 39%, 1);
|
||||
--color-purple-900: hsla(274, 66%, 32%, 1);
|
||||
--color-purple-950: hsla(274, 87%, 21%, 1);
|
||||
--color-fuchsia-50: hsla(289, 100%, 98%, 1);
|
||||
--color-fuchsia-100: hsla(287, 100%, 95%, 1);
|
||||
--color-fuchsia-200: hsla(288, 96%, 91%, 1);
|
||||
--color-fuchsia-300: hsla(291, 93%, 83%, 1);
|
||||
--color-fuchsia-400: hsla(292, 91%, 73%, 1);
|
||||
--color-fuchsia-500: hsla(292, 84%, 61%, 1);
|
||||
--color-fuchsia-600: hsla(293, 69%, 49%, 1);
|
||||
--color-fuchsia-700: hsla(295, 72%, 40%, 1);
|
||||
--color-fuchsia-800: hsla(295, 70%, 33%, 1);
|
||||
--color-fuchsia-900: hsla(297, 64%, 28%, 1);
|
||||
--color-fuchsia-950: hsla(297, 90%, 16%, 1);
|
||||
--color-pink-50: hsla(327, 73%, 97%, 1);
|
||||
--color-pink-100: hsla(326, 78%, 95%, 1);
|
||||
--color-pink-200: hsla(326, 85%, 90%, 1);
|
||||
--color-pink-300: hsla(327, 87%, 82%, 1);
|
||||
--color-pink-400: hsla(329, 86%, 70%, 1);
|
||||
--color-pink-500: hsla(330, 81%, 60%, 1);
|
||||
--color-pink-600: hsla(333, 71%, 51%, 1);
|
||||
--color-pink-700: hsla(335, 78%, 42%, 1);
|
||||
--color-pink-800: hsla(336, 74%, 35%, 1);
|
||||
--color-pink-900: hsla(336, 69%, 30%, 1);
|
||||
--color-pink-950: hsla(336, 84%, 17%, 1);
|
||||
--color-rose-50: hsla(356, 100%, 97%, 1);
|
||||
--color-rose-100: hsla(356, 100%, 95%, 1);
|
||||
--color-rose-200: hsla(353, 96%, 90%, 1);
|
||||
--color-rose-300: hsla(353, 96%, 82%, 1);
|
||||
--color-rose-400: hsla(351, 95%, 71%, 1);
|
||||
--color-rose-500: hsla(350, 89%, 60%, 1);
|
||||
--color-rose-600: hsla(347, 77%, 50%, 1);
|
||||
--color-rose-700: hsla(345, 83%, 41%, 1);
|
||||
--color-rose-800: hsla(343, 80%, 35%, 1);
|
||||
--color-rose-900: hsla(342, 75%, 30%, 1);
|
||||
--color-rose-950: hsla(343, 88%, 16%, 1);
|
||||
--color-brand-50: hsla(132, 64%, 97%, 1);
|
||||
--color-brand-100: hsla(132, 64%, 93%, 1);
|
||||
--color-brand-200: hsla(132, 64%, 85%, 1);
|
||||
--color-brand-300: hsla(132, 64%, 73%, 1);
|
||||
--color-brand-400: hsla(132, 64%, 63%, 1);
|
||||
--color-brand-500: hsla(132, 64%, 53%, 1);
|
||||
--color-brand-600: hsla(132, 64%, 43%, 1);
|
||||
--color-brand-700: hsla(132, 64%, 33%, 1);
|
||||
--color-brand-800: hsla(132, 64%, 23%, 1);
|
||||
--color-brand-900: hsla(132, 64%, 13%, 1);
|
||||
--color-brand-950: hsla(132, 64%, 8%, 1);
|
||||
|
||||
/* ==================== */
|
||||
/* Spacing & Sizing(自定义尺寸,额外扩展) */
|
||||
/* Semantic Colors */
|
||||
/* ==================== */
|
||||
|
||||
--spacing-5xs: var(--cs-size-5xs);
|
||||
--spacing-4xs: var(--cs-size-4xs);
|
||||
--spacing-3xs: var(--cs-size-3xs);
|
||||
--spacing-2xs: var(--cs-size-2xs);
|
||||
--spacing-xs: var(--cs-size-xs);
|
||||
--spacing-sm: var(--cs-size-sm);
|
||||
--spacing-md: var(--cs-size-md);
|
||||
--spacing-lg: var(--cs-size-lg);
|
||||
--spacing-xl: var(--cs-size-xl);
|
||||
--spacing-2xl: var(--cs-size-2xl);
|
||||
--spacing-3xl: var(--cs-size-3xl);
|
||||
--spacing-4xl: var(--cs-size-4xl);
|
||||
--spacing-5xl: var(--cs-size-5xl);
|
||||
--spacing-6xl: var(--cs-size-6xl);
|
||||
--spacing-7xl: var(--cs-size-7xl);
|
||||
--spacing-8xl: var(--cs-size-8xl);
|
||||
--color-primary: hsla(132, 64%, 53%, 1);
|
||||
--color-primary-hover: hsla(132, 64%, 73%, 1);
|
||||
--color-destructive: hsla(0, 84%, 60%, 1);
|
||||
--color-destructive-hover: hsla(0, 91%, 71%, 1);
|
||||
--color-background: hsla(0, 0%, 98%, 1);
|
||||
--color-background-subtle: hsla(0, 0%, 0%, 0.02);
|
||||
--color-foreground: hsla(0, 0%, 0%, 0.9);
|
||||
--color-foreground-secondary: hsla(0, 0%, 0%, 0.6);
|
||||
--color-foreground-muted: hsla(0, 0%, 0%, 0.4);
|
||||
--color-card: hsla(0, 0%, 100%, 1);
|
||||
--color-popover: hsla(0, 0%, 100%, 1);
|
||||
--color-border: hsla(0, 0%, 0%, 0.1);
|
||||
--color-border-hover: hsla(0, 0%, 0%, 0.2);
|
||||
--color-border-active: hsla(0, 0%, 0%, 0.3);
|
||||
--color-ring: color-mix(in srgb, hsla(132, 64%, 53%, 1) 40%, transparent);
|
||||
--color-secondary: hsla(0, 0%, 0%, 0.05);
|
||||
--color-secondary-hover: hsla(0, 0%, 0%, 0.85);
|
||||
--color-secondary-active: hsla(0, 0%, 0%, 0.7);
|
||||
--color-muted: hsla(0, 0%, 0%, 0.05);
|
||||
--color-accent: hsla(0, 0%, 0%, 0.05);
|
||||
--color-ghost-hover: hsla(0, 0%, 0%, 0.05);
|
||||
--color-ghost-active: hsla(0, 0%, 0%, 0.1);
|
||||
--color-sidebar: hsla(0, 0%, 100%, 1);
|
||||
--color-sidebar-accent: hsla(0, 0%, 0%, 0.05);
|
||||
--color-border-width-sm: 1px;
|
||||
--color-border-width-md: 2px;
|
||||
--color-border-width-lg: 3px;
|
||||
|
||||
/* ==================== */
|
||||
/* Border Radius(自定义圆角,额外扩展) */
|
||||
/* Status Colors */
|
||||
/* ==================== */
|
||||
--color-error-base: hsla(0, 84%, 60%, 1);
|
||||
--color-error-text: hsla(0, 70%, 35%, 1);
|
||||
--color-error-bg: hsla(0, 86%, 97%, 1);
|
||||
--color-error-text-hover: hsla(0, 74%, 42%, 1);
|
||||
--color-error-bg-hover: hsla(0, 93%, 94%, 1);
|
||||
--color-error-border: hsla(0, 96%, 89%, 1);
|
||||
--color-error-border-hover: hsla(0, 94%, 82%, 1);
|
||||
--color-error-active: hsla(0, 72%, 51%, 1);
|
||||
--color-success-base: hsla(142, 71%, 45%, 1);
|
||||
--color-success-text-hover: hsla(142, 72%, 29%, 1);
|
||||
--color-success-bg: hsla(138, 76%, 97%, 1);
|
||||
--color-success-bg-hover: hsla(141, 79%, 85%, 1);
|
||||
--color-warning-base: hsla(43, 96%, 56%, 1);
|
||||
--color-warning-text-hover: hsla(26, 90%, 37%, 1);
|
||||
--color-warning-bg: hsla(48, 100%, 96%, 1);
|
||||
--color-warning-bg-hover: hsla(48, 96%, 89%, 1);
|
||||
--color-warning-active: hsla(32, 95%, 44%, 1);
|
||||
|
||||
--radius-4xs: var(--cs-radius-4xs);
|
||||
--radius-3xs: var(--cs-radius-3xs);
|
||||
--radius-2xs: var(--cs-radius-2xs);
|
||||
--radius-xs: var(--cs-radius-xs);
|
||||
--radius-sm: var(--cs-radius-sm);
|
||||
--radius-md: var(--cs-radius-md);
|
||||
--radius-lg: var(--cs-radius-lg);
|
||||
--radius-xl: var(--cs-radius-xl);
|
||||
--radius-2xl: var(--cs-radius-2xl);
|
||||
--radius-3xl: var(--cs-radius-3xl);
|
||||
--radius-round: var(--cs-radius-round);
|
||||
/* ==================== */
|
||||
/* Spacing */
|
||||
/* ==================== */
|
||||
--spacing-5xs: 0.25rem;
|
||||
--spacing-4xs: 0.5rem;
|
||||
--spacing-3xs: 0.75rem;
|
||||
--spacing-2xs: 1rem;
|
||||
--spacing-xs: 1.5rem;
|
||||
--spacing-sm: 2rem;
|
||||
--spacing-md: 2.5rem;
|
||||
--spacing-lg: 3rem;
|
||||
--spacing-xl: 3.5rem;
|
||||
--spacing-2xl: 4rem;
|
||||
--spacing-3xl: 4.5rem;
|
||||
--spacing-4xl: 5rem;
|
||||
--spacing-5xl: 5.5rem;
|
||||
--spacing-6xl: 6rem;
|
||||
--spacing-7xl: 6.5rem;
|
||||
--spacing-8xl: 7rem;
|
||||
|
||||
/* ==================== */
|
||||
/* Radius */
|
||||
/* ==================== */
|
||||
--radius-4xs: 4px;
|
||||
--radius-3xs: 8px;
|
||||
--radius-2xs: 12px;
|
||||
--radius-xs: 16px;
|
||||
--radius-sm: 24px;
|
||||
--radius-md: 32px;
|
||||
--radius-lg: 2.5rem;
|
||||
--radius-xl: 48px;
|
||||
--radius-2xl: 56px;
|
||||
--radius-3xl: 64px;
|
||||
--radius-round: 999px;
|
||||
|
||||
/* ==================== */
|
||||
/* Typography */
|
||||
/* ==================== */
|
||||
--font-family-heading: Inter;
|
||||
--font-family-body: Inter;
|
||||
--font-weight-regular: 400;
|
||||
--font-weight-medium: 500;
|
||||
--font-weight-bold: 700;
|
||||
--font-size-body-xs: 0.75rem;
|
||||
--font-size-body-sm: 0.875rem;
|
||||
--font-size-body-md: 1rem;
|
||||
--font-size-body-lg: 1.125rem;
|
||||
--font-size-heading-xs: 1.25rem;
|
||||
--font-size-heading-sm: 1.5rem;
|
||||
--font-size-heading-md: 2rem;
|
||||
--font-size-heading-lg: 2.5rem;
|
||||
--font-size-heading-xl: 3rem;
|
||||
--font-size-heading-2xl: 3.75rem;
|
||||
--line-height-body-xs: 1.25rem;
|
||||
--line-height-body-sm: 1.5rem;
|
||||
--line-height-body-md: 1.5rem;
|
||||
--line-height-body-lg: 1.75rem;
|
||||
--line-height-heading-xs: 2rem;
|
||||
--line-height-heading-sm: 2.5rem;
|
||||
--line-height-heading-md: 3rem;
|
||||
--line-height-heading-lg: 3.75rem;
|
||||
--line-height-heading-xl: 5rem;
|
||||
--paragraph-spacing-body-xs: 0.75rem;
|
||||
--paragraph-spacing-body-sm: 0.875rem;
|
||||
--paragraph-spacing-body-md: 1rem;
|
||||
--paragraph-spacing-body-lg: 1.125rem;
|
||||
--paragraph-spacing-heading-xs: 1.25rem;
|
||||
--paragraph-spacing-heading-sm: 1.5rem;
|
||||
--paragraph-spacing-heading-md: 2rem;
|
||||
--paragraph-spacing-heading-lg: 2.5rem;
|
||||
--paragraph-spacing-heading-xl: 3rem;
|
||||
--paragraph-spacing-heading-2xl: 3.75rem;
|
||||
}
|
||||
|
||||
/* ==================== */
|
||||
/* Dark Mode 覆盖 */
|
||||
/* Dark Mode */
|
||||
/* ==================== */
|
||||
|
||||
/* @theme dark {
|
||||
--color-background: var(--cs-background);
|
||||
--color-foreground: var(--cs-foreground);
|
||||
--color-card: var(--cs-card);
|
||||
--color-popover: var(--cs-popover);
|
||||
--color-border: var(--cs-border);
|
||||
--color-input: var(--cs-border);
|
||||
--color-secondary: var(--cs-secondary);
|
||||
--color-muted: var(--cs-muted);
|
||||
--color-accent: var(--cs-accent);
|
||||
--color-sidebar: var(--cs-sidebar);
|
||||
--color-sidebar-accent: var(--cs-sidebar-accent);
|
||||
} */
|
||||
@layer theme {
|
||||
.dark {
|
||||
--color-background: hsla(240, 6%, 10%, 1);
|
||||
--color-background-subtle: hsla(0, 0%, 100%, 0.02);
|
||||
--color-foreground: hsla(0, 0%, 100%, 0.9);
|
||||
--color-foreground-secondary: hsla(0, 0%, 100%, 0.6);
|
||||
--color-foreground-muted: hsla(0, 0%, 100%, 0.4);
|
||||
--color-card: hsla(0, 0%, 0%, 1);
|
||||
--color-popover: hsla(0, 0%, 0%, 1);
|
||||
--color-border: hsla(0, 0%, 100%, 0.1);
|
||||
--color-border-hover: hsla(0, 0%, 100%, 0.2);
|
||||
--color-border-active: hsla(0, 0%, 100%, 0.3);
|
||||
--color-ring: hsla(84, 81%, 44%, 0.4);
|
||||
--color-secondary: hsla(0, 0%, 100%, 0.1);
|
||||
--color-secondary-hover: hsla(0, 0%, 100%, 0.2);
|
||||
--color-secondary-active: hsla(0, 0%, 100%, 0.25);
|
||||
--color-muted: hsla(0, 0%, 100%, 0.1);
|
||||
--color-accent: hsla(0, 0%, 100%, 0.1);
|
||||
--color-ghost-hover: hsla(0, 0%, 100%, 0.1);
|
||||
--color-ghost-active: hsla(0, 0%, 100%, 0.15);
|
||||
--color-sidebar: hsla(0, 0%, 0%, 1);
|
||||
--color-sidebar-accent: hsla(0, 0%, 100%, 0.1);
|
||||
--color-error-base: hsla(0, 91%, 71%, 1);
|
||||
--color-error-text: hsla(0, 93%, 94%, 1);
|
||||
--color-error-bg: hsla(0, 63%, 31%, 1);
|
||||
--color-error-text-hover: hsla(0, 96%, 89%, 1);
|
||||
--color-error-bg-hover: hsla(0, 70%, 35%, 1);
|
||||
--color-error-border: hsla(0, 74%, 42%, 1);
|
||||
--color-error-border-hover: hsla(0, 72%, 51%, 1);
|
||||
--color-error-active: hsla(0, 94%, 82%, 1);
|
||||
--color-success-base: hsla(142, 69%, 58%, 1);
|
||||
--color-success-text-hover: hsla(141, 79%, 85%, 1);
|
||||
--color-success-bg: hsla(144, 61%, 20%, 1);
|
||||
--color-success-bg-hover: hsla(143, 64%, 24%, 1);
|
||||
--color-warning-base: hsla(43, 96%, 56%, 1);
|
||||
--color-warning-text-hover: hsla(48, 97%, 77%, 1);
|
||||
--color-warning-bg: hsla(22, 78%, 26%, 1);
|
||||
--color-warning-bg-hover: hsla(23, 83%, 31%, 1);
|
||||
--color-warning-active: hsla(32, 95%, 44%, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* ==================== */
|
||||
/* Base Styles(可选) */
|
||||
/* Base Styles */
|
||||
/* ==================== */
|
||||
|
||||
@layer base {
|
||||
* {
|
||||
@apply border-border outline-ring/50;
|
||||
|
||||
@ -1,495 +1,5 @@
|
||||
/**
|
||||
* CherryStudio Design Tokens
|
||||
*
|
||||
* 基于 todocss.css 转换的设计令牌
|
||||
* - 所有变量使用 --cs-* 前缀(CherryStudio)
|
||||
* - 合并重复的 Spacing/Sizing
|
||||
* - 修正错误(如 font-weight 单位)
|
||||
* - 删除 Opacity 变量(使用 Tailwind 修饰符)
|
||||
* - 正确分离 Light/Dark Mode
|
||||
*/
|
||||
|
||||
:root {
|
||||
/* ==================== */
|
||||
/* Primitive Colors - Light Mode */
|
||||
/* ==================== */
|
||||
|
||||
/* Neutral */
|
||||
--cs-neutral-50: hsla(0, 0%, 98%, 1);
|
||||
--cs-neutral-100: hsla(0, 0%, 96%, 1);
|
||||
--cs-neutral-200: hsla(0, 0%, 90%, 1);
|
||||
--cs-neutral-300: hsla(0, 0%, 83%, 1);
|
||||
--cs-neutral-400: hsla(0, 0%, 64%, 1);
|
||||
--cs-neutral-500: hsla(0, 0%, 45%, 1);
|
||||
--cs-neutral-600: hsla(215, 14%, 34%, 1);
|
||||
--cs-neutral-700: hsla(0, 0%, 25%, 1);
|
||||
--cs-neutral-800: hsla(0, 0%, 15%, 1);
|
||||
--cs-neutral-900: hsla(0, 0%, 9%, 1);
|
||||
--cs-neutral-950: hsla(0, 0%, 4%, 1);
|
||||
|
||||
/* Stone */
|
||||
--cs-stone-50: hsla(60, 9%, 98%, 1);
|
||||
--cs-stone-100: hsla(60, 5%, 96%, 1);
|
||||
--cs-stone-200: hsla(20, 6%, 90%, 1);
|
||||
--cs-stone-300: hsla(24, 6%, 83%, 1);
|
||||
--cs-stone-400: hsla(24, 5%, 64%, 1);
|
||||
--cs-stone-500: hsla(25, 5%, 45%, 1);
|
||||
--cs-stone-600: hsla(33, 5%, 32%, 1);
|
||||
--cs-stone-700: hsla(30, 6%, 25%, 1);
|
||||
--cs-stone-800: hsla(12, 6%, 15%, 1);
|
||||
--cs-stone-900: hsla(24, 10%, 10%, 1);
|
||||
--cs-stone-950: hsla(20, 14%, 4%, 1);
|
||||
|
||||
/* Zinc */
|
||||
--cs-zinc-50: hsla(0, 0%, 98%, 1);
|
||||
--cs-zinc-100: hsla(240, 5%, 96%, 1);
|
||||
--cs-zinc-200: hsla(240, 6%, 90%, 1);
|
||||
--cs-zinc-300: hsla(240, 5%, 84%, 1);
|
||||
--cs-zinc-400: hsla(240, 5%, 65%, 1);
|
||||
--cs-zinc-500: hsla(240, 4%, 46%, 1);
|
||||
--cs-zinc-600: hsla(240, 5%, 34%, 1);
|
||||
--cs-zinc-700: hsla(240, 5%, 26%, 1);
|
||||
--cs-zinc-800: hsla(240, 4%, 16%, 1);
|
||||
--cs-zinc-900: hsla(240, 6%, 10%, 1);
|
||||
--cs-zinc-950: hsla(240, 10%, 4%, 1);
|
||||
|
||||
/* Slate */
|
||||
--cs-slate-50: hsla(210, 40%, 98%, 1);
|
||||
--cs-slate-100: hsla(210, 40%, 96%, 1);
|
||||
--cs-slate-200: hsla(214, 32%, 91%, 1);
|
||||
--cs-slate-300: hsla(213, 27%, 84%, 1);
|
||||
--cs-slate-400: hsla(215, 20%, 65%, 1);
|
||||
--cs-slate-500: hsla(215, 16%, 47%, 1);
|
||||
--cs-slate-600: hsla(215, 19%, 35%, 1);
|
||||
--cs-slate-700: hsla(215, 25%, 27%, 1);
|
||||
--cs-slate-800: hsla(217, 33%, 17%, 1);
|
||||
--cs-slate-900: hsla(222, 47%, 11%, 1);
|
||||
--cs-slate-950: hsla(229, 84%, 5%, 1);
|
||||
|
||||
/* Gray */
|
||||
--cs-gray-50: hsla(210, 20%, 98%, 1);
|
||||
--cs-gray-100: hsla(220, 14%, 96%, 1);
|
||||
--cs-gray-200: hsla(220, 13%, 91%, 1);
|
||||
--cs-gray-300: hsla(216, 12%, 84%, 1);
|
||||
--cs-gray-400: hsla(218, 11%, 65%, 1);
|
||||
--cs-gray-500: hsla(220, 9%, 46%, 1);
|
||||
--cs-gray-600: hsla(0, 0%, 32%, 1);
|
||||
--cs-gray-700: hsla(217, 19%, 27%, 1);
|
||||
--cs-gray-800: hsla(215, 28%, 17%, 1);
|
||||
--cs-gray-900: hsla(221, 39%, 11%, 1);
|
||||
--cs-gray-950: hsla(224, 71%, 4%, 1);
|
||||
|
||||
/* Red */
|
||||
--cs-red-50: hsla(0, 86%, 97%, 1);
|
||||
--cs-red-100: hsla(0, 93%, 94%, 1);
|
||||
--cs-red-200: hsla(0, 96%, 89%, 1);
|
||||
--cs-red-300: hsla(0, 94%, 82%, 1);
|
||||
--cs-red-400: hsla(0, 91%, 71%, 1);
|
||||
--cs-red-500: hsla(0, 84%, 60%, 1);
|
||||
--cs-red-600: hsla(0, 72%, 51%, 1);
|
||||
--cs-red-700: hsla(0, 74%, 42%, 1);
|
||||
--cs-red-800: hsla(0, 70%, 35%, 1);
|
||||
--cs-red-900: hsla(0, 63%, 31%, 1);
|
||||
--cs-red-950: hsla(0, 75%, 15%, 1);
|
||||
|
||||
/* Orange */
|
||||
--cs-orange-50: hsla(33, 100%, 96%, 1);
|
||||
--cs-orange-100: hsla(34, 100%, 92%, 1);
|
||||
--cs-orange-200: hsla(32, 98%, 83%, 1);
|
||||
--cs-orange-300: hsla(31, 97%, 72%, 1);
|
||||
--cs-orange-400: hsla(27, 96%, 61%, 1);
|
||||
--cs-orange-500: hsla(25, 95%, 53%, 1);
|
||||
--cs-orange-600: hsla(21, 90%, 48%, 1);
|
||||
--cs-orange-700: hsla(17, 88%, 40%, 1);
|
||||
--cs-orange-800: hsla(15, 79%, 34%, 1);
|
||||
--cs-orange-900: hsla(15, 75%, 28%, 1);
|
||||
--cs-orange-950: hsla(13, 81%, 15%, 1);
|
||||
|
||||
/* Amber */
|
||||
--cs-amber-50: hsla(48, 100%, 96%, 1);
|
||||
--cs-amber-100: hsla(48, 96%, 89%, 1);
|
||||
--cs-amber-200: hsla(48, 97%, 77%, 1);
|
||||
--cs-amber-300: hsla(46, 97%, 65%, 1);
|
||||
--cs-amber-400: hsla(43, 96%, 56%, 1);
|
||||
--cs-amber-500: hsla(38, 92%, 50%, 1);
|
||||
--cs-amber-600: hsla(32, 95%, 44%, 1);
|
||||
--cs-amber-700: hsla(26, 90%, 37%, 1);
|
||||
--cs-amber-800: hsla(23, 83%, 31%, 1);
|
||||
--cs-amber-900: hsla(22, 78%, 26%, 1);
|
||||
--cs-amber-950: hsla(21, 92%, 14%, 1);
|
||||
|
||||
/* Yellow */
|
||||
--cs-yellow-50: hsla(55, 92%, 95%, 1);
|
||||
--cs-yellow-100: hsla(55, 97%, 88%, 1);
|
||||
--cs-yellow-200: hsla(53, 98%, 77%, 1);
|
||||
--cs-yellow-300: hsla(50, 98%, 64%, 1);
|
||||
--cs-yellow-400: hsla(48, 96%, 53%, 1);
|
||||
--cs-yellow-500: hsla(45, 93%, 47%, 1);
|
||||
--cs-yellow-600: hsla(41, 96%, 40%, 1);
|
||||
--cs-yellow-700: hsla(35, 92%, 33%, 1);
|
||||
--cs-yellow-800: hsla(32, 81%, 29%, 1);
|
||||
--cs-yellow-900: hsla(28, 73%, 26%, 1);
|
||||
--cs-yellow-950: hsla(26, 83%, 14%, 1);
|
||||
|
||||
/* Lime (品牌主色) */
|
||||
--cs-lime-50: hsla(78, 92%, 95%, 1);
|
||||
--cs-lime-100: hsla(80, 89%, 89%, 1);
|
||||
--cs-lime-200: hsla(81, 88%, 80%, 1);
|
||||
--cs-lime-300: hsla(82, 85%, 67%, 1);
|
||||
--cs-lime-400: hsla(83, 78%, 55%, 1);
|
||||
--cs-lime-500: hsla(84, 81%, 44%, 1);
|
||||
--cs-lime-600: hsla(85, 85%, 35%, 1);
|
||||
--cs-lime-700: hsla(86, 78%, 27%, 1);
|
||||
--cs-lime-800: hsla(86, 69%, 23%, 1);
|
||||
--cs-lime-900: hsla(88, 61%, 20%, 1);
|
||||
--cs-lime-950: hsla(89, 80%, 10%, 1);
|
||||
|
||||
/* Green */
|
||||
--cs-green-50: hsla(138, 76%, 97%, 1);
|
||||
--cs-green-100: hsla(141, 84%, 93%, 1);
|
||||
--cs-green-200: hsla(141, 79%, 85%, 1);
|
||||
--cs-green-300: hsla(142, 77%, 73%, 1);
|
||||
--cs-green-400: hsla(142, 69%, 58%, 1);
|
||||
--cs-green-500: hsla(142, 71%, 45%, 1);
|
||||
--cs-green-600: hsla(142, 76%, 36%, 1);
|
||||
--cs-green-700: hsla(142, 72%, 29%, 1);
|
||||
--cs-green-800: hsla(143, 64%, 24%, 1);
|
||||
--cs-green-900: hsla(144, 61%, 20%, 1);
|
||||
--cs-green-950: hsla(145, 80%, 10%, 1);
|
||||
|
||||
/* Emerald */
|
||||
--cs-emerald-50: hsla(152, 81%, 96%, 1);
|
||||
--cs-emerald-100: hsla(149, 80%, 90%, 1);
|
||||
--cs-emerald-200: hsla(152, 76%, 80%, 1);
|
||||
--cs-emerald-300: hsla(156, 72%, 67%, 1);
|
||||
--cs-emerald-400: hsla(158, 64%, 52%, 1);
|
||||
--cs-emerald-500: hsla(160, 84%, 39%, 1);
|
||||
--cs-emerald-600: hsla(161, 94%, 30%, 1);
|
||||
--cs-emerald-700: hsla(163, 94%, 24%, 1);
|
||||
--cs-emerald-800: hsla(163, 88%, 20%, 1);
|
||||
--cs-emerald-900: hsla(164, 86%, 16%, 1);
|
||||
--cs-emerald-950: hsla(166, 91%, 9%, 1);
|
||||
|
||||
/* Teal */
|
||||
--cs-teal-50: hsla(166, 76%, 97%, 1);
|
||||
--cs-teal-100: hsla(167, 85%, 89%, 1);
|
||||
--cs-teal-200: hsla(168, 84%, 78%, 1);
|
||||
--cs-teal-300: hsla(171, 77%, 64%, 1);
|
||||
--cs-teal-400: hsla(172, 66%, 50%, 1);
|
||||
--cs-teal-500: hsla(173, 80%, 40%, 1);
|
||||
--cs-teal-600: hsla(175, 84%, 32%, 1);
|
||||
--cs-teal-700: hsla(175, 77%, 26%, 1);
|
||||
--cs-teal-800: hsla(176, 69%, 22%, 1);
|
||||
--cs-teal-900: hsla(176, 61%, 19%, 1);
|
||||
--cs-teal-950: hsla(179, 84%, 10%, 1);
|
||||
|
||||
/* Cyan */
|
||||
--cs-cyan-50: hsla(183, 100%, 96%, 1);
|
||||
--cs-cyan-100: hsla(185, 96%, 90%, 1);
|
||||
--cs-cyan-200: hsla(186, 94%, 82%, 1);
|
||||
--cs-cyan-300: hsla(187, 92%, 69%, 1);
|
||||
--cs-cyan-400: hsla(188, 86%, 53%, 1);
|
||||
--cs-cyan-500: hsla(189, 94%, 43%, 1);
|
||||
--cs-cyan-600: hsla(192, 91%, 36%, 1);
|
||||
--cs-cyan-700: hsla(193, 82%, 31%, 1);
|
||||
--cs-cyan-800: hsla(194, 70%, 27%, 1);
|
||||
--cs-cyan-900: hsla(196, 64%, 24%, 1);
|
||||
--cs-cyan-950: hsla(197, 79%, 15%, 1);
|
||||
|
||||
/* Sky */
|
||||
--cs-sky-50: hsla(204, 100%, 97%, 1);
|
||||
--cs-sky-100: hsla(204, 94%, 94%, 1);
|
||||
--cs-sky-200: hsla(201, 94%, 86%, 1);
|
||||
--cs-sky-300: hsla(199, 95%, 74%, 1);
|
||||
--cs-sky-400: hsla(198, 93%, 60%, 1);
|
||||
--cs-sky-500: hsla(199, 89%, 48%, 1);
|
||||
--cs-sky-600: hsla(200, 98%, 39%, 1);
|
||||
--cs-sky-700: hsla(201, 96%, 32%, 1);
|
||||
--cs-sky-800: hsla(201, 90%, 27%, 1);
|
||||
--cs-sky-900: hsla(202, 80%, 24%, 1);
|
||||
--cs-sky-950: hsla(204, 80%, 16%, 1);
|
||||
|
||||
/* Blue */
|
||||
--cs-blue-50: hsla(214, 100%, 97%, 1);
|
||||
--cs-blue-100: hsla(214, 95%, 93%, 1);
|
||||
--cs-blue-200: hsla(213, 97%, 87%, 1);
|
||||
--cs-blue-300: hsla(212, 96%, 78%, 1);
|
||||
--cs-blue-400: hsla(213, 94%, 68%, 1);
|
||||
--cs-blue-500: hsla(217, 91%, 60%, 1);
|
||||
--cs-blue-600: hsla(221, 83%, 53%, 1);
|
||||
--cs-blue-700: hsla(224, 76%, 48%, 1);
|
||||
--cs-blue-800: hsla(226, 71%, 40%, 1);
|
||||
--cs-blue-900: hsla(224, 64%, 33%, 1);
|
||||
--cs-blue-950: hsla(226, 57%, 21%, 1);
|
||||
|
||||
/* Indigo */
|
||||
--cs-indigo-50: hsla(226, 100%, 97%, 1);
|
||||
--cs-indigo-100: hsla(226, 100%, 94%, 1);
|
||||
--cs-indigo-200: hsla(228, 96%, 89%, 1);
|
||||
--cs-indigo-300: hsla(230, 94%, 82%, 1);
|
||||
--cs-indigo-400: hsla(234, 89%, 74%, 1);
|
||||
--cs-indigo-500: hsla(239, 84%, 67%, 1);
|
||||
--cs-indigo-600: hsla(243, 75%, 59%, 1);
|
||||
--cs-indigo-700: hsla(245, 58%, 51%, 1);
|
||||
--cs-indigo-800: hsla(244, 55%, 41%, 1);
|
||||
--cs-indigo-900: hsla(242, 47%, 34%, 1);
|
||||
--cs-indigo-950: hsla(244, 47%, 20%, 1);
|
||||
|
||||
/* Violet */
|
||||
--cs-violet-50: hsla(250, 100%, 98%, 1);
|
||||
--cs-violet-100: hsla(251, 91%, 95%, 1);
|
||||
--cs-violet-200: hsla(251, 95%, 92%, 1);
|
||||
--cs-violet-300: hsla(253, 95%, 85%, 1);
|
||||
--cs-violet-400: hsla(255, 92%, 76%, 1);
|
||||
--cs-violet-500: hsla(258, 90%, 66%, 1);
|
||||
--cs-violet-600: hsla(262, 83%, 58%, 1);
|
||||
--cs-violet-700: hsla(263, 70%, 50%, 1);
|
||||
--cs-violet-800: hsla(263, 69%, 42%, 1);
|
||||
--cs-violet-900: hsla(264, 67%, 35%, 1);
|
||||
--cs-violet-950: hsla(262, 78%, 23%, 1);
|
||||
|
||||
/* Purple */
|
||||
--cs-purple-50: hsla(270, 100%, 98%, 1);
|
||||
--cs-purple-100: hsla(269, 100%, 95%, 1);
|
||||
--cs-purple-200: hsla(269, 100%, 92%, 1);
|
||||
--cs-purple-300: hsla(269, 97%, 85%, 1);
|
||||
--cs-purple-400: hsla(270, 95%, 75%, 1);
|
||||
--cs-purple-500: hsla(271, 91%, 65%, 1);
|
||||
--cs-purple-600: hsla(271, 81%, 56%, 1);
|
||||
--cs-purple-700: hsla(272, 72%, 47%, 1);
|
||||
--cs-purple-800: hsla(273, 67%, 39%, 1);
|
||||
--cs-purple-900: hsla(274, 66%, 32%, 1);
|
||||
--cs-purple-950: hsla(274, 87%, 21%, 1);
|
||||
|
||||
/* Fuchsia */
|
||||
--cs-fuchsia-50: hsla(289, 100%, 98%, 1);
|
||||
--cs-fuchsia-100: hsla(287, 100%, 95%, 1);
|
||||
--cs-fuchsia-200: hsla(288, 96%, 91%, 1);
|
||||
--cs-fuchsia-300: hsla(291, 93%, 83%, 1);
|
||||
--cs-fuchsia-400: hsla(292, 91%, 73%, 1);
|
||||
--cs-fuchsia-500: hsla(292, 84%, 61%, 1);
|
||||
--cs-fuchsia-600: hsla(293, 69%, 49%, 1);
|
||||
--cs-fuchsia-700: hsla(295, 72%, 40%, 1);
|
||||
--cs-fuchsia-800: hsla(295, 70%, 33%, 1);
|
||||
--cs-fuchsia-900: hsla(297, 64%, 28%, 1);
|
||||
--cs-fuchsia-950: hsla(297, 90%, 16%, 1);
|
||||
|
||||
/* Pink */
|
||||
--cs-pink-50: hsla(327, 73%, 97%, 1);
|
||||
--cs-pink-100: hsla(326, 78%, 95%, 1);
|
||||
--cs-pink-200: hsla(326, 85%, 90%, 1);
|
||||
--cs-pink-300: hsla(327, 87%, 82%, 1);
|
||||
--cs-pink-400: hsla(329, 86%, 70%, 1);
|
||||
--cs-pink-500: hsla(330, 81%, 60%, 1);
|
||||
--cs-pink-600: hsla(333, 71%, 51%, 1);
|
||||
--cs-pink-700: hsla(335, 78%, 42%, 1);
|
||||
--cs-pink-800: hsla(336, 74%, 35%, 1);
|
||||
--cs-pink-900: hsla(336, 69%, 30%, 1);
|
||||
--cs-pink-950: hsla(336, 84%, 17%, 1);
|
||||
|
||||
/* Rose */
|
||||
--cs-rose-50: hsla(356, 100%, 97%, 1);
|
||||
--cs-rose-100: hsla(356, 100%, 95%, 1);
|
||||
--cs-rose-200: hsla(353, 96%, 90%, 1);
|
||||
--cs-rose-300: hsla(353, 96%, 82%, 1);
|
||||
--cs-rose-400: hsla(351, 95%, 71%, 1);
|
||||
--cs-rose-500: hsla(350, 89%, 60%, 1);
|
||||
--cs-rose-600: hsla(347, 77%, 50%, 1);
|
||||
--cs-rose-700: hsla(345, 83%, 41%, 1);
|
||||
--cs-rose-800: hsla(343, 80%, 35%, 1);
|
||||
--cs-rose-900: hsla(342, 75%, 30%, 1);
|
||||
--cs-rose-950: hsla(343, 88%, 16%, 1);
|
||||
|
||||
/* Black & White */
|
||||
--cs-black: hsla(0, 0%, 0%, 1);
|
||||
--cs-white: hsla(0, 0%, 100%, 1);
|
||||
|
||||
/* Brand (Cherry Studio 品牌专属色) */
|
||||
--cs-brand-50: hsla(132, 64%, 97%, 1);
|
||||
--cs-brand-100: hsla(132, 64%, 93%, 1);
|
||||
--cs-brand-200: hsla(132, 64%, 85%, 1);
|
||||
--cs-brand-300: hsla(132, 64%, 73%, 1);
|
||||
--cs-brand-400: hsla(132, 64%, 63%, 1);
|
||||
--cs-brand-500: hsla(132, 64%, 53%, 1);
|
||||
--cs-brand-600: hsla(132, 64%, 43%, 1);
|
||||
--cs-brand-700: hsla(132, 64%, 33%, 1);
|
||||
--cs-brand-800: hsla(132, 64%, 23%, 1);
|
||||
--cs-brand-900: hsla(132, 64%, 13%, 1);
|
||||
--cs-brand-950: hsla(132, 64%, 8%, 1);
|
||||
|
||||
/* ==================== */
|
||||
/* Semantic Tokens - Light Mode */
|
||||
/* ==================== */
|
||||
|
||||
/* Brand Colors */
|
||||
--cs-primary: var(--cs-brand-500);
|
||||
--cs-primary-hover: var(--cs-brand-300);
|
||||
--cs-destructive: var(--cs-red-500);
|
||||
--cs-destructive-hover: var(--cs-red-400);
|
||||
--cs-success: var(--cs-green-500);
|
||||
--cs-warning: var(--cs-amber-500);
|
||||
|
||||
/* Background & Foreground */
|
||||
--cs-background: var(--cs-zinc-50);
|
||||
--cs-background-subtle: hsla(0, 0%, 0%, 0.02);
|
||||
--cs-foreground: hsla(0, 0%, 0%, 0.9);
|
||||
--cs-foreground-secondary: hsla(0, 0%, 0%, 0.6);
|
||||
--cs-foreground-muted: hsla(0, 0%, 0%, 0.4);
|
||||
|
||||
/* Card & Popover */
|
||||
--cs-card: var(--cs-white);
|
||||
--cs-popover: var(--cs-white);
|
||||
|
||||
/* Border */
|
||||
--cs-border: hsla(0, 0%, 0%, 0.1);
|
||||
--cs-border-hover: hsla(0, 0%, 0%, 0.2);
|
||||
--cs-border-active: hsla(0, 0%, 0%, 0.3);
|
||||
|
||||
/* Ring (Focus) */
|
||||
--cs-ring: color-mix(in srgb, var(--cs-primary) 40%, transparent);
|
||||
|
||||
/* UI Element Colors */
|
||||
--cs-secondary: hsla(0, 0%, 0%, 0.05); /* Secondary Button Background */
|
||||
--cs-secondary-hover: hsla(0, 0%, 0%, 0.85);
|
||||
--cs-secondary-active: hsla(0, 0%, 0%, 0.7);
|
||||
--cs-muted: hsla(0, 0%, 0%, 0.05); /* Muted/Subtle Background */
|
||||
--cs-accent: hsla(0, 0%, 0%, 0.05); /* Accent Background */
|
||||
--cs-ghost-hover: hsla(0, 0%, 0%, 0.05); /* Ghost Button Hover */
|
||||
--cs-ghost-active: hsla(0, 0%, 0%, 0.1); /* Ghost Button Active */
|
||||
|
||||
/* Sidebar */
|
||||
--cs-sidebar: var(--cs-white);
|
||||
--cs-sidebar-accent: hsla(0, 0%, 0%, 0.05);
|
||||
|
||||
/* ==================== */
|
||||
/* Spacing & Sizing (合并) */
|
||||
/* ==================== */
|
||||
|
||||
--cs-size-5xs: 0.25rem; /* 4px */
|
||||
--cs-size-4xs: 0.5rem; /* 8px */
|
||||
--cs-size-3xs: 0.75rem; /* 12px */
|
||||
--cs-size-2xs: 1rem; /* 16px */
|
||||
--cs-size-xs: 1.5rem; /* 24px */
|
||||
--cs-size-sm: 2rem; /* 32px */
|
||||
--cs-size-md: 2.5rem; /* 40px */
|
||||
--cs-size-lg: 3rem; /* 48px */
|
||||
--cs-size-xl: 3.5rem; /* 56px */
|
||||
--cs-size-2xl: 4rem; /* 64px */
|
||||
--cs-size-3xl: 4.5rem; /* 72px */
|
||||
--cs-size-4xl: 5rem; /* 80px */
|
||||
--cs-size-5xl: 5.5rem; /* 88px */
|
||||
--cs-size-6xl: 6rem; /* 96px */
|
||||
--cs-size-7xl: 6.5rem; /* 104px */
|
||||
--cs-size-8xl: 7rem; /* 112px */
|
||||
|
||||
/* ==================== */
|
||||
/* Border Radius */
|
||||
/* ==================== */
|
||||
|
||||
--cs-radius-4xs: 4px; /* 4px */
|
||||
--cs-radius-3xs: 8px; /* 8px */
|
||||
--cs-radius-2xs: 12px; /* 12px */
|
||||
--cs-radius-xs: 16px; /* 16px */
|
||||
--cs-radius-sm: 24px; /* 24px */
|
||||
--cs-radius-md: 32px; /* 32px */
|
||||
--cs-radius-lg: 2.5rem; /* 40px */
|
||||
--cs-radius-xl: 48px; /* 48px */
|
||||
--cs-radius-2xl: 56px; /* 56px */
|
||||
--cs-radius-3xl: 64px; /* 64px */
|
||||
--cs-radius-round: 999px; /* 保持 px,因为是特殊值 */
|
||||
|
||||
/* Border Width */
|
||||
--cs-border-width-sm: 1px; /* 1px */
|
||||
--cs-border-width-md: 2px; /* 2px */
|
||||
--cs-border-width-lg: 3px; /* 3px */
|
||||
|
||||
/* ==================== */
|
||||
/* Typography */
|
||||
/* ==================== */
|
||||
|
||||
/* Font Families */
|
||||
--cs-font-family-heading: Inter;
|
||||
--cs-font-family-body: Inter;
|
||||
|
||||
/* Font Weights (修正单位错误) */
|
||||
--cs-font-weight-regular: 400;
|
||||
--cs-font-weight-medium: 500;
|
||||
--cs-font-weight-bold: 700;
|
||||
|
||||
/* Font Sizes - Body */
|
||||
--cs-font-size-body-xs: 0.75rem; /* 12px */
|
||||
--cs-font-size-body-sm: 0.875rem; /* 14px */
|
||||
--cs-font-size-body-md: 1rem; /* 16px */
|
||||
--cs-font-size-body-lg: 1.125rem; /* 18px */
|
||||
|
||||
/* Font Sizes - Heading */
|
||||
--cs-font-size-heading-xs: 1.25rem; /* 20px */
|
||||
--cs-font-size-heading-sm: 1.5rem; /* 24px */
|
||||
--cs-font-size-heading-md: 2rem; /* 32px */
|
||||
--cs-font-size-heading-lg: 2.5rem; /* 40px */
|
||||
--cs-font-size-heading-xl: 3rem; /* 48px */
|
||||
--cs-font-size-heading-2xl: 3.75rem; /* 60px */
|
||||
|
||||
/* Line Heights - Body */
|
||||
--cs-line-height-body-xs: 1.25rem; /* 20px */
|
||||
--cs-line-height-body-sm: 1.5rem; /* 24px */
|
||||
--cs-line-height-body-md: 1.5rem; /* 24px */
|
||||
--cs-line-height-body-lg: 1.75rem; /* 28px */
|
||||
|
||||
/* Line Heights - Heading */
|
||||
--cs-line-height-heading-xs: 2rem; /* 32px */
|
||||
--cs-line-height-heading-sm: 2.5rem; /* 40px */
|
||||
--cs-line-height-heading-md: 3rem; /* 48px */
|
||||
--cs-line-height-heading-lg: 3.75rem; /* 60px */
|
||||
--cs-line-height-heading-xl: 5rem; /* 80px */
|
||||
|
||||
/* Paragraph Spacing */
|
||||
--cs-paragraph-spacing-body-xs: 0.75rem; /* 12px */
|
||||
--cs-paragraph-spacing-body-sm: 0.875rem; /* 14px */
|
||||
--cs-paragraph-spacing-body-md: 1rem; /* 16px */
|
||||
--cs-paragraph-spacing-body-lg: 1.125rem; /* 18px */
|
||||
--cs-paragraph-spacing-heading-xs: 1.25rem; /* 20px */
|
||||
--cs-paragraph-spacing-heading-sm: 1.5rem; /* 24px */
|
||||
--cs-paragraph-spacing-heading-md: 2rem; /* 32px */
|
||||
--cs-paragraph-spacing-heading-lg: 2.5rem; /* 40px */
|
||||
--cs-paragraph-spacing-heading-xl: 3rem; /* 48px */
|
||||
--cs-paragraph-spacing-heading-2xl: 3.75rem; /* 60px */
|
||||
}
|
||||
|
||||
/* ==================== */
|
||||
/* Dark Mode */
|
||||
/* ==================== */
|
||||
|
||||
.dark {
|
||||
/* Background & Foreground */
|
||||
--cs-background: var(--cs-zinc-900);
|
||||
--cs-background-subtle: hsla(0, 0%, 100%, 0.02);
|
||||
--cs-foreground: hsla(0, 0%, 100%, 0.9);
|
||||
--cs-foreground-secondary: hsla(0, 0%, 100%, 0.6);
|
||||
--cs-foreground-muted: hsla(0, 0%, 100%, 0.4);
|
||||
|
||||
/* Card & Popover */
|
||||
--cs-card: var(--cs-black);
|
||||
--cs-popover: var(--cs-black);
|
||||
|
||||
/* Border */
|
||||
--cs-border: hsla(0, 0%, 100%, 0.1);
|
||||
--cs-border-hover: hsla(0, 0%, 100%, 0.2);
|
||||
--cs-border-active: hsla(0, 0%, 100%, 0.3);
|
||||
|
||||
/* Ring (Focus) - 保持不变 */
|
||||
--cs-ring: hsla(84, 81%, 44%, 0.4);
|
||||
|
||||
/* UI Element Colors - Dark Mode */
|
||||
--cs-secondary: hsla(0, 0%, 100%, 0.1); /* Secondary Button Background */
|
||||
--cs-secondary-hover: hsla(0, 0%, 100%, 0.2);
|
||||
--cs-secondary-active: hsla(0, 0%, 100%, 0.25);
|
||||
--cs-muted: hsla(0, 0%, 100%, 0.1); /* Muted/Subtle Background */
|
||||
--cs-accent: hsla(0, 0%, 100%, 0.1); /* Accent Background */
|
||||
--cs-ghost-hover: hsla(0, 0%, 100%, 0.1); /* Ghost Button Hover */
|
||||
--cs-ghost-active: hsla(0, 0%, 100%, 0.15); /* Ghost Button Active */
|
||||
|
||||
/* Sidebar */
|
||||
--cs-sidebar: var(--cs-black);
|
||||
--cs-sidebar-accent: hsla(0, 0%, 100%, 0.1);
|
||||
}
|
||||
@import './tokens/index.css';
|
||||
|
||||
309
packages/ui/src/styles/tokens/colors/primitive.css
Normal file
309
packages/ui/src/styles/tokens/colors/primitive.css
Normal file
@ -0,0 +1,309 @@
|
||||
/**
|
||||
* Primitive Colors - Light Mode
|
||||
* 基础色板 - 所有原始颜色定义
|
||||
*/
|
||||
|
||||
:root {
|
||||
/* Neutral */
|
||||
--cs-neutral-50: hsla(0, 0%, 98%, 1);
|
||||
--cs-neutral-100: hsla(0, 0%, 96%, 1);
|
||||
--cs-neutral-200: hsla(0, 0%, 90%, 1);
|
||||
--cs-neutral-300: hsla(0, 0%, 83%, 1);
|
||||
--cs-neutral-400: hsla(0, 0%, 64%, 1);
|
||||
--cs-neutral-500: hsla(0, 0%, 45%, 1);
|
||||
--cs-neutral-600: hsla(215, 14%, 34%, 1);
|
||||
--cs-neutral-700: hsla(0, 0%, 25%, 1);
|
||||
--cs-neutral-800: hsla(0, 0%, 15%, 1);
|
||||
--cs-neutral-900: hsla(0, 0%, 9%, 1);
|
||||
--cs-neutral-950: hsla(0, 0%, 4%, 1);
|
||||
|
||||
/* Stone */
|
||||
--cs-stone-50: hsla(60, 9%, 98%, 1);
|
||||
--cs-stone-100: hsla(60, 5%, 96%, 1);
|
||||
--cs-stone-200: hsla(20, 6%, 90%, 1);
|
||||
--cs-stone-300: hsla(24, 6%, 83%, 1);
|
||||
--cs-stone-400: hsla(24, 5%, 64%, 1);
|
||||
--cs-stone-500: hsla(25, 5%, 45%, 1);
|
||||
--cs-stone-600: hsla(33, 5%, 32%, 1);
|
||||
--cs-stone-700: hsla(30, 6%, 25%, 1);
|
||||
--cs-stone-800: hsla(12, 6%, 15%, 1);
|
||||
--cs-stone-900: hsla(24, 10%, 10%, 1);
|
||||
--cs-stone-950: hsla(20, 14%, 4%, 1);
|
||||
|
||||
/* Zinc */
|
||||
--cs-zinc-50: hsla(0, 0%, 98%, 1);
|
||||
--cs-zinc-100: hsla(240, 5%, 96%, 1);
|
||||
--cs-zinc-200: hsla(240, 6%, 90%, 1);
|
||||
--cs-zinc-300: hsla(240, 5%, 84%, 1);
|
||||
--cs-zinc-400: hsla(240, 5%, 65%, 1);
|
||||
--cs-zinc-500: hsla(240, 4%, 46%, 1);
|
||||
--cs-zinc-600: hsla(240, 5%, 34%, 1);
|
||||
--cs-zinc-700: hsla(240, 5%, 26%, 1);
|
||||
--cs-zinc-800: hsla(240, 4%, 16%, 1);
|
||||
--cs-zinc-900: hsla(240, 6%, 10%, 1);
|
||||
--cs-zinc-950: hsla(240, 10%, 4%, 1);
|
||||
|
||||
/* Slate */
|
||||
--cs-slate-50: hsla(210, 40%, 98%, 1);
|
||||
--cs-slate-100: hsla(210, 40%, 96%, 1);
|
||||
--cs-slate-200: hsla(214, 32%, 91%, 1);
|
||||
--cs-slate-300: hsla(213, 27%, 84%, 1);
|
||||
--cs-slate-400: hsla(215, 20%, 65%, 1);
|
||||
--cs-slate-500: hsla(215, 16%, 47%, 1);
|
||||
--cs-slate-600: hsla(215, 19%, 35%, 1);
|
||||
--cs-slate-700: hsla(215, 25%, 27%, 1);
|
||||
--cs-slate-800: hsla(217, 33%, 17%, 1);
|
||||
--cs-slate-900: hsla(222, 47%, 11%, 1);
|
||||
--cs-slate-950: hsla(229, 84%, 5%, 1);
|
||||
|
||||
/* Gray */
|
||||
--cs-gray-50: hsla(210, 20%, 98%, 1);
|
||||
--cs-gray-100: hsla(220, 14%, 96%, 1);
|
||||
--cs-gray-200: hsla(220, 13%, 91%, 1);
|
||||
--cs-gray-300: hsla(216, 12%, 84%, 1);
|
||||
--cs-gray-400: hsla(218, 11%, 65%, 1);
|
||||
--cs-gray-500: hsla(220, 9%, 46%, 1);
|
||||
--cs-gray-600: hsla(0, 0%, 32%, 1);
|
||||
--cs-gray-700: hsla(217, 19%, 27%, 1);
|
||||
--cs-gray-800: hsla(215, 28%, 17%, 1);
|
||||
--cs-gray-900: hsla(221, 39%, 11%, 1);
|
||||
--cs-gray-950: hsla(224, 71%, 4%, 1);
|
||||
|
||||
/* Red */
|
||||
--cs-red-50: hsla(0, 86%, 97%, 1);
|
||||
--cs-red-100: hsla(0, 93%, 94%, 1);
|
||||
--cs-red-200: hsla(0, 96%, 89%, 1);
|
||||
--cs-red-300: hsla(0, 94%, 82%, 1);
|
||||
--cs-red-400: hsla(0, 91%, 71%, 1);
|
||||
--cs-red-500: hsla(0, 84%, 60%, 1);
|
||||
--cs-red-600: hsla(0, 72%, 51%, 1);
|
||||
--cs-red-700: hsla(0, 74%, 42%, 1);
|
||||
--cs-red-800: hsla(0, 70%, 35%, 1);
|
||||
--cs-red-900: hsla(0, 63%, 31%, 1);
|
||||
--cs-red-950: hsla(0, 75%, 15%, 1);
|
||||
|
||||
/* Orange */
|
||||
--cs-orange-50: hsla(33, 100%, 96%, 1);
|
||||
--cs-orange-100: hsla(34, 100%, 92%, 1);
|
||||
--cs-orange-200: hsla(32, 98%, 83%, 1);
|
||||
--cs-orange-300: hsla(31, 97%, 72%, 1);
|
||||
--cs-orange-400: hsla(27, 96%, 61%, 1);
|
||||
--cs-orange-500: hsla(25, 95%, 53%, 1);
|
||||
--cs-orange-600: hsla(21, 90%, 48%, 1);
|
||||
--cs-orange-700: hsla(17, 88%, 40%, 1);
|
||||
--cs-orange-800: hsla(15, 79%, 34%, 1);
|
||||
--cs-orange-900: hsla(15, 75%, 28%, 1);
|
||||
--cs-orange-950: hsla(13, 81%, 15%, 1);
|
||||
|
||||
/* Amber */
|
||||
--cs-amber-50: hsla(48, 100%, 96%, 1);
|
||||
--cs-amber-100: hsla(48, 96%, 89%, 1);
|
||||
--cs-amber-200: hsla(48, 97%, 77%, 1);
|
||||
--cs-amber-300: hsla(46, 97%, 65%, 1);
|
||||
--cs-amber-400: hsla(43, 96%, 56%, 1);
|
||||
--cs-amber-500: hsla(38, 92%, 50%, 1);
|
||||
--cs-amber-600: hsla(32, 95%, 44%, 1);
|
||||
--cs-amber-700: hsla(26, 90%, 37%, 1);
|
||||
--cs-amber-800: hsla(23, 83%, 31%, 1);
|
||||
--cs-amber-900: hsla(22, 78%, 26%, 1);
|
||||
--cs-amber-950: hsla(21, 92%, 14%, 1);
|
||||
|
||||
/* Yellow */
|
||||
--cs-yellow-50: hsla(55, 92%, 95%, 1);
|
||||
--cs-yellow-100: hsla(55, 97%, 88%, 1);
|
||||
--cs-yellow-200: hsla(53, 98%, 77%, 1);
|
||||
--cs-yellow-300: hsla(50, 98%, 64%, 1);
|
||||
--cs-yellow-400: hsla(48, 96%, 53%, 1);
|
||||
--cs-yellow-500: hsla(45, 93%, 47%, 1);
|
||||
--cs-yellow-600: hsla(41, 96%, 40%, 1);
|
||||
--cs-yellow-700: hsla(35, 92%, 33%, 1);
|
||||
--cs-yellow-800: hsla(32, 81%, 29%, 1);
|
||||
--cs-yellow-900: hsla(28, 73%, 26%, 1);
|
||||
--cs-yellow-950: hsla(26, 83%, 14%, 1);
|
||||
|
||||
/* Lime (品牌主色) */
|
||||
--cs-lime-50: hsla(78, 92%, 95%, 1);
|
||||
--cs-lime-100: hsla(80, 89%, 89%, 1);
|
||||
--cs-lime-200: hsla(81, 88%, 80%, 1);
|
||||
--cs-lime-300: hsla(82, 85%, 67%, 1);
|
||||
--cs-lime-400: hsla(83, 78%, 55%, 1);
|
||||
--cs-lime-500: hsla(84, 81%, 44%, 1);
|
||||
--cs-lime-600: hsla(85, 85%, 35%, 1);
|
||||
--cs-lime-700: hsla(86, 78%, 27%, 1);
|
||||
--cs-lime-800: hsla(86, 69%, 23%, 1);
|
||||
--cs-lime-900: hsla(88, 61%, 20%, 1);
|
||||
--cs-lime-950: hsla(89, 80%, 10%, 1);
|
||||
|
||||
/* Green */
|
||||
--cs-green-50: hsla(138, 76%, 97%, 1);
|
||||
--cs-green-100: hsla(141, 84%, 93%, 1);
|
||||
--cs-green-200: hsla(141, 79%, 85%, 1);
|
||||
--cs-green-300: hsla(142, 77%, 73%, 1);
|
||||
--cs-green-400: hsla(142, 69%, 58%, 1);
|
||||
--cs-green-500: hsla(142, 71%, 45%, 1);
|
||||
--cs-green-600: hsla(142, 76%, 36%, 1);
|
||||
--cs-green-700: hsla(142, 72%, 29%, 1);
|
||||
--cs-green-800: hsla(143, 64%, 24%, 1);
|
||||
--cs-green-900: hsla(144, 61%, 20%, 1);
|
||||
--cs-green-950: hsla(145, 80%, 10%, 1);
|
||||
|
||||
/* Emerald */
|
||||
--cs-emerald-50: hsla(152, 81%, 96%, 1);
|
||||
--cs-emerald-100: hsla(149, 80%, 90%, 1);
|
||||
--cs-emerald-200: hsla(152, 76%, 80%, 1);
|
||||
--cs-emerald-300: hsla(156, 72%, 67%, 1);
|
||||
--cs-emerald-400: hsla(158, 64%, 52%, 1);
|
||||
--cs-emerald-500: hsla(160, 84%, 39%, 1);
|
||||
--cs-emerald-600: hsla(161, 94%, 30%, 1);
|
||||
--cs-emerald-700: hsla(163, 94%, 24%, 1);
|
||||
--cs-emerald-800: hsla(163, 88%, 20%, 1);
|
||||
--cs-emerald-900: hsla(164, 86%, 16%, 1);
|
||||
--cs-emerald-950: hsla(166, 91%, 9%, 1);
|
||||
|
||||
/* Teal */
|
||||
--cs-teal-50: hsla(166, 76%, 97%, 1);
|
||||
--cs-teal-100: hsla(167, 85%, 89%, 1);
|
||||
--cs-teal-200: hsla(168, 84%, 78%, 1);
|
||||
--cs-teal-300: hsla(171, 77%, 64%, 1);
|
||||
--cs-teal-400: hsla(172, 66%, 50%, 1);
|
||||
--cs-teal-500: hsla(173, 80%, 40%, 1);
|
||||
--cs-teal-600: hsla(175, 84%, 32%, 1);
|
||||
--cs-teal-700: hsla(175, 77%, 26%, 1);
|
||||
--cs-teal-800: hsla(176, 69%, 22%, 1);
|
||||
--cs-teal-900: hsla(176, 61%, 19%, 1);
|
||||
--cs-teal-950: hsla(179, 84%, 10%, 1);
|
||||
|
||||
/* Cyan */
|
||||
--cs-cyan-50: hsla(183, 100%, 96%, 1);
|
||||
--cs-cyan-100: hsla(185, 96%, 90%, 1);
|
||||
--cs-cyan-200: hsla(186, 94%, 82%, 1);
|
||||
--cs-cyan-300: hsla(187, 92%, 69%, 1);
|
||||
--cs-cyan-400: hsla(188, 86%, 53%, 1);
|
||||
--cs-cyan-500: hsla(189, 94%, 43%, 1);
|
||||
--cs-cyan-600: hsla(192, 91%, 36%, 1);
|
||||
--cs-cyan-700: hsla(193, 82%, 31%, 1);
|
||||
--cs-cyan-800: hsla(194, 70%, 27%, 1);
|
||||
--cs-cyan-900: hsla(196, 64%, 24%, 1);
|
||||
--cs-cyan-950: hsla(197, 79%, 15%, 1);
|
||||
|
||||
/* Sky */
|
||||
--cs-sky-50: hsla(204, 100%, 97%, 1);
|
||||
--cs-sky-100: hsla(204, 94%, 94%, 1);
|
||||
--cs-sky-200: hsla(201, 94%, 86%, 1);
|
||||
--cs-sky-300: hsla(199, 95%, 74%, 1);
|
||||
--cs-sky-400: hsla(198, 93%, 60%, 1);
|
||||
--cs-sky-500: hsla(199, 89%, 48%, 1);
|
||||
--cs-sky-600: hsla(200, 98%, 39%, 1);
|
||||
--cs-sky-700: hsla(201, 96%, 32%, 1);
|
||||
--cs-sky-800: hsla(201, 90%, 27%, 1);
|
||||
--cs-sky-900: hsla(202, 80%, 24%, 1);
|
||||
--cs-sky-950: hsla(204, 80%, 16%, 1);
|
||||
|
||||
/* Blue */
|
||||
--cs-blue-50: hsla(214, 100%, 97%, 1);
|
||||
--cs-blue-100: hsla(214, 95%, 93%, 1);
|
||||
--cs-blue-200: hsla(213, 97%, 87%, 1);
|
||||
--cs-blue-300: hsla(212, 96%, 78%, 1);
|
||||
--cs-blue-400: hsla(213, 94%, 68%, 1);
|
||||
--cs-blue-500: hsla(217, 91%, 60%, 1);
|
||||
--cs-blue-600: hsla(221, 83%, 53%, 1);
|
||||
--cs-blue-700: hsla(224, 76%, 48%, 1);
|
||||
--cs-blue-800: hsla(226, 71%, 40%, 1);
|
||||
--cs-blue-900: hsla(224, 64%, 33%, 1);
|
||||
--cs-blue-950: hsla(226, 57%, 21%, 1);
|
||||
|
||||
/* Indigo */
|
||||
--cs-indigo-50: hsla(226, 100%, 97%, 1);
|
||||
--cs-indigo-100: hsla(226, 100%, 94%, 1);
|
||||
--cs-indigo-200: hsla(228, 96%, 89%, 1);
|
||||
--cs-indigo-300: hsla(230, 94%, 82%, 1);
|
||||
--cs-indigo-400: hsla(234, 89%, 74%, 1);
|
||||
--cs-indigo-500: hsla(239, 84%, 67%, 1);
|
||||
--cs-indigo-600: hsla(243, 75%, 59%, 1);
|
||||
--cs-indigo-700: hsla(245, 58%, 51%, 1);
|
||||
--cs-indigo-800: hsla(244, 55%, 41%, 1);
|
||||
--cs-indigo-900: hsla(242, 47%, 34%, 1);
|
||||
--cs-indigo-950: hsla(244, 47%, 20%, 1);
|
||||
|
||||
/* Violet */
|
||||
--cs-violet-50: hsla(250, 100%, 98%, 1);
|
||||
--cs-violet-100: hsla(251, 91%, 95%, 1);
|
||||
--cs-violet-200: hsla(251, 95%, 92%, 1);
|
||||
--cs-violet-300: hsla(253, 95%, 85%, 1);
|
||||
--cs-violet-400: hsla(255, 92%, 76%, 1);
|
||||
--cs-violet-500: hsla(258, 90%, 66%, 1);
|
||||
--cs-violet-600: hsla(262, 83%, 58%, 1);
|
||||
--cs-violet-700: hsla(263, 70%, 50%, 1);
|
||||
--cs-violet-800: hsla(263, 69%, 42%, 1);
|
||||
--cs-violet-900: hsla(264, 67%, 35%, 1);
|
||||
--cs-violet-950: hsla(262, 78%, 23%, 1);
|
||||
|
||||
/* Purple */
|
||||
--cs-purple-50: hsla(270, 100%, 98%, 1);
|
||||
--cs-purple-100: hsla(269, 100%, 95%, 1);
|
||||
--cs-purple-200: hsla(269, 100%, 92%, 1);
|
||||
--cs-purple-300: hsla(269, 97%, 85%, 1);
|
||||
--cs-purple-400: hsla(270, 95%, 75%, 1);
|
||||
--cs-purple-500: hsla(271, 91%, 65%, 1);
|
||||
--cs-purple-600: hsla(271, 81%, 56%, 1);
|
||||
--cs-purple-700: hsla(272, 72%, 47%, 1);
|
||||
--cs-purple-800: hsla(273, 67%, 39%, 1);
|
||||
--cs-purple-900: hsla(274, 66%, 32%, 1);
|
||||
--cs-purple-950: hsla(274, 87%, 21%, 1);
|
||||
|
||||
/* Fuchsia */
|
||||
--cs-fuchsia-50: hsla(289, 100%, 98%, 1);
|
||||
--cs-fuchsia-100: hsla(287, 100%, 95%, 1);
|
||||
--cs-fuchsia-200: hsla(288, 96%, 91%, 1);
|
||||
--cs-fuchsia-300: hsla(291, 93%, 83%, 1);
|
||||
--cs-fuchsia-400: hsla(292, 91%, 73%, 1);
|
||||
--cs-fuchsia-500: hsla(292, 84%, 61%, 1);
|
||||
--cs-fuchsia-600: hsla(293, 69%, 49%, 1);
|
||||
--cs-fuchsia-700: hsla(295, 72%, 40%, 1);
|
||||
--cs-fuchsia-800: hsla(295, 70%, 33%, 1);
|
||||
--cs-fuchsia-900: hsla(297, 64%, 28%, 1);
|
||||
--cs-fuchsia-950: hsla(297, 90%, 16%, 1);
|
||||
|
||||
/* Pink */
|
||||
--cs-pink-50: hsla(327, 73%, 97%, 1);
|
||||
--cs-pink-100: hsla(326, 78%, 95%, 1);
|
||||
--cs-pink-200: hsla(326, 85%, 90%, 1);
|
||||
--cs-pink-300: hsla(327, 87%, 82%, 1);
|
||||
--cs-pink-400: hsla(329, 86%, 70%, 1);
|
||||
--cs-pink-500: hsla(330, 81%, 60%, 1);
|
||||
--cs-pink-600: hsla(333, 71%, 51%, 1);
|
||||
--cs-pink-700: hsla(335, 78%, 42%, 1);
|
||||
--cs-pink-800: hsla(336, 74%, 35%, 1);
|
||||
--cs-pink-900: hsla(336, 69%, 30%, 1);
|
||||
--cs-pink-950: hsla(336, 84%, 17%, 1);
|
||||
|
||||
/* Rose */
|
||||
--cs-rose-50: hsla(356, 100%, 97%, 1);
|
||||
--cs-rose-100: hsla(356, 100%, 95%, 1);
|
||||
--cs-rose-200: hsla(353, 96%, 90%, 1);
|
||||
--cs-rose-300: hsla(353, 96%, 82%, 1);
|
||||
--cs-rose-400: hsla(351, 95%, 71%, 1);
|
||||
--cs-rose-500: hsla(350, 89%, 60%, 1);
|
||||
--cs-rose-600: hsla(347, 77%, 50%, 1);
|
||||
--cs-rose-700: hsla(345, 83%, 41%, 1);
|
||||
--cs-rose-800: hsla(343, 80%, 35%, 1);
|
||||
--cs-rose-900: hsla(342, 75%, 30%, 1);
|
||||
--cs-rose-950: hsla(343, 88%, 16%, 1);
|
||||
|
||||
/* Black & White */
|
||||
--cs-black: hsla(0, 0%, 0%, 1);
|
||||
--cs-white: hsla(0, 0%, 100%, 1);
|
||||
|
||||
/* Brand (Cherry Studio 品牌专属色) */
|
||||
--cs-brand-50: hsla(132, 64%, 97%, 1);
|
||||
--cs-brand-100: hsla(132, 64%, 93%, 1);
|
||||
--cs-brand-200: hsla(132, 64%, 85%, 1);
|
||||
--cs-brand-300: hsla(132, 64%, 73%, 1);
|
||||
--cs-brand-400: hsla(132, 64%, 63%, 1);
|
||||
--cs-brand-500: hsla(132, 64%, 53%, 1);
|
||||
--cs-brand-600: hsla(132, 64%, 43%, 1);
|
||||
--cs-brand-700: hsla(132, 64%, 33%, 1);
|
||||
--cs-brand-800: hsla(132, 64%, 23%, 1);
|
||||
--cs-brand-900: hsla(132, 64%, 13%, 1);
|
||||
--cs-brand-950: hsla(132, 64%, 8%, 1);
|
||||
}
|
||||
81
packages/ui/src/styles/tokens/colors/semantic.css
Normal file
81
packages/ui/src/styles/tokens/colors/semantic.css
Normal file
@ -0,0 +1,81 @@
|
||||
/**
|
||||
* Semantic Colors - Light Mode
|
||||
* 语义化颜色 - 基于 Primitive Colors 的语义化映射
|
||||
*/
|
||||
|
||||
:root {
|
||||
/* Brand Colors */
|
||||
--cs-primary: var(--cs-brand-500);
|
||||
--cs-primary-hover: var(--cs-brand-300);
|
||||
--cs-destructive: var(--cs-red-500);
|
||||
--cs-destructive-hover: var(--cs-red-400);
|
||||
--cs-success: var(--cs-green-500);
|
||||
--cs-warning: var(--cs-amber-500);
|
||||
|
||||
/* Background & Foreground */
|
||||
--cs-background: var(--cs-zinc-50);
|
||||
--cs-background-subtle: hsla(0, 0%, 0%, 0.02);
|
||||
--cs-foreground: hsla(0, 0%, 0%, 0.9);
|
||||
--cs-foreground-secondary: hsla(0, 0%, 0%, 0.6);
|
||||
--cs-foreground-muted: hsla(0, 0%, 0%, 0.4);
|
||||
|
||||
/* Card & Popover */
|
||||
--cs-card: var(--cs-white);
|
||||
--cs-popover: var(--cs-white);
|
||||
|
||||
/* Border */
|
||||
--cs-border: hsla(0, 0%, 0%, 0.1);
|
||||
--cs-border-hover: hsla(0, 0%, 0%, 0.2);
|
||||
--cs-border-active: hsla(0, 0%, 0%, 0.3);
|
||||
|
||||
/* Ring (Focus) */
|
||||
--cs-ring: color-mix(in srgb, var(--cs-primary) 40%, transparent);
|
||||
|
||||
/* UI Element Colors */
|
||||
--cs-secondary: hsla(0, 0%, 0%, 0.05); /* Secondary Button Background */
|
||||
--cs-secondary-hover: hsla(0, 0%, 0%, 0.85);
|
||||
--cs-secondary-active: hsla(0, 0%, 0%, 0.7);
|
||||
--cs-muted: hsla(0, 0%, 0%, 0.05); /* Muted/Subtle Background */
|
||||
--cs-accent: hsla(0, 0%, 0%, 0.05); /* Accent Background */
|
||||
--cs-ghost-hover: hsla(0, 0%, 0%, 0.05); /* Ghost Button Hover */
|
||||
--cs-ghost-active: hsla(0, 0%, 0%, 0.1); /* Ghost Button Active */
|
||||
|
||||
/* Sidebar */
|
||||
--cs-sidebar: var(--cs-white);
|
||||
--cs-sidebar-accent: hsla(0, 0%, 0%, 0.05);
|
||||
}
|
||||
|
||||
/* Dark Mode */
|
||||
.dark {
|
||||
/* Background & Foreground */
|
||||
--cs-background: var(--cs-zinc-900);
|
||||
--cs-background-subtle: hsla(0, 0%, 100%, 0.02);
|
||||
--cs-foreground: hsla(0, 0%, 100%, 0.9);
|
||||
--cs-foreground-secondary: hsla(0, 0%, 100%, 0.6);
|
||||
--cs-foreground-muted: hsla(0, 0%, 100%, 0.4);
|
||||
|
||||
/* Card & Popover */
|
||||
--cs-card: var(--cs-black);
|
||||
--cs-popover: var(--cs-black);
|
||||
|
||||
/* Border */
|
||||
--cs-border: hsla(0, 0%, 100%, 0.1);
|
||||
--cs-border-hover: hsla(0, 0%, 100%, 0.2);
|
||||
--cs-border-active: hsla(0, 0%, 100%, 0.3);
|
||||
|
||||
/* Ring (Focus) - 保持不变 */
|
||||
--cs-ring: hsla(84, 81%, 44%, 0.4);
|
||||
|
||||
/* UI Element Colors - Dark Mode */
|
||||
--cs-secondary: hsla(0, 0%, 100%, 0.1); /* Secondary Button Background */
|
||||
--cs-secondary-hover: hsla(0, 0%, 100%, 0.2);
|
||||
--cs-secondary-active: hsla(0, 0%, 100%, 0.25);
|
||||
--cs-muted: hsla(0, 0%, 100%, 0.1); /* Muted/Subtle Background */
|
||||
--cs-accent: hsla(0, 0%, 100%, 0.1); /* Accent Background */
|
||||
--cs-ghost-hover: hsla(0, 0%, 100%, 0.1); /* Ghost Button Hover */
|
||||
--cs-ghost-active: hsla(0, 0%, 100%, 0.15); /* Ghost Button Active */
|
||||
|
||||
/* Sidebar */
|
||||
--cs-sidebar: var(--cs-black);
|
||||
--cs-sidebar-accent: hsla(0, 0%, 100%, 0.1);
|
||||
}
|
||||
55
packages/ui/src/styles/tokens/colors/status.css
Normal file
55
packages/ui/src/styles/tokens/colors/status.css
Normal file
@ -0,0 +1,55 @@
|
||||
/**
|
||||
* Status Colors - Light Mode & Dark Mode
|
||||
* 状态颜色 - Error, Success, Warning
|
||||
*/
|
||||
|
||||
:root {
|
||||
/* Status Colors - Error */
|
||||
--cs-error-base: var(--cs-red-500); /* #ef4444 */
|
||||
--cs-error-text: var(--cs-red-800); /* #991b1b */
|
||||
--cs-error-bg: var(--cs-red-50); /* #fef2f2 */
|
||||
--cs-error-text-hover: var(--cs-red-700); /* #b91c1c */
|
||||
--cs-error-bg-hover: var(--cs-red-100); /* #fee2e2 */
|
||||
--cs-error-border: var(--cs-red-200); /* #fecaca */
|
||||
--cs-error-border-hover: var(--cs-red-300); /* #fca5a5 */
|
||||
--cs-error-active: var(--cs-red-600); /* #dc2626 */
|
||||
|
||||
/* Status Colors - Success */
|
||||
--cs-success-base: var(--cs-green-500); /* #22c55e */
|
||||
--cs-success-text-hover: var(--cs-green-700); /* #15803d */
|
||||
--cs-success-bg: var(--cs-green-50); /* #f0fdf4 */
|
||||
--cs-success-bg-hover: var(--cs-green-200); /* #bbf7d0 */
|
||||
|
||||
/* Status Colors - Warning */
|
||||
--cs-warning-base: var(--cs-amber-400); /* #fbbf24 */
|
||||
--cs-warning-text-hover: var(--cs-amber-700); /* #b45309 */
|
||||
--cs-warning-bg: var(--cs-amber-50); /* #fffbeb */
|
||||
--cs-warning-bg-hover: var(--cs-amber-100); /* #fef3c7 */
|
||||
--cs-warning-active: var(--cs-amber-600); /* #d97706 */
|
||||
}
|
||||
|
||||
/* Dark Mode */
|
||||
.dark {
|
||||
/* Status Colors - Error (Dark Mode) */
|
||||
--cs-error-base: var(--cs-red-400); /* #f87171 */
|
||||
--cs-error-text: var(--cs-red-100); /* #fee2e2 */
|
||||
--cs-error-bg: var(--cs-red-900); /* #7f1d1d */
|
||||
--cs-error-text-hover: var(--cs-red-200); /* #fecaca */
|
||||
--cs-error-bg-hover: var(--cs-red-800); /* #991b1b */
|
||||
--cs-error-border: var(--cs-red-700); /* #b91c1c */
|
||||
--cs-error-border-hover: var(--cs-red-600); /* #dc2626 */
|
||||
--cs-error-active: var(--cs-red-300); /* #fca5a5 */
|
||||
|
||||
/* Status Colors - Success (Dark Mode) */
|
||||
--cs-success-base: var(--cs-green-400); /* #4ade80 */
|
||||
--cs-success-text-hover: var(--cs-green-200); /* #bbf7d0 */
|
||||
--cs-success-bg: var(--cs-green-900); /* #14532d */
|
||||
--cs-success-bg-hover: var(--cs-green-800); /* #166534 */
|
||||
|
||||
/* Status Colors - Warning (Dark Mode) */
|
||||
--cs-warning-base: var(--cs-amber-400); /* #fbbf24 */
|
||||
--cs-warning-text-hover: var(--cs-amber-200); /* #fde68a */
|
||||
--cs-warning-bg: var(--cs-amber-900); /* #78350f */
|
||||
--cs-warning-bg-hover: var(--cs-amber-800); /* #92400e */
|
||||
--cs-warning-active: var(--cs-amber-600); /* #d97706 */
|
||||
}
|
||||
23
packages/ui/src/styles/tokens/index.css
Normal file
23
packages/ui/src/styles/tokens/index.css
Normal file
@ -0,0 +1,23 @@
|
||||
/**
|
||||
* CherryStudio Design Tokens
|
||||
*
|
||||
* Design tokens based on Figma design system
|
||||
* - All variables use --cs-* prefix (CherryStudio)
|
||||
* - Layered architecture: Primitive → Semantic
|
||||
* - Properly separated Light/Dark Mode
|
||||
*
|
||||
* File structure:
|
||||
* - colors/primitive.css: Base color palette
|
||||
* - colors/semantic.css: Semantic color mappings
|
||||
* - colors/status.css: Status colors (Error, Success, Warning)
|
||||
* - spacing.css: Spacing and sizing
|
||||
* - radius.css: Border radius
|
||||
* - typography.css: Typography system
|
||||
*/
|
||||
|
||||
@import './colors/primitive.css';
|
||||
@import './colors/semantic.css';
|
||||
@import './colors/status.css';
|
||||
@import './spacing.css';
|
||||
@import './radius.css';
|
||||
@import './typography.css';
|
||||
23
packages/ui/src/styles/tokens/radius.css
Normal file
23
packages/ui/src/styles/tokens/radius.css
Normal file
@ -0,0 +1,23 @@
|
||||
/**
|
||||
* Border Radius
|
||||
* 圆角半径
|
||||
*/
|
||||
|
||||
:root {
|
||||
--cs-radius-4xs: 4px; /* 4px */
|
||||
--cs-radius-3xs: 8px; /* 8px */
|
||||
--cs-radius-2xs: 12px; /* 12px */
|
||||
--cs-radius-xs: 16px; /* 16px */
|
||||
--cs-radius-sm: 24px; /* 24px */
|
||||
--cs-radius-md: 32px; /* 32px */
|
||||
--cs-radius-lg: 2.5rem; /* 40px */
|
||||
--cs-radius-xl: 48px; /* 48px */
|
||||
--cs-radius-2xl: 56px; /* 56px */
|
||||
--cs-radius-3xl: 64px; /* 64px */
|
||||
--cs-radius-round: 999px; /* 保持 px,因为是特殊值 */
|
||||
|
||||
/* Border Width */
|
||||
--cs-border-width-sm: 1px; /* 1px */
|
||||
--cs-border-width-md: 2px; /* 2px */
|
||||
--cs-border-width-lg: 3px; /* 3px */
|
||||
}
|
||||
23
packages/ui/src/styles/tokens/spacing.css
Normal file
23
packages/ui/src/styles/tokens/spacing.css
Normal file
@ -0,0 +1,23 @@
|
||||
/**
|
||||
* Spacing & Sizing
|
||||
* 间距与尺寸
|
||||
*/
|
||||
|
||||
:root {
|
||||
--cs-size-5xs: 0.25rem; /* 4px */
|
||||
--cs-size-4xs: 0.5rem; /* 8px */
|
||||
--cs-size-3xs: 0.75rem; /* 12px */
|
||||
--cs-size-2xs: 1rem; /* 16px */
|
||||
--cs-size-xs: 1.5rem; /* 24px */
|
||||
--cs-size-sm: 2rem; /* 32px */
|
||||
--cs-size-md: 2.5rem; /* 40px */
|
||||
--cs-size-lg: 3rem; /* 48px */
|
||||
--cs-size-xl: 3.5rem; /* 56px */
|
||||
--cs-size-2xl: 4rem; /* 64px */
|
||||
--cs-size-3xl: 4.5rem; /* 72px */
|
||||
--cs-size-4xl: 5rem; /* 80px */
|
||||
--cs-size-5xl: 5.5rem; /* 88px */
|
||||
--cs-size-6xl: 6rem; /* 96px */
|
||||
--cs-size-7xl: 6.5rem; /* 104px */
|
||||
--cs-size-8xl: 7rem; /* 112px */
|
||||
}
|
||||
54
packages/ui/src/styles/tokens/typography.css
Normal file
54
packages/ui/src/styles/tokens/typography.css
Normal file
@ -0,0 +1,54 @@
|
||||
/**
|
||||
* Typography
|
||||
* 排版系统 - 字体、字号、行高、段落间距
|
||||
*/
|
||||
|
||||
:root {
|
||||
/* Font Families */
|
||||
--cs-font-family-heading: Inter;
|
||||
--cs-font-family-body: Inter;
|
||||
|
||||
/* Font Weights (修正单位错误) */
|
||||
--cs-font-weight-regular: 400;
|
||||
--cs-font-weight-medium: 500;
|
||||
--cs-font-weight-bold: 700;
|
||||
|
||||
/* Font Sizes - Body */
|
||||
--cs-font-size-body-xs: 0.75rem; /* 12px */
|
||||
--cs-font-size-body-sm: 0.875rem; /* 14px */
|
||||
--cs-font-size-body-md: 1rem; /* 16px */
|
||||
--cs-font-size-body-lg: 1.125rem; /* 18px */
|
||||
|
||||
/* Font Sizes - Heading */
|
||||
--cs-font-size-heading-xs: 1.25rem; /* 20px */
|
||||
--cs-font-size-heading-sm: 1.5rem; /* 24px */
|
||||
--cs-font-size-heading-md: 2rem; /* 32px */
|
||||
--cs-font-size-heading-lg: 2.5rem; /* 40px */
|
||||
--cs-font-size-heading-xl: 3rem; /* 48px */
|
||||
--cs-font-size-heading-2xl: 3.75rem; /* 60px */
|
||||
|
||||
/* Line Heights - Body */
|
||||
--cs-line-height-body-xs: 1.25rem; /* 20px */
|
||||
--cs-line-height-body-sm: 1.5rem; /* 24px */
|
||||
--cs-line-height-body-md: 1.5rem; /* 24px */
|
||||
--cs-line-height-body-lg: 1.75rem; /* 28px */
|
||||
|
||||
/* Line Heights - Heading */
|
||||
--cs-line-height-heading-xs: 2rem; /* 32px */
|
||||
--cs-line-height-heading-sm: 2.5rem; /* 40px */
|
||||
--cs-line-height-heading-md: 3rem; /* 48px */
|
||||
--cs-line-height-heading-lg: 3.75rem; /* 60px */
|
||||
--cs-line-height-heading-xl: 5rem; /* 80px */
|
||||
|
||||
/* Paragraph Spacing */
|
||||
--cs-paragraph-spacing-body-xs: 0.75rem; /* 12px */
|
||||
--cs-paragraph-spacing-body-sm: 0.875rem; /* 14px */
|
||||
--cs-paragraph-spacing-body-md: 1rem; /* 16px */
|
||||
--cs-paragraph-spacing-body-lg: 1.125rem; /* 18px */
|
||||
--cs-paragraph-spacing-heading-xs: 1.25rem; /* 20px */
|
||||
--cs-paragraph-spacing-heading-sm: 1.5rem; /* 24px */
|
||||
--cs-paragraph-spacing-heading-md: 2rem; /* 32px */
|
||||
--cs-paragraph-spacing-heading-lg: 2.5rem; /* 40px */
|
||||
--cs-paragraph-spacing-heading-xl: 3rem; /* 48px */
|
||||
--cs-paragraph-spacing-heading-2xl: 3.75rem; /* 60px */
|
||||
}
|
||||
@ -10,3 +10,150 @@
|
||||
|
||||
/* Dark mode support */
|
||||
@custom-variant dark (&:is(.dark *));
|
||||
|
||||
@import 'tw-animate-css';
|
||||
|
||||
:root {
|
||||
--icon: #00000099;
|
||||
|
||||
/* Shadcn Variables */
|
||||
--background: oklch(1 0 0);
|
||||
--foreground: oklch(0.145 0 0);
|
||||
--card: oklch(1 0 0);
|
||||
--card-foreground: oklch(0.145 0 0);
|
||||
--popover: oklch(1 0 0);
|
||||
--popover-foreground: oklch(0.145 0 0);
|
||||
--primary: oklch(0.205 0 0);
|
||||
--primary-foreground: oklch(0.985 0 0);
|
||||
--secondary: oklch(0.97 0 0);
|
||||
--secondary-foreground: oklch(0.205 0 0);
|
||||
--muted: oklch(0.97 0 0);
|
||||
--muted-foreground: oklch(0.556 0 0);
|
||||
--accent: oklch(0.97 0 0);
|
||||
--accent-foreground: oklch(0.205 0 0);
|
||||
--destructive: oklch(0.577 0.245 27.325);
|
||||
--destructive-foreground: oklch(0.577 0.245 27.325);
|
||||
--border: oklch(0.922 0 0);
|
||||
--input: oklch(0.922 0 0);
|
||||
--ring: oklch(0.708 0 0);
|
||||
--chart-1: oklch(0.646 0.222 41.116);
|
||||
--chart-2: oklch(0.6 0.118 184.704);
|
||||
--chart-3: oklch(0.398 0.07 227.392);
|
||||
--chart-4: oklch(0.828 0.189 84.429);
|
||||
--chart-5: oklch(0.769 0.188 70.08);
|
||||
--radius: 0.625rem;
|
||||
--sidebar: oklch(0.985 0 0);
|
||||
--sidebar-foreground: oklch(0.145 0 0);
|
||||
--sidebar-primary: oklch(0.205 0 0);
|
||||
--sidebar-primary-foreground: oklch(0.985 0 0);
|
||||
--sidebar-accent: oklch(0.97 0 0);
|
||||
--sidebar-accent-foreground: oklch(0.205 0 0);
|
||||
--sidebar-border: oklch(0.922 0 0);
|
||||
--sidebar-ring: oklch(0.708 0 0);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--icon: #ffffff99;
|
||||
|
||||
/* Shadcn Dark Mode Variables */
|
||||
--background: oklch(0.145 0 0);
|
||||
--foreground: oklch(0.985 0 0);
|
||||
--card: oklch(0.145 0 0);
|
||||
--card-foreground: oklch(0.985 0 0);
|
||||
--popover: oklch(0.145 0 0);
|
||||
--popover-foreground: oklch(0.985 0 0);
|
||||
--primary: oklch(0.985 0 0);
|
||||
--primary-foreground: oklch(0.205 0 0);
|
||||
--secondary: oklch(0.269 0 0);
|
||||
--secondary-foreground: oklch(0.985 0 0);
|
||||
--muted: oklch(0.269 0 0);
|
||||
--muted-foreground: oklch(0.708 0 0);
|
||||
--accent: oklch(0.269 0 0);
|
||||
--accent-foreground: oklch(0.985 0 0);
|
||||
--destructive: oklch(0.396 0.141 25.723);
|
||||
--destructive-foreground: oklch(0.637 0.237 25.331);
|
||||
--border: oklch(0.269 0 0);
|
||||
--input: oklch(0.269 0 0);
|
||||
--ring: oklch(0.439 0 0);
|
||||
--chart-1: oklch(0.488 0.243 264.376);
|
||||
--chart-2: oklch(0.696 0.17 162.48);
|
||||
--chart-3: oklch(0.769 0.188 70.08);
|
||||
--chart-4: oklch(0.627 0.265 303.9);
|
||||
--chart-5: oklch(0.645 0.246 16.439);
|
||||
--sidebar: oklch(0.205 0 0);
|
||||
--sidebar-foreground: oklch(0.985 0 0);
|
||||
--sidebar-primary: oklch(0.488 0.243 264.376);
|
||||
--sidebar-primary-foreground: oklch(0.985 0 0);
|
||||
--sidebar-accent: oklch(0.269 0 0);
|
||||
--sidebar-accent-foreground: oklch(0.985 0 0);
|
||||
--sidebar-border: oklch(0.269 0 0);
|
||||
--sidebar-ring: oklch(0.439 0 0);
|
||||
}
|
||||
|
||||
/* 应用特定的变量和动画(不与 UI 库冲突) */
|
||||
@theme inline {
|
||||
/* Icon 颜色 - 应用特定变量 */
|
||||
--color-icon: var(--icon);
|
||||
|
||||
/* Shadcn Tailwind Mappings - 只映射 UI 库缺少的变量 */
|
||||
/* 注意:--color-primary, --color-background 等核心变量由 UI 库的 theme.css 提供 */
|
||||
|
||||
/* Foreground colors - UI 库缺少的 */
|
||||
--color-primary-foreground: var(--primary-foreground);
|
||||
--color-card-foreground: var(--card-foreground);
|
||||
--color-popover-foreground: var(--popover-foreground);
|
||||
--color-secondary-foreground: var(--secondary-foreground);
|
||||
--color-muted-foreground: var(--muted-foreground);
|
||||
--color-accent-foreground: var(--accent-foreground);
|
||||
--color-destructive-foreground: var(--destructive-foreground);
|
||||
|
||||
/* Input - UI 库缺少的 */
|
||||
--color-input: var(--input);
|
||||
|
||||
/* Chart colors - UI 库缺少的 */
|
||||
--color-chart-1: var(--chart-1);
|
||||
--color-chart-2: var(--chart-2);
|
||||
--color-chart-3: var(--chart-3);
|
||||
--color-chart-4: var(--chart-4);
|
||||
--color-chart-5: var(--chart-5);
|
||||
|
||||
/* Sidebar extensions - UI 库缺少的 */
|
||||
--color-sidebar-foreground: var(--sidebar-foreground);
|
||||
--color-sidebar-primary: var(--sidebar-primary);
|
||||
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
||||
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
||||
--color-sidebar-border: var(--sidebar-border);
|
||||
--color-sidebar-ring: var(--sidebar-ring);
|
||||
|
||||
/* 跑马灯动画 - 应用特定 */
|
||||
--animate-marquee: marquee var(--duration) infinite linear;
|
||||
--animate-marquee-vertical: marquee-vertical var(--duration) linear infinite;
|
||||
|
||||
@keyframes marquee {
|
||||
from {
|
||||
transform: translateX(0);
|
||||
}
|
||||
to {
|
||||
transform: translateX(calc(-100% - var(--gap)));
|
||||
}
|
||||
}
|
||||
@keyframes marquee-vertical {
|
||||
from {
|
||||
transform: translateY(0);
|
||||
}
|
||||
to {
|
||||
transform: translateY(calc(-100% - var(--gap)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@layer base {
|
||||
button:not(:disabled),
|
||||
[role="button"]:not(:disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
:root {
|
||||
background-color: unset;
|
||||
}
|
||||
|
||||
@ -3,8 +3,6 @@
|
||||
|
||||
@import '../../../../../packages/ui/src/styles/theme.css';
|
||||
|
||||
@custom-variant dark (&:is(.dark *));
|
||||
|
||||
/* 如需自定义:
|
||||
1. 清晰地组织自定义 CSS 到相应的层中。
|
||||
2. 基础样式(如全局重置、链接样式)放入 base 层;
|
||||
@ -21,17 +19,89 @@
|
||||
/* 应用特定的原始变量 */
|
||||
:root {
|
||||
--icon: #00000099;
|
||||
|
||||
/* Shadcn Variables - 只保留 @theme inline 中使用的变量 */
|
||||
--primary-foreground: oklch(0.985 0 0);
|
||||
--card-foreground: oklch(0.145 0 0);
|
||||
--popover-foreground: oklch(0.145 0 0);
|
||||
--secondary-foreground: oklch(0.205 0 0);
|
||||
--muted-foreground: oklch(0.556 0 0);
|
||||
--accent-foreground: oklch(0.205 0 0);
|
||||
--destructive-foreground: oklch(0.577 0.245 27.325);
|
||||
--input: oklch(0.922 0 0);
|
||||
--chart-1: oklch(0.646 0.222 41.116);
|
||||
--chart-2: oklch(0.6 0.118 184.704);
|
||||
--chart-3: oklch(0.398 0.07 227.392);
|
||||
--chart-4: oklch(0.828 0.189 84.429);
|
||||
--chart-5: oklch(0.769 0.188 70.08);
|
||||
--sidebar-foreground: oklch(0.145 0 0);
|
||||
--sidebar-primary: oklch(0.205 0 0);
|
||||
--sidebar-primary-foreground: oklch(0.985 0 0);
|
||||
--sidebar-accent-foreground: oklch(0.205 0 0);
|
||||
--sidebar-border: oklch(0.922 0 0);
|
||||
--sidebar-ring: oklch(0.708 0 0);
|
||||
}
|
||||
|
||||
.dark {
|
||||
--icon: #ffffff99;
|
||||
|
||||
/* Shadcn Dark Mode Variables - 只保留 @theme inline 中使用的变量 */
|
||||
--primary-foreground: oklch(0.205 0 0);
|
||||
--card-foreground: oklch(0.985 0 0);
|
||||
--popover-foreground: oklch(0.985 0 0);
|
||||
--secondary-foreground: oklch(0.985 0 0);
|
||||
--muted-foreground: oklch(0.708 0 0);
|
||||
--accent-foreground: oklch(0.985 0 0);
|
||||
--destructive-foreground: oklch(0.637 0.237 25.331);
|
||||
--input: oklch(0.269 0 0);
|
||||
--chart-1: oklch(0.488 0.243 264.376);
|
||||
--chart-2: oklch(0.696 0.17 162.48);
|
||||
--chart-3: oklch(0.769 0.188 70.08);
|
||||
--chart-4: oklch(0.627 0.265 303.9);
|
||||
--chart-5: oklch(0.645 0.246 16.439);
|
||||
--sidebar-foreground: oklch(0.985 0 0);
|
||||
--sidebar-primary: oklch(0.488 0.243 264.376);
|
||||
--sidebar-primary-foreground: oklch(0.985 0 0);
|
||||
--sidebar-accent-foreground: oklch(0.985 0 0);
|
||||
--sidebar-border: oklch(0.269 0 0);
|
||||
--sidebar-ring: oklch(0.439 0 0);
|
||||
}
|
||||
|
||||
/* 应用特定的变量和动画(不与 UI 库冲突) */
|
||||
/* shadcn中的默认变量(排除了与ui库冲突的变量,只映射ui库缺少的变量) */
|
||||
@theme inline {
|
||||
/* Icon 颜色 - 应用特定变量 */
|
||||
--color-icon: var(--icon);
|
||||
|
||||
/* Shadcn Tailwind Mappings - 只映射 UI 库缺少的变量 */
|
||||
/* 注意:--color-primary, --color-background 等核心变量由 UI 库的 theme.css 提供 */
|
||||
|
||||
/* Foreground colors - UI 库缺少的 */
|
||||
--color-primary-foreground: var(--primary-foreground);
|
||||
--color-card-foreground: var(--card-foreground);
|
||||
--color-popover-foreground: var(--popover-foreground);
|
||||
--color-secondary-foreground: var(--secondary-foreground);
|
||||
--color-muted-foreground: var(--muted-foreground);
|
||||
--color-accent-foreground: var(--accent-foreground);
|
||||
--color-destructive-foreground: var(--destructive-foreground);
|
||||
|
||||
/* Input - UI 库缺少的 */
|
||||
--color-input: var(--input);
|
||||
|
||||
/* Chart colors - UI 库缺少的 */
|
||||
--color-chart-1: var(--chart-1);
|
||||
--color-chart-2: var(--chart-2);
|
||||
--color-chart-3: var(--chart-3);
|
||||
--color-chart-4: var(--chart-4);
|
||||
--color-chart-5: var(--chart-5);
|
||||
|
||||
/* Sidebar extensions - UI 库缺少的 */
|
||||
--color-sidebar-foreground: var(--sidebar-foreground);
|
||||
--color-sidebar-primary: var(--sidebar-primary);
|
||||
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
||||
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
||||
--color-sidebar-border: var(--sidebar-border);
|
||||
--color-sidebar-ring: var(--sidebar-ring);
|
||||
|
||||
/* 跑马灯动画 - 应用特定 */
|
||||
--animate-marquee: marquee var(--duration) infinite linear;
|
||||
--animate-marquee-vertical: marquee-vertical var(--duration) linear infinite;
|
||||
@ -77,4 +147,4 @@
|
||||
|
||||
:root {
|
||||
background-color: unset;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user