# Design System 完整的设计系统,提供可复用的 UI 组件和设计令牌,确保整个应用的一致性。 ## 目录结构 ``` src/design-system/ ├── tokens/ # 设计令牌(颜色、间距、字体等) ├── lib/ # 工具函数 ├── base/ # 基础组件 │ ├── button/ │ ├── input/ │ ├── textarea/ │ ├── card/ │ ├── checkbox/ │ ├── radio/ │ ├── switch/ │ └── select/ ├── feedback/ # 反馈组件 │ ├── alert/ │ ├── progress/ │ ├── skeleton/ │ └── toast/ ├── overlay/ # 覆盖组件 │ └── modal/ ├── data-display/ # 数据展示组件 │ ├── badge/ │ └── divider/ ├── layout/ # 布局组件 │ ├── container/ │ ├── grid/ │ └── stack/ ├── navigation/ # 导航组件 │ └── tabs/ ``` ## 快速开始 ### 安装依赖 ```bash pnpm add class-variance-authority clsx tailwind-merge ``` ### 导入组件 ```tsx // 使用显式导入以获得更好的 tree-shaking import { Button } from '@/design-system/base/button'; import { Input } from '@/design-system/base/input'; import { Card } from '@/design-system/base/card'; ``` ### 使用组件 ```tsx import { Button } from '@/design-system/base/button'; import { Card } from '@/design-system/base/card'; export function MyComponent() { return (

标题

内容

); } ``` ## 组件列表 ### 基础组件 | 组件 | 说明 | 状态 | |------|------|------| | [Button](#button) | 按钮 | ✅ | | [Input](#input) | 输入框 | ✅ | | [Textarea](#textarea) | 多行文本输入 | ✅ | | [Card](#card) | 卡片容器 | ✅ | | [Checkbox](#checkbox) | 复选框 | ✅ | | [Radio](#radio) | 单选按钮 | ✅ | | [Switch](#switch) | 开关 | ✅ | | [Select](#select) | 下拉选择框 | ✅ | ### 反馈组件 | 组件 | 说明 | 状态 | |------|------|------| | [Alert](#alert) | 警告提示 | ✅ | | [Progress](#progress) | 进度条 | ✅ | | [Skeleton](#skeleton) | 骨架屏 | ✅ | | [Toast](#toast) | 通知提示 | ✅ | ### 覆盖组件 | 组件 | 说明 | 状态 | |------|------|------| | [Modal](#modal) | 模态框 | ✅ | ### 数据展示组件 | 组件 | 说明 | 状态 | |------|------|------| | [Badge](#badge) | 徽章 | ✅ | | [Divider](#divider) | 分隔线 | ✅ | ### 布局组件 | 组件 | 说明 | 状态 | |------|------|------| | [Container](#container) | 容器 | ✅ | | [Grid](#grid) | 网格布局 | ✅ | | [Stack](#stack) | 堆叠布局 | ✅ | ### 导航组件 | 组件 | 说明 | 状态 | |------|------|------| | [Tabs](#tabs) | 标签页 | ✅ | ## 组件 API ### Button 按钮组件,支持多种变体和尺寸。 ```tsx import { Button } from '@/design-system/base/button'; ``` **变体 (variant)**: `primary` | `secondary` | `success` | `warning` | `error` | `ghost` | `outline` | `link` **尺寸 (size)**: `sm` | `md` | `lg` **快捷组件**: `PrimaryButton`, `SecondaryButton`, `SuccessButton`, `WarningButton`, `ErrorButton`, `GhostButton`, `OutlineButton`, `LinkButton` ### Input 输入框组件。 ```tsx import { Input } from '@/design-system/base/input'; ``` **变体 (variant)**: `default` | `bordered` | `filled` | `search` **尺寸 (size)**: `sm` | `md` | `lg` ### Textarea 多行文本输入组件。 ```tsx import { Textarea } from '@/design-system/base/textarea';