关于 tailwind-design-system
Tailwind Design System (v4) 是用于使用 Tailwind CSS v4 构建设计系统的 Skill,重点涵盖 CSS 优先配置、设计令牌、组件模式、响应式设计、无障碍性及 v3 迁移。
主要功能
- 01使用 @theme 进行 CSS 优先配置
- 02设计令牌层级
- 03组件变体与状态
- 04响应式和无障碍模式
- 05Tailwind v3 迁移指南
适用场景
- 01创建 Tailwind v4 组件库
- 02定义设计令牌和主题
- 03统一代码库中的 UI 模式
- 04将项目从 Tailwind v3 迁移
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wshobson/ agents --skill tailwind-design-system安装后在 Claude Code 中输入/tailwind-design-system确认已加载。
附带文件references/advanced-patterns.mdreferences/details.md
详细介绍
Tailwind 设计系统(v4)
使用 Tailwind CSS v4 构建可上生产的设计系统,包括 CSS 优先配置、设计令牌、组件变体、响应式模式和无障碍支持。
注意:本技能面向 Tailwind CSS v4(2024+)。对于 v3 项目,请参阅升级指南。
何时使用本技能
- 使用 Tailwind v4 创建组件库
- 通过 CSS 优先配置实现设计令牌和主题化
- 构建响应式且无障碍的组件
- 在代码库中统一 UI 模式
- 从 Tailwind v3 迁移到 v4
- 使用原生 CSS 特性设置深色模式
v4 关键变化
| v3 模式 | v4 模式 |
|---|---|
tailwind.config.ts | CSS 中的 @theme |
@tailwind base/components/utilities | @import "tailwindcss" |
darkMode: "class" | @custom-variant dark (&:where(.dark, .dark *)) |
theme.extend.colors | @theme { --color-*: value } |
require("tailwindcss-animate") | @theme 中的 CSS @keyframes + 用于入场动画的 @starting-style |
快速开始
/* app.css - Tailwind v4 CSS-first configuration */
@import "tailwindcss";
/* Define your theme with @theme */
@theme {
/* Semantic color tokens using OKLCH for better color perception */
--color-background: oklch(100% 0 0);
--color-foreground: oklch(14.5% 0.025 264);
--color-primary: oklch(14.5% 0.025 264);
--color-primary-foreground: oklch(98% 0.01 264);
--color-secondary: oklch(96% 0.01 264);
--color-secondary-foreground: oklch(14.5% 0.025 264);
--color-muted: oklch(96% 0.01 264);
--color-muted-foreground: oklch(46% 0.02 264);
--color-accent: oklch(96% 0.01 264);
--color-accent-foreground: oklch(14.5% 0.025 264);
--color-destructive: oklch(53% 0.22 27);
--color-destructive-foreground: oklch(98% 0.01 264);
--color-border: oklch(91% 0.01 264);
--color-ring: oklch(14.5% 0.025 264);
--color-card: oklch(100% 0 0);
--color-card-foreground: oklch(14.5% 0.025 264);
/* Ring offset for focus states */
--color-ring-offset: oklch(100% 0 0);
/* Radius tokens */
--radius-sm: 0.25rem;
--radius-md: 0.375rem;
--radius-lg: 0.5rem;
--radius-xl: 0.75rem;
/* Animation tokens - keyframes inside @theme are output when referenced by --animate-* variables */
--animate-fade-in: fade-in 0.2s ease-out;
--animate-fade-out: fade-out 0.2s ease-in;
--animate-slide-in: slide-in 0.3s ease-out;
--animate-slide-out: slide-out 0.3s ease-in;
@keyframes fade-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fade-out {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes slide-in {
from {
transform: translateY(-0.5rem);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
@keyframes slide-out {
from {
transform: translateY(0);
opacity: 1;
}
to {
transform: translateY(-0.5rem);
opacity: 0;
}
}
}
/* Dark mode variant - use @custom-variant for class-based dark mode */
@custom-variant dark (&:where(.dark, .dark *));
/* Dark mode theme overrides */
.dark {
--color-background: oklch(14.5% 0.025 264);
--color-foreground: oklch(98% 0.01 264);
--color-primary: oklch(98% 0.01 264);
--color-primary-foreground: oklch(14.5% 0.025 264);
--color-secondary: oklch(22% 0.02 264);
--color-secondary-foreground: oklch(98% 0.01 264);
--color-muted: oklch(22% 0.02 264);
--color-muted-foreground: oklch(65% 0.02 264);
--color-accent: oklch(22% 0.02 264);
--color-accent-foreground: oklch(98% 0.01 264);
--color-destructive: oklch(42% 0.15 27);
--color-destructive-foreground: oklch(98% 0.01 264);
--color-border: oklch(22% 0.02 264);
--color-ring: oklch(83% 0.02 264);
--color-card: oklch(14.5% 0.025 264);
--color-card-foreground: oklch(98% 0.01 264);
--color-ring-offset: oklch(14.5% 0.025 264);
}
/* Base styles */
@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground antialiased;
}
}
核心概念
1. 设计令牌层级
Brand Tokens (abstract)
└── Semantic Tokens (purpose)
└── Component Tokens (specific)
Example:
oklch(45% 0.2 260) → --color-primary → bg-primary
2. 组件架构
Base styles → Variants → Sizes → States → Overrides
详细模式与完整示例
详细的模式文档位于 references/details.md。当上述导航层级不够用时,请阅读该文件。
评论
支持 Markdown