diff --git a/packages/ui/design-reference/CONVERSION_LOG.md b/packages/ui/design-reference/CONVERSION_LOG.md deleted file mode 100644 index f9f26e7fb9..0000000000 --- a/packages/ui/design-reference/CONVERSION_LOG.md +++ /dev/null @@ -1,214 +0,0 @@ -# todocss.css → design-tokens.css 转换日志 - -## ✅ 已转换的变量 - -### 基础颜色 (Primitive Colors) -- ✅ Neutral (50-950) -- ✅ Zinc (50-950) -- ✅ Red (50-950) -- ✅ Orange (50-950) -- ✅ Amber (50-950) -- ✅ Yellow (50-950) -- ✅ Lime (50-950) - 品牌主色 -- ✅ Green (50-950) -- ✅ Emerald (50-950) -- ✅ Purple (50-950) -- ✅ Blue (50-950) -- ✅ Black & White - -### 语义化颜色 (Semantic Colors) -- ✅ `--cs-primary` (Lime 500) -- ✅ `--cs-destructive` (Red 500) -- ✅ `--cs-success` (Green 500) -- ✅ `--cs-warning` (Amber 500) -- ✅ `--cs-background` (Zinc 50/900) -- ✅ `--cs-foreground` 系列 (main, secondary, muted) -- ✅ `--cs-border` 系列 (default, hover, active) -- ✅ `--cs-ring` (Focus) - -### 容器颜色 -- ✅ `--cs-card` (White/Black) -- ✅ `--cs-popover` (White/Black) -- ✅ `--cs-sidebar` (White/Black) - -### UI 元素细分颜色 (新增补充) -- ✅ **Modal / Overlay** - - `--cs-modal-backdrop` - - `--cs-modal-thumb` - - `--cs-modal-thumb-hover` - -- ✅ **Icon** - - `--cs-icon-default` - - `--cs-icon-hover` - -- ✅ **Input / Select** - - `--cs-input-background` - - `--cs-input-border` - - `--cs-input-border-hover` - - `--cs-input-border-focus` - -- ✅ **Primary Button** - - `--cs-primary-button-background` - - `--cs-primary-button-text` - - `--cs-primary-button-background-hover` - - `--cs-primary-button-background-active` - - `--cs-primary-button-background-2nd` - - `--cs-primary-button-background-3rd` - -- ✅ **Secondary Button** - - `--cs-secondary-button-background` - - `--cs-secondary-button-text` - - `--cs-secondary-button-background-hover` - - `--cs-secondary-button-background-active` - - `--cs-secondary-button-border` - -- ✅ **Ghost Button** - - `--cs-ghost-button-background` - - `--cs-ghost-button-text` - - `--cs-ghost-button-background-hover` - - `--cs-ghost-button-background-active` - -### 尺寸系统 -- ✅ Spacing/Sizing 合并为 `--cs-size-*` (5xs ~ 8xl) -- ✅ Border Radius (4xs ~ 3xl, round) -- ✅ Border Width (sm, md, lg) - -### 字体排版 -- ✅ Font Families (Heading, Body) -- ✅ Font Weights (修正单位错误: 400px → 400) -- ✅ Font Sizes (Body & Heading) -- ✅ Line Heights (Body & Heading) -- ✅ Paragraph Spacing - ---- - -## ❌ 已废弃的变量 - -### Opacity 变量 (全部废弃) -使用 Tailwind 的 `/modifier` 语法替代: - -| todocss.css | 替代方案 | -|-------------|---------| -| `--Opacity--Red--Red-80` | `bg-cs-destructive/80` | -| `--Opacity--Green--Green-60` | `bg-cs-success/60` | -| `--Opacity--White--White-10` | `bg-white/10` | - -**原因**: Tailwind v4 原生支持透明度修饰符,无需单独定义变量。 - ---- - -## 🔧 关键修正 - -### 1. 单位错误 -```css -/* ❌ todocss.css */ ---Font_weight--Regular: 400px; - -/* ✅ design-tokens.css */ ---cs-font-weight-regular: 400; -``` - -### 2. px → rem 转换 -```css -/* ❌ todocss.css */ ---Spacing--md: 40px; - -/* ✅ design-tokens.css */ ---cs-size-md: 2.5rem; /* 40px / 16 = 2.5rem */ -``` - -### 3. 变量合并 -```css -/* ❌ todocss.css (冗余) */ ---Spacing--md: 40px; ---Sizing--md: 40px; - -/* ✅ design-tokens.css (合并) */ ---cs-size-md: 2.5rem; -``` - -### 4. Dark Mode 分离 -```css -/* ❌ todocss.css (Light 和 Dark 都在 :root) */ -:root { - --Brand--Semantic_Colors--Background: var(--Primitive--Zinc--50); - --Brand--Semantic_Colors--Background: var(--Primitive--Zinc--900); /* 后面覆盖 */ -} - -/* ✅ design-tokens.css (正确分离) */ -:root { - --cs-background: var(--cs-zinc-50); -} - -.dark { - --cs-background: var(--cs-zinc-900); -} -``` - ---- - -## 📊 变量统计 - -| 分类 | todocss.css | design-tokens.css | 说明 | -|------|-------------|-------------------|------| -| Primitive Colors | ~250 | ~250 | 完整保留 | -| Semantic Colors | ~20 | ~20 | 完整转换 | -| UI Element Colors | ~30 | ~30 | ✅ 已补充完整 | -| Opacity Variables | ~50 | 0 | 废弃,用 `/modifier` | -| Spacing/Sizing | 32 | 16 | 合并去重 | -| Typography | ~50 | ~50 | 修正单位 | -| **总计** | ~430 | ~390 | 优化 40 个变量 | - ---- - -## 🎨 Dark Mode 变量对比 - -| Light Mode | Dark Mode | 变量名 | -|-----------|-----------|-------| -| Zinc 50 | Zinc 900 | `--cs-background` | -| Black 90% | White 90% | `--cs-foreground` | -| Black 60% | White 60% | `--cs-foreground-secondary` | -| Black 10% | White 10% | `--cs-border` | -| White | Black | `--cs-card` | -| White | Black | `--cs-popover` | -| White | Black | `--cs-sidebar` | -| White | Black | `--cs-input-background` | -| Black 40% | Black 6% | `--cs-modal-backdrop` | -| Black 20% | White 20% | `--cs-modal-thumb` | -| Black 5% | White 10% | `--cs-secondary` | -| Black 0% | White 0% | `--cs-ghost-button-background` | - ---- - -## ✅ 验证清单 - -- [x] 所有 Primitive 颜色已转换 -- [x] 所有语义化颜色已转换 -- [x] 所有 UI 元素颜色已转换 -- [x] Dark Mode 变量完整 -- [x] 尺寸单位统一为 rem -- [x] Font Weight 单位已修正 -- [x] Opacity 变量已废弃 -- [x] Spacing/Sizing 已合并 - ---- - -## 📝 使用指南 - -### 如果设计师更新 todocss.css - -1. 对比此文档,找出新增/修改的变量 -2. 按照转换规则更新 `design-tokens.css` -3. 验证 Light/Dark Mode 是否完整 -4. 更新此日志 - -### 验证转换正确性 - -```bash -# 检查 Light Mode 变量数量 -grep -c "^ --cs-" packages/ui/src/styles/design-tokens.css - -# 检查 Dark Mode 覆盖数量 -grep -c "^ --cs-" packages/ui/src/styles/design-tokens.css | grep -A 100 ".dark" -``` - diff --git a/packages/ui/design-reference/README.md b/packages/ui/design-reference/README.md index ea12d034ac..e7e132f460 100644 --- a/packages/ui/design-reference/README.md +++ b/packages/ui/design-reference/README.md @@ -4,19 +4,8 @@ ## 文件说明 -### todocss.css -- **来源**:设计师提供的原始设计令牌 -- **状态**:已转换为 `src/styles/design-tokens.css` -- **用途**: - - 追溯设计决策 - - 验证转换正确性 - - 设计师更新时作为对比基准 - -## 转换规则 - -原始文件 → 生产文件的转换规则参见: -- [DESIGN_SYSTEM.md](../DESIGN_SYSTEM.md) -- [USAGE_GUIDE.md](../USAGE_GUIDE.md) +### *.hsla.css +为hsla格式的色值 ## 注意事项 diff --git a/packages/ui/design-reference/primitive.hsla.css b/packages/ui/design-reference/primitive.hsla.css new file mode 100644 index 0000000000..7ac9155e9d --- /dev/null +++ b/packages/ui/design-reference/primitive.hsla.css @@ -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); +} diff --git a/packages/ui/design-reference/semantic.hsla.css b/packages/ui/design-reference/semantic.hsla.css new file mode 100644 index 0000000000..0291c108f3 --- /dev/null +++ b/packages/ui/design-reference/semantic.hsla.css @@ -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); +} diff --git a/packages/ui/design-reference/status.hsla.css b/packages/ui/design-reference/status.hsla.css new file mode 100644 index 0000000000..d49019a1b5 --- /dev/null +++ b/packages/ui/design-reference/status.hsla.css @@ -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 */ +} diff --git a/packages/ui/design-reference/theme.css b/packages/ui/design-reference/theme.css new file mode 100644 index 0000000000..29d83a0cba --- /dev/null +++ b/packages/ui/design-reference/theme.css @@ -0,0 +1,450 @@ +/** + * Generated from Design Tokens + * + * ⚠️ 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 + * + * Generated on: 2025-11-07T08:56:09.444Z + */ + +@theme { + /* ==================== */ + /* Primitive Colors */ + /* ==================== */ + --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); + + /* ==================== */ + /* Semantic Colors */ + /* ==================== */ + --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; + + /* ==================== */ + /* 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); + + /* ==================== */ + /* 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: 0.25rem; /* 4px */ + --radius-3xs: 0.5rem; /* 8px */ + --radius-2xs: 0.75rem; /* 12px */ + --radius-xs: 1rem; /* 16px */ + --radius-sm: 1.5rem; /* 24px */ + --radius-md: 2rem; /* 32px */ + --radius-lg: 2.5rem; /* 40px */ + --radius-xl: 3rem; /* 48px */ + --radius-2xl: 3.5rem; /* 56px */ + --radius-3xl: 4rem; /* 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 */ +/* ==================== */ +@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 */ +/* ==================== */ +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/packages/ui/src/styles/theme.css b/packages/ui/src/styles/theme.css index 4c018864b0..6308a054b4 100644 --- a/packages/ui/src/styles/theme.css +++ b/packages/ui/src/styles/theme.css @@ -12,311 +12,308 @@ /* ==================== */ /* Primitive Colors */ /* ==================== */ - --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); + --color-neutral-50: oklch(0.98 0 0); + --color-neutral-100: oklch(0.97 0 0); + --color-neutral-200: oklch(0.92 0 0); + --color-neutral-300: oklch(0.87 0 0); + --color-neutral-400: oklch(0.72 0 0); + --color-neutral-500: oklch(0.55 0 0); + --color-neutral-600: oklch(0.44 0.027 257); + --color-neutral-700: oklch(0.37 0 0); + --color-neutral-800: oklch(0.27 0 0); + --color-neutral-900: oklch(0.2 0 0); + --color-neutral-950: oklch(0.15 0 0); + --color-stone-50: oklch(0.99 0.001 106); + --color-stone-100: oklch(0.97 0.001 106); + --color-stone-200: oklch(0.92 0.003 49); + --color-stone-300: oklch(0.87 0.004 56); + --color-stone-400: oklch(0.72 0.008 56); + --color-stone-500: oklch(0.56 0.011 58); + --color-stone-600: oklch(0.44 0.009 73); + --color-stone-700: oklch(0.37 0.008 68); + --color-stone-800: oklch(0.27 0.006 34); + --color-stone-900: oklch(0.22 0.006 56); + --color-stone-950: oklch(0.15 0.004 50); + --color-zinc-50: oklch(0.98 0 0); + --color-zinc-100: oklch(0.97 0.001 286); + --color-zinc-200: oklch(0.92 0.004 286); + --color-zinc-300: oklch(0.87 0.006 286); + --color-zinc-400: oklch(0.71 0.013 286); + --color-zinc-500: oklch(0.55 0.014 286); + --color-zinc-600: oklch(0.44 0.014 286); + --color-zinc-700: oklch(0.37 0.011 286); + --color-zinc-800: oklch(0.27 0.006 286); + --color-zinc-900: oklch(0.21 0.006 286); + --color-zinc-950: oklch(0.14 0.004 286); + --color-slate-50: oklch(0.98 0.003 248); + --color-slate-100: oklch(0.97 0.007 248); + --color-slate-200: oklch(0.93 0.013 255); + --color-slate-300: oklch(0.87 0.02 253); + --color-slate-400: oklch(0.71 0.035 257); + --color-slate-500: oklch(0.56 0.04 257); + --color-slate-600: oklch(0.45 0.037 257); + --color-slate-700: oklch(0.38 0.039 257); + --color-slate-800: oklch(0.28 0.036 260); + --color-slate-900: oklch(0.21 0.039 266); + --color-slate-950: oklch(0.13 0.042 265); + --color-gray-50: oklch(0.98 0.002 248); + --color-gray-100: oklch(0.97 0.003 265); + --color-gray-200: oklch(0.93 0.006 265); + --color-gray-300: oklch(0.87 0.009 258); + --color-gray-400: oklch(0.71 0.02 261); + --color-gray-500: oklch(0.55 0.023 264); + --color-gray-600: oklch(0.44 0 0); + --color-gray-700: oklch(0.38 0.031 260); + --color-gray-800: oklch(0.28 0.03 257); + --color-gray-900: oklch(0.21 0.032 265); + --color-gray-950: oklch(0.13 0.027 262); + --color-red-50: oklch(0.97 0.014 17); + --color-red-100: oklch(0.93 0.031 18); + --color-red-200: oklch(0.88 0.062 18); + --color-red-300: oklch(0.81 0.103 20); + --color-red-400: oklch(0.71 0.166 22); + --color-red-500: oklch(0.64 0.208 25); + --color-red-600: oklch(0.58 0.214 27); + --color-red-700: oklch(0.51 0.192 28); + --color-red-800: oklch(0.44 0.16 27); + --color-red-900: oklch(0.4 0.135 26); + --color-red-950: oklch(0.25 0.087 26); + --color-orange-50: oklch(0.98 0.018 73); + --color-orange-100: oklch(0.96 0.036 75); + --color-orange-200: oklch(0.9 0.074 70); + --color-orange-300: oklch(0.84 0.118 67); + --color-orange-400: oklch(0.76 0.159 56); + --color-orange-500: oklch(0.71 0.186 48); + --color-orange-600: oklch(0.65 0.192 42); + --color-orange-700: oklch(0.55 0.173 38); + --color-orange-800: oklch(0.47 0.144 37); + --color-orange-900: oklch(0.41 0.118 38); + --color-orange-950: oklch(0.27 0.078 36); + --color-amber-50: oklch(0.99 0.022 95); + --color-amber-100: oklch(0.96 0.057 96); + --color-amber-200: oklch(0.93 0.114 96); + --color-amber-300: oklch(0.88 0.153 92); + --color-amber-400: oklch(0.83 0.164 84); + --color-amber-500: oklch(0.77 0.165 71); + --color-amber-600: oklch(0.67 0.159 58); + --color-amber-700: oklch(0.55 0.145 49); + --color-amber-800: oklch(0.47 0.124 47); + --color-amber-900: oklch(0.41 0.104 46); + --color-amber-950: oklch(0.28 0.074 46); + --color-yellow-50: oklch(0.99 0.028 103); + --color-yellow-100: oklch(0.97 0.07 103); + --color-yellow-200: oklch(0.95 0.124 102); + --color-yellow-300: oklch(0.9 0.164 98); + --color-yellow-400: oklch(0.86 0.173 92); + --color-yellow-500: oklch(0.79 0.16 85); + --color-yellow-600: oklch(0.68 0.141 77); + --color-yellow-700: oklch(0.55 0.121 65); + --color-yellow-800: oklch(0.48 0.104 62); + --color-yellow-900: oklch(0.42 0.091 57); + --color-yellow-950: oklch(0.28 0.063 54); + --color-lime-50: oklch(0.99 0.032 121); + --color-lime-100: oklch(0.97 0.067 123); + --color-lime-200: oklch(0.94 0.119 124); + --color-lime-300: oklch(0.9 0.18 127); + --color-lime-400: oklch(0.85 0.209 129); + --color-lime-500: oklch(0.76 0.204 131); + --color-lime-600: oklch(0.65 0.177 132); + --color-lime-700: oklch(0.53 0.139 132); + --color-lime-800: oklch(0.46 0.114 131); + --color-lime-900: oklch(0.4 0.095 131); + --color-lime-950: oklch(0.27 0.068 132); + --color-green-50: oklch(0.98 0.016 156); + --color-green-100: oklch(0.96 0.041 157); + --color-green-200: oklch(0.92 0.081 156); + --color-green-300: oklch(0.87 0.137 155); + --color-green-400: oklch(0.8 0.182 152); + --color-green-500: oklch(0.72 0.192 149); + --color-green-600: oklch(0.62 0.169 149); + --color-green-700: oklch(0.52 0.137 150); + --color-green-800: oklch(0.45 0.107 151); + --color-green-900: oklch(0.39 0.089 153); + --color-green-950: oklch(0.27 0.063 153); + --color-emerald-50: oklch(0.98 0.02 166); + --color-emerald-100: oklch(0.95 0.051 163); + --color-emerald-200: oklch(0.9 0.092 164); + --color-emerald-300: oklch(0.85 0.13 165); + --color-emerald-400: oklch(0.77 0.152 163); + --color-emerald-500: oklch(0.69 0.148 162); + --color-emerald-600: oklch(0.59 0.127 163); + --color-emerald-700: oklch(0.5 0.104 166); + --color-emerald-800: oklch(0.43 0.087 167); + --color-emerald-900: oklch(0.37 0.072 169); + --color-emerald-950: oklch(0.26 0.048 173); + --color-teal-50: oklch(0.99 0.013 181); + --color-teal-100: oklch(0.95 0.051 181); + --color-teal-200: oklch(0.91 0.094 180); + --color-teal-300: oklch(0.85 0.125 182); + --color-teal-400: oklch(0.78 0.133 181); + --color-teal-500: oklch(0.7 0.123 182); + --color-teal-600: oklch(0.61 0.105 185); + --color-teal-700: oklch(0.51 0.086 186); + --color-teal-800: oklch(0.44 0.071 188); + --color-teal-900: oklch(0.39 0.059 189); + --color-teal-950: oklch(0.28 0.045 193); + --color-cyan-50: oklch(0.98 0.02 201); + --color-cyan-100: oklch(0.95 0.046 203); + --color-cyan-200: oklch(0.92 0.077 205); + --color-cyan-300: oklch(0.86 0.115 207); + --color-cyan-400: oklch(0.8 0.134 212); + --color-cyan-500: oklch(0.71 0.126 216); + --color-cyan-600: oklch(0.6 0.11 222); + --color-cyan-700: oklch(0.52 0.093 223); + --color-cyan-800: oklch(0.45 0.077 224); + --color-cyan-900: oklch(0.4 0.067 227); + --color-cyan-950: oklch(0.3 0.054 230); + --color-sky-50: oklch(0.98 0.013 237); + --color-sky-100: oklch(0.95 0.024 237); + --color-sky-200: oklch(0.9 0.056 232); + --color-sky-300: oklch(0.83 0.1 230); + --color-sky-400: oklch(0.76 0.137 232); + --color-sky-500: oklch(0.68 0.148 238); + --color-sky-600: oklch(0.59 0.137 241); + --color-sky-700: oklch(0.5 0.118 242); + --color-sky-800: oklch(0.44 0.099 241); + --color-sky-900: oklch(0.39 0.084 241); + --color-sky-950: oklch(0.29 0.063 243); + --color-blue-50: oklch(0.97 0.014 255); + --color-blue-100: oklch(0.93 0.03 255); + --color-blue-200: oklch(0.88 0.058 254); + --color-blue-300: oklch(0.8 0.098 252); + --color-blue-400: oklch(0.72 0.143 254); + --color-blue-500: oklch(0.63 0.186 260); + --color-blue-600: oklch(0.54 0.215 263); + --color-blue-700: oklch(0.49 0.215 264); + --color-blue-800: oklch(0.42 0.181 266); + --color-blue-900: oklch(0.38 0.136 265); + --color-blue-950: oklch(0.28 0.087 268); + --color-indigo-50: oklch(0.97 0.016 272); + --color-indigo-100: oklch(0.93 0.033 272); + --color-indigo-200: oklch(0.87 0.061 274); + --color-indigo-300: oklch(0.79 0.104 275); + --color-indigo-400: oklch(0.68 0.156 277); + --color-indigo-500: oklch(0.59 0.204 277); + --color-indigo-600: oklch(0.51 0.228 277); + --color-indigo-700: oklch(0.46 0.213 278); + --color-indigo-800: oklch(0.4 0.177 278); + --color-indigo-900: oklch(0.36 0.133 279); + --color-indigo-950: oklch(0.26 0.086 282); + --color-violet-50: oklch(0.97 0.014 294); + --color-violet-100: oklch(0.94 0.031 294); + --color-violet-200: oklch(0.9 0.053 294); + --color-violet-300: oklch(0.81 0.102 294); + --color-violet-400: oklch(0.71 0.161 293); + --color-violet-500: oklch(0.6 0.221 292); + --color-violet-600: oklch(0.54 0.245 293); + --color-violet-700: oklch(0.49 0.242 292); + --color-violet-800: oklch(0.43 0.209 292); + --color-violet-900: oklch(0.38 0.178 294); + --color-violet-950: oklch(0.28 0.142 291); + --color-purple-50: oklch(0.98 0.014 308); + --color-purple-100: oklch(0.94 0.036 307); + --color-purple-200: oklch(0.91 0.059 307); + --color-purple-300: oklch(0.83 0.108 306); + --color-purple-400: oklch(0.72 0.178 305); + --color-purple-500: oklch(0.63 0.233 304); + --color-purple-600: oklch(0.56 0.251 302); + --color-purple-700: oklch(0.49 0.237 302); + --color-purple-800: oklch(0.44 0.196 304); + --color-purple-900: oklch(0.38 0.167 305); + --color-purple-950: oklch(0.29 0.144 303); + --color-fuchsia-50: oklch(0.98 0.016 320); + --color-fuchsia-100: oklch(0.95 0.04 319); + --color-fuchsia-200: oklch(0.91 0.07 319); + --color-fuchsia-300: oklch(0.83 0.132 321); + --color-fuchsia-400: oklch(0.75 0.203 322); + --color-fuchsia-500: oklch(0.67 0.257 322); + --color-fuchsia-600: oklch(0.59 0.256 323); + --color-fuchsia-700: oklch(0.52 0.226 324); + --color-fuchsia-800: oklch(0.45 0.192 324); + --color-fuchsia-900: oklch(0.4 0.161 326); + --color-fuchsia-950: oklch(0.29 0.13 326); + --color-pink-50: oklch(0.97 0.014 343); + --color-pink-100: oklch(0.95 0.026 342); + --color-pink-200: oklch(0.9 0.058 343); + --color-pink-300: oklch(0.83 0.108 346); + --color-pink-400: oklch(0.72 0.177 350); + --color-pink-500: oklch(0.65 0.213 354); + --color-pink-600: oklch(0.59 0.217 360); + --color-pink-700: oklch(0.53 0.2 4); + --color-pink-800: oklch(0.46 0.168 4); + --color-pink-900: oklch(0.4 0.143 3); + --color-pink-950: oklch(0.28 0.105 4); + --color-rose-50: oklch(0.97 0.017 13); + --color-rose-100: oklch(0.94 0.028 13); + --color-rose-200: oklch(0.89 0.056 10); + --color-rose-300: oklch(0.81 0.105 12); + --color-rose-400: oklch(0.72 0.172 13); + --color-rose-500: oklch(0.64 0.216 17); + --color-rose-600: oklch(0.59 0.222 18); + --color-rose-700: oklch(0.52 0.199 17); + --color-rose-800: oklch(0.46 0.173 13); + --color-rose-900: oklch(0.41 0.148 11); + --color-rose-950: oklch(0.27 0.102 12); + --color-brand-50: oklch(0.98 0.015 152); + --color-brand-100: oklch(0.96 0.034 151); + --color-brand-200: oklch(0.91 0.073 151); + --color-brand-300: oklch(0.85 0.13 149); + --color-brand-400: oklch(0.81 0.173 148); + --color-brand-500: oklch(0.77 0.208 146); + --color-brand-600: oklch(0.67 0.192 146); + --color-brand-700: oklch(0.56 0.156 146); + --color-brand-800: oklch(0.43 0.117 146); + --color-brand-900: oklch(0.3 0.075 147); + --color-brand-950: oklch(0.22 0.051 148); /* ==================== */ /* Semantic Colors */ /* ==================== */ - --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; + --color-primary: oklch(0.77 0.208 146); + --color-primary-hover: oklch(0.85 0.13 149); + --color-destructive: oklch(0.64 0.208 25); + --color-destructive-hover: oklch(0.71 0.166 22); + --color-background: oklch(0.98 0 0); + --color-background-subtle: oklch(0 0 0 / 0.02); + --color-foreground: oklch(0 0 0 / 0.9); + --color-foreground-secondary: oklch(0 0 0 / 0.6); + --color-foreground-muted: oklch(0 0 0 / 0.4); + --color-card: oklch(1 0 0); + --color-popover: oklch(1 0 0); + --color-border: oklch(0 0 0 / 0.1); + --color-border-hover: oklch(0 0 0 / 0.2); + --color-border-active: oklch(0 0 0 / 0.3); + --color-ring: color-mix(in srgb, oklch(0.77 0.208 146) 40%, transparent); + --color-secondary: oklch(0 0 0 / 0.05); + --color-secondary-hover: oklch(0 0 0 / 0.85); + --color-secondary-active: oklch(0 0 0 / 0.7); + --color-muted: oklch(0 0 0 / 0.05); + --color-accent: oklch(0 0 0 / 0.05); + --color-ghost-hover: oklch(0 0 0 / 0.05); + --color-ghost-active: oklch(0 0 0 / 0.1); + --color-sidebar: oklch(1 0 0); + --color-sidebar-accent: oklch(0 0 0 / 0.05); /* ==================== */ /* 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); + --color-error-base: oklch(0.64 0.208 25); + --color-error-text: oklch(0.44 0.16 27); + --color-error-bg: oklch(0.97 0.014 17); + --color-error-text-hover: oklch(0.51 0.192 28); + --color-error-bg-hover: oklch(0.93 0.031 18); + --color-error-border: oklch(0.88 0.062 18); + --color-error-border-hover: oklch(0.81 0.103 20); + --color-error-active: oklch(0.58 0.214 27); + --color-success-base: oklch(0.72 0.192 149); + --color-success-text-hover: oklch(0.52 0.137 150); + --color-success-bg: oklch(0.98 0.016 156); + --color-success-bg-hover: oklch(0.92 0.081 156); + --color-warning-base: oklch(0.83 0.164 84); + --color-warning-text-hover: oklch(0.55 0.145 49); + --color-warning-bg: oklch(0.99 0.022 95); + --color-warning-bg-hover: oklch(0.96 0.057 96); + --color-warning-active: oklch(0.67 0.159 58); /* ==================== */ /* Spacing */ @@ -341,17 +338,17 @@ /* ==================== */ /* 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; + --radius-4xs: 0.25rem; /* 4px */ + --radius-3xs: 0.5rem; /* 8px */ + --radius-2xs: 0.75rem; /* 12px */ + --radius-xs: 1rem; /* 16px */ + --radius-sm: 1.5rem; /* 24px */ + --radius-md: 2rem; /* 32px */ + --radius-lg: 2.5rem; /* 40px */ + --radius-xl: 3rem; /* 48px */ + --radius-2xl: 3.5rem; /* 56px */ + --radius-3xl: 4rem; /* 64px */ + --radius-round: 999px; /* 完全圆角 */ /* ==================== */ /* Typography */ @@ -397,43 +394,43 @@ /* ==================== */ @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); + --color-background: oklch(0.21 0.006 286); + --color-background-subtle: oklch(1 0 0 / 0.02); + --color-foreground: oklch(1 0 0 / 0.9); + --color-foreground-secondary: oklch(1 0 0 / 0.6); + --color-foreground-muted: oklch(1 0 0 / 0.4); + --color-card: oklch(0 0 0); + --color-popover: oklch(0 0 0); + --color-border: oklch(1 0 0 / 0.1); + --color-border-hover: oklch(1 0 0 / 0.2); + --color-border-active: oklch(1 0 0 / 0.3); + --color-ring: oklch(0.76 0.204 131 / 0.4); + --color-secondary: oklch(1 0 0 / 0.1); + --color-secondary-hover: oklch(1 0 0 / 0.2); + --color-secondary-active: oklch(1 0 0 / 0.25); + --color-muted: oklch(1 0 0 / 0.1); + --color-accent: oklch(1 0 0 / 0.1); + --color-ghost-hover: oklch(1 0 0 / 0.1); + --color-ghost-active: oklch(1 0 0 / 0.15); + --color-sidebar: oklch(0 0 0); + --color-sidebar-accent: oklch(1 0 0 / 0.1); + --color-error-base: oklch(0.71 0.166 22); + --color-error-text: oklch(0.93 0.031 18); + --color-error-bg: oklch(0.4 0.135 26); + --color-error-text-hover: oklch(0.88 0.062 18); + --color-error-bg-hover: oklch(0.44 0.16 27); + --color-error-border: oklch(0.51 0.192 28); + --color-error-border-hover: oklch(0.58 0.214 27); + --color-error-active: oklch(0.81 0.103 20); + --color-success-base: oklch(0.8 0.182 152); + --color-success-text-hover: oklch(0.92 0.081 156); + --color-success-bg: oklch(0.39 0.089 153); + --color-success-bg-hover: oklch(0.45 0.107 151); + --color-warning-base: oklch(0.83 0.164 84); + --color-warning-text-hover: oklch(0.93 0.114 96); + --color-warning-bg: oklch(0.41 0.104 46); + --color-warning-bg-hover: oklch(0.47 0.124 47); + --color-warning-active: oklch(0.67 0.159 58); } } diff --git a/packages/ui/src/styles/tokens/colors/primitive.css b/packages/ui/src/styles/tokens/colors/primitive.css index 7ac9155e9d..acad5c343e 100644 --- a/packages/ui/src/styles/tokens/colors/primitive.css +++ b/packages/ui/src/styles/tokens/colors/primitive.css @@ -5,305 +5,305 @@ :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); + --cs-neutral-50: oklch(0.98 0 0); + --cs-neutral-100: oklch(0.97 0 0); + --cs-neutral-200: oklch(0.92 0 0); + --cs-neutral-300: oklch(0.87 0 0); + --cs-neutral-400: oklch(0.72 0 0); + --cs-neutral-500: oklch(0.55 0 0); + --cs-neutral-600: oklch(0.44 0.027 257); + --cs-neutral-700: oklch(0.37 0 0); + --cs-neutral-800: oklch(0.27 0 0); + --cs-neutral-900: oklch(0.2 0 0); + --cs-neutral-950: oklch(0.15 0 0); /* 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); + --cs-stone-50: oklch(0.99 0.001 106); + --cs-stone-100: oklch(0.97 0.001 106); + --cs-stone-200: oklch(0.92 0.003 49); + --cs-stone-300: oklch(0.87 0.004 56); + --cs-stone-400: oklch(0.72 0.008 56); + --cs-stone-500: oklch(0.56 0.011 58); + --cs-stone-600: oklch(0.44 0.009 73); + --cs-stone-700: oklch(0.37 0.008 68); + --cs-stone-800: oklch(0.27 0.006 34); + --cs-stone-900: oklch(0.22 0.006 56); + --cs-stone-950: oklch(0.15 0.004 50); /* 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); + --cs-zinc-50: oklch(0.98 0 0); + --cs-zinc-100: oklch(0.97 0.001 286); + --cs-zinc-200: oklch(0.92 0.004 286); + --cs-zinc-300: oklch(0.87 0.006 286); + --cs-zinc-400: oklch(0.71 0.013 286); + --cs-zinc-500: oklch(0.55 0.014 286); + --cs-zinc-600: oklch(0.44 0.014 286); + --cs-zinc-700: oklch(0.37 0.011 286); + --cs-zinc-800: oklch(0.27 0.006 286); + --cs-zinc-900: oklch(0.21 0.006 286); + --cs-zinc-950: oklch(0.14 0.004 286); /* 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); + --cs-slate-50: oklch(0.98 0.003 248); + --cs-slate-100: oklch(0.97 0.007 248); + --cs-slate-200: oklch(0.93 0.013 255); + --cs-slate-300: oklch(0.87 0.02 253); + --cs-slate-400: oklch(0.71 0.035 257); + --cs-slate-500: oklch(0.56 0.04 257); + --cs-slate-600: oklch(0.45 0.037 257); + --cs-slate-700: oklch(0.38 0.039 257); + --cs-slate-800: oklch(0.28 0.036 260); + --cs-slate-900: oklch(0.21 0.039 266); + --cs-slate-950: oklch(0.13 0.042 265); /* 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); + --cs-gray-50: oklch(0.98 0.002 248); + --cs-gray-100: oklch(0.97 0.003 265); + --cs-gray-200: oklch(0.93 0.006 265); + --cs-gray-300: oklch(0.87 0.009 258); + --cs-gray-400: oklch(0.71 0.02 261); + --cs-gray-500: oklch(0.55 0.023 264); + --cs-gray-600: oklch(0.44 0 0); + --cs-gray-700: oklch(0.38 0.031 260); + --cs-gray-800: oklch(0.28 0.03 257); + --cs-gray-900: oklch(0.21 0.032 265); + --cs-gray-950: oklch(0.13 0.027 262); /* 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); + --cs-red-50: oklch(0.97 0.014 17); + --cs-red-100: oklch(0.93 0.031 18); + --cs-red-200: oklch(0.88 0.062 18); + --cs-red-300: oklch(0.81 0.103 20); + --cs-red-400: oklch(0.71 0.166 22); + --cs-red-500: oklch(0.64 0.208 25); + --cs-red-600: oklch(0.58 0.214 27); + --cs-red-700: oklch(0.51 0.192 28); + --cs-red-800: oklch(0.44 0.16 27); + --cs-red-900: oklch(0.4 0.135 26); + --cs-red-950: oklch(0.25 0.087 26); /* 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); + --cs-orange-50: oklch(0.98 0.018 73); + --cs-orange-100: oklch(0.96 0.036 75); + --cs-orange-200: oklch(0.9 0.074 70); + --cs-orange-300: oklch(0.84 0.118 67); + --cs-orange-400: oklch(0.76 0.159 56); + --cs-orange-500: oklch(0.71 0.186 48); + --cs-orange-600: oklch(0.65 0.192 42); + --cs-orange-700: oklch(0.55 0.173 38); + --cs-orange-800: oklch(0.47 0.144 37); + --cs-orange-900: oklch(0.41 0.118 38); + --cs-orange-950: oklch(0.27 0.078 36); /* 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); + --cs-amber-50: oklch(0.99 0.022 95); + --cs-amber-100: oklch(0.96 0.057 96); + --cs-amber-200: oklch(0.93 0.114 96); + --cs-amber-300: oklch(0.88 0.153 92); + --cs-amber-400: oklch(0.83 0.164 84); + --cs-amber-500: oklch(0.77 0.165 71); + --cs-amber-600: oklch(0.67 0.159 58); + --cs-amber-700: oklch(0.55 0.145 49); + --cs-amber-800: oklch(0.47 0.124 47); + --cs-amber-900: oklch(0.41 0.104 46); + --cs-amber-950: oklch(0.28 0.074 46); /* 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); + --cs-yellow-50: oklch(0.99 0.028 103); + --cs-yellow-100: oklch(0.97 0.07 103); + --cs-yellow-200: oklch(0.95 0.124 102); + --cs-yellow-300: oklch(0.9 0.164 98); + --cs-yellow-400: oklch(0.86 0.173 92); + --cs-yellow-500: oklch(0.79 0.16 85); + --cs-yellow-600: oklch(0.68 0.141 77); + --cs-yellow-700: oklch(0.55 0.121 65); + --cs-yellow-800: oklch(0.48 0.104 62); + --cs-yellow-900: oklch(0.42 0.091 57); + --cs-yellow-950: oklch(0.28 0.063 54); /* 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); + --cs-lime-50: oklch(0.99 0.032 121); + --cs-lime-100: oklch(0.97 0.067 123); + --cs-lime-200: oklch(0.94 0.119 124); + --cs-lime-300: oklch(0.9 0.18 127); + --cs-lime-400: oklch(0.85 0.209 129); + --cs-lime-500: oklch(0.76 0.204 131); + --cs-lime-600: oklch(0.65 0.177 132); + --cs-lime-700: oklch(0.53 0.139 132); + --cs-lime-800: oklch(0.46 0.114 131); + --cs-lime-900: oklch(0.4 0.095 131); + --cs-lime-950: oklch(0.27 0.068 132); /* 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); + --cs-green-50: oklch(0.98 0.016 156); + --cs-green-100: oklch(0.96 0.041 157); + --cs-green-200: oklch(0.92 0.081 156); + --cs-green-300: oklch(0.87 0.137 155); + --cs-green-400: oklch(0.8 0.182 152); + --cs-green-500: oklch(0.72 0.192 149); + --cs-green-600: oklch(0.62 0.169 149); + --cs-green-700: oklch(0.52 0.137 150); + --cs-green-800: oklch(0.45 0.107 151); + --cs-green-900: oklch(0.39 0.089 153); + --cs-green-950: oklch(0.27 0.063 153); /* 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); + --cs-emerald-50: oklch(0.98 0.02 166); + --cs-emerald-100: oklch(0.95 0.051 163); + --cs-emerald-200: oklch(0.9 0.092 164); + --cs-emerald-300: oklch(0.85 0.13 165); + --cs-emerald-400: oklch(0.77 0.152 163); + --cs-emerald-500: oklch(0.69 0.148 162); + --cs-emerald-600: oklch(0.59 0.127 163); + --cs-emerald-700: oklch(0.5 0.104 166); + --cs-emerald-800: oklch(0.43 0.087 167); + --cs-emerald-900: oklch(0.37 0.072 169); + --cs-emerald-950: oklch(0.26 0.048 173); /* 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); + --cs-teal-50: oklch(0.99 0.013 181); + --cs-teal-100: oklch(0.95 0.051 181); + --cs-teal-200: oklch(0.91 0.094 180); + --cs-teal-300: oklch(0.85 0.125 182); + --cs-teal-400: oklch(0.78 0.133 181); + --cs-teal-500: oklch(0.7 0.123 182); + --cs-teal-600: oklch(0.61 0.105 185); + --cs-teal-700: oklch(0.51 0.086 186); + --cs-teal-800: oklch(0.44 0.071 188); + --cs-teal-900: oklch(0.39 0.059 189); + --cs-teal-950: oklch(0.28 0.045 193); /* 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); + --cs-cyan-50: oklch(0.98 0.02 201); + --cs-cyan-100: oklch(0.95 0.046 203); + --cs-cyan-200: oklch(0.92 0.077 205); + --cs-cyan-300: oklch(0.86 0.115 207); + --cs-cyan-400: oklch(0.8 0.134 212); + --cs-cyan-500: oklch(0.71 0.126 216); + --cs-cyan-600: oklch(0.6 0.11 222); + --cs-cyan-700: oklch(0.52 0.093 223); + --cs-cyan-800: oklch(0.45 0.077 224); + --cs-cyan-900: oklch(0.4 0.067 227); + --cs-cyan-950: oklch(0.3 0.054 230); /* 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); + --cs-sky-50: oklch(0.98 0.013 237); + --cs-sky-100: oklch(0.95 0.024 237); + --cs-sky-200: oklch(0.9 0.056 232); + --cs-sky-300: oklch(0.83 0.1 230); + --cs-sky-400: oklch(0.76 0.137 232); + --cs-sky-500: oklch(0.68 0.148 238); + --cs-sky-600: oklch(0.59 0.137 241); + --cs-sky-700: oklch(0.5 0.118 242); + --cs-sky-800: oklch(0.44 0.099 241); + --cs-sky-900: oklch(0.39 0.084 241); + --cs-sky-950: oklch(0.29 0.063 243); /* 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); + --cs-blue-50: oklch(0.97 0.014 255); + --cs-blue-100: oklch(0.93 0.03 255); + --cs-blue-200: oklch(0.88 0.058 254); + --cs-blue-300: oklch(0.8 0.098 252); + --cs-blue-400: oklch(0.72 0.143 254); + --cs-blue-500: oklch(0.63 0.186 260); + --cs-blue-600: oklch(0.54 0.215 263); + --cs-blue-700: oklch(0.49 0.215 264); + --cs-blue-800: oklch(0.42 0.181 266); + --cs-blue-900: oklch(0.38 0.136 265); + --cs-blue-950: oklch(0.28 0.087 268); /* 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); + --cs-indigo-50: oklch(0.97 0.016 272); + --cs-indigo-100: oklch(0.93 0.033 272); + --cs-indigo-200: oklch(0.87 0.061 274); + --cs-indigo-300: oklch(0.79 0.104 275); + --cs-indigo-400: oklch(0.68 0.156 277); + --cs-indigo-500: oklch(0.59 0.204 277); + --cs-indigo-600: oklch(0.51 0.228 277); + --cs-indigo-700: oklch(0.46 0.213 278); + --cs-indigo-800: oklch(0.4 0.177 278); + --cs-indigo-900: oklch(0.36 0.133 279); + --cs-indigo-950: oklch(0.26 0.086 282); /* 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); + --cs-violet-50: oklch(0.97 0.014 294); + --cs-violet-100: oklch(0.94 0.031 294); + --cs-violet-200: oklch(0.9 0.053 294); + --cs-violet-300: oklch(0.81 0.102 294); + --cs-violet-400: oklch(0.71 0.161 293); + --cs-violet-500: oklch(0.6 0.221 292); + --cs-violet-600: oklch(0.54 0.245 293); + --cs-violet-700: oklch(0.49 0.242 292); + --cs-violet-800: oklch(0.43 0.209 292); + --cs-violet-900: oklch(0.38 0.178 294); + --cs-violet-950: oklch(0.28 0.142 291); /* 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); + --cs-purple-50: oklch(0.98 0.014 308); + --cs-purple-100: oklch(0.94 0.036 307); + --cs-purple-200: oklch(0.91 0.059 307); + --cs-purple-300: oklch(0.83 0.108 306); + --cs-purple-400: oklch(0.72 0.178 305); + --cs-purple-500: oklch(0.63 0.233 304); + --cs-purple-600: oklch(0.56 0.251 302); + --cs-purple-700: oklch(0.49 0.237 302); + --cs-purple-800: oklch(0.44 0.196 304); + --cs-purple-900: oklch(0.38 0.167 305); + --cs-purple-950: oklch(0.29 0.144 303); /* 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); + --cs-fuchsia-50: oklch(0.98 0.016 320); + --cs-fuchsia-100: oklch(0.95 0.04 319); + --cs-fuchsia-200: oklch(0.91 0.07 319); + --cs-fuchsia-300: oklch(0.83 0.132 321); + --cs-fuchsia-400: oklch(0.75 0.203 322); + --cs-fuchsia-500: oklch(0.67 0.257 322); + --cs-fuchsia-600: oklch(0.59 0.256 323); + --cs-fuchsia-700: oklch(0.52 0.226 324); + --cs-fuchsia-800: oklch(0.45 0.192 324); + --cs-fuchsia-900: oklch(0.4 0.161 326); + --cs-fuchsia-950: oklch(0.29 0.13 326); /* 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); + --cs-pink-50: oklch(0.97 0.014 343); + --cs-pink-100: oklch(0.95 0.026 342); + --cs-pink-200: oklch(0.9 0.058 343); + --cs-pink-300: oklch(0.83 0.108 346); + --cs-pink-400: oklch(0.72 0.177 350); + --cs-pink-500: oklch(0.65 0.213 354); + --cs-pink-600: oklch(0.59 0.217 360); + --cs-pink-700: oklch(0.53 0.2 4); + --cs-pink-800: oklch(0.46 0.168 4); + --cs-pink-900: oklch(0.4 0.143 3); + --cs-pink-950: oklch(0.28 0.105 4); /* 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); + --cs-rose-50: oklch(0.97 0.017 13); + --cs-rose-100: oklch(0.94 0.028 13); + --cs-rose-200: oklch(0.89 0.056 10); + --cs-rose-300: oklch(0.81 0.105 12); + --cs-rose-400: oklch(0.72 0.172 13); + --cs-rose-500: oklch(0.64 0.216 17); + --cs-rose-600: oklch(0.59 0.222 18); + --cs-rose-700: oklch(0.52 0.199 17); + --cs-rose-800: oklch(0.46 0.173 13); + --cs-rose-900: oklch(0.41 0.148 11); + --cs-rose-950: oklch(0.27 0.102 12); /* Black & White */ - --cs-black: hsla(0, 0%, 0%, 1); - --cs-white: hsla(0, 0%, 100%, 1); + --cs-black: oklch(0 0 0); + --cs-white: oklch(1 0 0); /* 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); + --cs-brand-50: oklch(0.98 0.015 152); + --cs-brand-100: oklch(0.96 0.034 151); + --cs-brand-200: oklch(0.91 0.073 151); + --cs-brand-300: oklch(0.85 0.13 149); + --cs-brand-400: oklch(0.81 0.173 148); + --cs-brand-500: oklch(0.77 0.208 146); + --cs-brand-600: oklch(0.67 0.192 146); + --cs-brand-700: oklch(0.56 0.156 146); + --cs-brand-800: oklch(0.43 0.117 146); + --cs-brand-900: oklch(0.3 0.075 147); + --cs-brand-950: oklch(0.22 0.051 148); } diff --git a/packages/ui/src/styles/tokens/colors/semantic.css b/packages/ui/src/styles/tokens/colors/semantic.css index 0291c108f3..ff04ae0f85 100644 --- a/packages/ui/src/styles/tokens/colors/semantic.css +++ b/packages/ui/src/styles/tokens/colors/semantic.css @@ -14,68 +14,68 @@ /* 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); + --cs-background-subtle: oklch(0 0 0 / 0.02); + --cs-foreground: oklch(0 0 0 / 0.9); + --cs-foreground-secondary: oklch(0 0 0 / 0.6); + --cs-foreground-muted: oklch(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); + --cs-border: oklch(0 0 0 / 0.1); + --cs-border-hover: oklch(0 0 0 / 0.2); + --cs-border-active: oklch(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 */ + --cs-secondary: oklch(0 0 0 / 0.05); /* Secondary Button Background */ + --cs-secondary-hover: oklch(0 0 0 / 0.85); + --cs-secondary-active: oklch(0 0 0 / 0.7); + --cs-muted: oklch(0 0 0 / 0.05); /* Muted/Subtle Background */ + --cs-accent: oklch(0 0 0 / 0.05); /* Accent Background */ + --cs-ghost-hover: oklch(0 0 0 / 0.05); /* Ghost Button Hover */ + --cs-ghost-active: oklch(0 0 0 / 0.1); /* Ghost Button Active */ /* Sidebar */ --cs-sidebar: var(--cs-white); - --cs-sidebar-accent: hsla(0, 0%, 0%, 0.05); + --cs-sidebar-accent: oklch(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); + --cs-background-subtle: oklch(1 0 0 / 0.02); + --cs-foreground: oklch(1 0 0 / 0.9); + --cs-foreground-secondary: oklch(1 0 0 / 0.6); + --cs-foreground-muted: oklch(1 0 0 / 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); + --cs-border: oklch(1 0 0 / 0.1); + --cs-border-hover: oklch(1 0 0 / 0.2); + --cs-border-active: oklch(1 0 0 / 0.3); /* Ring (Focus) - 保持不变 */ - --cs-ring: hsla(84, 81%, 44%, 0.4); + --cs-ring: oklch(0.76 0.204 131 / 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 */ + --cs-secondary: oklch(1 0 0 / 0.1); /* Secondary Button Background */ + --cs-secondary-hover: oklch(1 0 0 / 0.2); + --cs-secondary-active: oklch(1 0 0 / 0.25); + --cs-muted: oklch(1 0 0 / 0.1); /* Muted/Subtle Background */ + --cs-accent: oklch(1 0 0 / 0.1); /* Accent Background */ + --cs-ghost-hover: oklch(1 0 0 / 0.1); /* Ghost Button Hover */ + --cs-ghost-active: oklch(1 0 0 / 0.15); /* Ghost Button Active */ /* Sidebar */ --cs-sidebar: var(--cs-black); - --cs-sidebar-accent: hsla(0, 0%, 100%, 0.1); + --cs-sidebar-accent: oklch(1 0 0 / 0.1); } diff --git a/packages/ui/src/styles/tokens/colors/status.css b/packages/ui/src/styles/tokens/colors/status.css index d49019a1b5..6d7072af88 100644 --- a/packages/ui/src/styles/tokens/colors/status.css +++ b/packages/ui/src/styles/tokens/colors/status.css @@ -5,51 +5,51 @@ :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 */ + --cs-error-base: var(--cs-red-500); /* oklch(0.64 0.208 25) */ + --cs-error-text: var(--cs-red-800); /* oklch(0.44 0.161 27) */ + --cs-error-bg: var(--cs-red-50); /* oklch(0.97 0.013 17) */ + --cs-error-text-hover: var(--cs-red-700); /* oklch(0.51 0.19 28) */ + --cs-error-bg-hover: var(--cs-red-100); /* oklch(0.94 0.031 18) */ + --cs-error-border: var(--cs-red-200); /* oklch(0.88 0.059 18) */ + --cs-error-border-hover: var(--cs-red-300); /* oklch(0.81 0.103 20) */ + --cs-error-active: var(--cs-red-600); /* oklch(0.58 0.215 27) */ /* 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 */ + --cs-success-base: var(--cs-green-500); /* oklch(0.72 0.192 150) */ + --cs-success-text-hover: var(--cs-green-700); /* oklch(0.53 0.137 150) */ + --cs-success-bg: var(--cs-green-50); /* oklch(0.98 0.018 156) */ + --cs-success-bg-hover: var(--cs-green-200); /* oklch(0.93 0.081 156) */ /* 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 */ + --cs-warning-base: var(--cs-amber-400); /* oklch(0.84 0.164 84) */ + --cs-warning-text-hover: var(--cs-amber-700); /* oklch(0.56 0.146 49) */ + --cs-warning-bg: var(--cs-amber-50); /* oklch(0.99 0.021 95) */ + --cs-warning-bg-hover: var(--cs-amber-100); /* oklch(0.96 0.058 96) */ + --cs-warning-active: var(--cs-amber-600); /* oklch(0.67 0.157 58) */ } /* 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 */ + --cs-error-base: var(--cs-red-400); /* oklch(0.71 0.166 22) */ + --cs-error-text: var(--cs-red-100); /* oklch(0.94 0.031 18) */ + --cs-error-bg: var(--cs-red-900); /* oklch(0.4 0.133 26) */ + --cs-error-text-hover: var(--cs-red-200); /* oklch(0.88 0.059 18) */ + --cs-error-bg-hover: var(--cs-red-800); /* oklch(0.44 0.161 27) */ + --cs-error-border: var(--cs-red-700); /* oklch(0.51 0.19 28) */ + --cs-error-border-hover: var(--cs-red-600); /* oklch(0.58 0.215 27) */ + --cs-error-active: var(--cs-red-300); /* oklch(0.81 0.103 20) */ /* 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 */ + --cs-success-base: var(--cs-green-400); /* oklch(0.8 0.182 152) */ + --cs-success-text-hover: var(--cs-green-200); /* oklch(0.93 0.081 156) */ + --cs-success-bg: var(--cs-green-900); /* oklch(0.39 0.09 153) */ + --cs-success-bg-hover: var(--cs-green-800); /* oklch(0.45 0.108 151) */ /* 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 */ + --cs-warning-base: var(--cs-amber-400); /* oklch(0.84 0.164 84) */ + --cs-warning-text-hover: var(--cs-amber-200); /* oklch(0.92 0.115 96) */ + --cs-warning-bg: var(--cs-amber-900); /* oklch(0.41 0.105 46) */ + --cs-warning-bg-hover: var(--cs-amber-800); /* oklch(0.47 0.125 46) */ + --cs-warning-active: var(--cs-amber-600); /* oklch(0.67 0.157 58) */ } diff --git a/packages/ui/src/styles/tokens/radius.css b/packages/ui/src/styles/tokens/radius.css index 2a7cbaf9b1..4683f7b667 100644 --- a/packages/ui/src/styles/tokens/radius.css +++ b/packages/ui/src/styles/tokens/radius.css @@ -4,20 +4,15 @@ */ :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-4xs: 0.25rem; /* 4px */ + --cs-radius-3xs: 0.5rem; /* 8px */ + --cs-radius-2xs: 0.75rem; /* 12px */ + --cs-radius-xs: 1rem; /* 16px */ + --cs-radius-sm: 1.5rem; /* 24px */ + --cs-radius-md: 2rem; /* 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 */ + --cs-radius-xl: 3rem; /* 48px */ + --cs-radius-2xl: 3.5rem; /* 56px */ + --cs-radius-3xl: 4rem; /* 64px */ + --cs-radius-round: 999px; /* 完全圆角,保持 px */ }