# Nex Design 设计规范指南 > 面向 React + Ant Design + Tailwind CSS 的前端设计语言规范 ## 目录 - [概述](#概述) - [设计原则](#设计原则) - [颜色系统](#颜色系统) - [排版规范](#排版规范) - [间距系统](#间距系统) - [组件规范](#组件规范) - [布局规范](#布局规范) - [交互规范](#交互规范) - [响应式设计](#响应式设计) - [页面模板](#页面模板) --- ## 概述 Nex Design 是为开发团队打造的一套标准化设计语言系统,旨在提供统一、高效、易维护的前端设计规范。 ### 技术栈 - **框架**: React 18+ - **组件库**: Ant Design 5.x - **样式方案**: Tailwind CSS 3.x - **包管理**: Yarn - **运行时**: Node.js 16+ ### 设计目标 1. **一致性**: 确保所有页面和组件保持视觉与交互的一致性 2. **高效性**: 提供可复用的设计模式,加快开发速度 3. **可维护性**: 建立清晰的规范体系,降低维护成本 4. **用户体验**: 优先考虑用户体验,打造直观易用的界面 --- ## 设计原则 ### 1. 清晰明确 界面设计应当清晰直观,避免歧义,让用户能够快速理解和操作。 ### 2. 一致性优先 保持视觉、交互、用词的一致性,减少用户学习成本。 ### 3. 效率至上 优化操作流程,减少用户的操作步骤,提高工作效率。 ### 4. 反馈及时 对用户的每一个操作都应给予明确的反馈,包括成功、失败、加载等状态。 ### 5. 容错友好 预防用户错误,在错误发生时提供清晰的提示和解决方案。 --- ## 颜色系统 ### 主色调 ```css /* 品牌主色 - Primary (基于 NEX Logo 紫红色) */ --primary-50: #fce7f6; --primary-100: #f5bae6; --primary-200: #ee8dd6; --primary-300: #e760c6; --primary-400: #e033b6; --primary-500: #b8178d; /* 主色 - 匹配 NEX Logo */ --primary-600: #9c1477; --primary-700: #801161; --primary-800: #640d4b; --primary-900: #480a35; ``` ### 辅助色系 ```css /* 蓝色 - Blue (用于信息提示) */ --blue-50: #e6f4ff; --blue-100: #bae0ff; --blue-200: #91caff; --blue-300: #69b1ff; --blue-400: #4096ff; --blue-500: #1677ff; /* 信息色 */ --blue-600: #0958d9; --blue-700: #003eb3; --blue-800: #002c8c; --blue-900: #001d66; ``` ### 功能色 ```css /* 成功 - Success */ --success: #52c41a; --success-bg: #f6ffed; --success-border: #b7eb8f; /* 警告 - Warning */ --warning: #faad14; --warning-bg: #fffbe6; --warning-border: #ffe58f; /* 错误 - Error */ --error: #ff4d4f; --error-bg: #fff2f0; --error-border: #ffccc7; /* 信息 - Info */ --info: #1677ff; --info-bg: #e6f4ff; --info-border: #91caff; ``` ### 中性色 ```css /* 文本颜色 */ --text-primary: rgba(0, 0, 0, 0.88); /* 主要文本 */ --text-secondary: rgba(0, 0, 0, 0.65); /* 次要文本 */ --text-tertiary: rgba(0, 0, 0, 0.45); /* 辅助文本 */ --text-disabled: rgba(0, 0, 0, 0.25); /* 禁用文本 */ /* 背景颜色 */ --bg-primary: #ffffff; --bg-secondary: #fafafa; --bg-tertiary: #f5f5f5; --bg-disabled: #f0f0f0; /* 边框颜色 */ --border-primary: #d9d9d9; --border-secondary: #f0f0f0; ``` ### 颜色使用规范 1. **主色使用**: 主要用于关键操作按钮、重要信息高亮、链接等 2. **功能色使用**: 严格按照语义使用,不可混淆 3. **中性色使用**: 用于文本、背景、边框等基础元素 4. **对比度**: 确保文本与背景的对比度符合 WCAG 2.0 标准(至少 4.5:1) --- ## 排版规范 ### 字体家族 ```css /* 默认字体栈 */ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; /* 等宽字体(代码、数字) */ font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace; ``` ### 字号规范 | 用途 | 字号 | 行高 | Tailwind Class | 使用场景 | |------|------|------|----------------|----------| | 特大标题 | 32px | 1.35 | `text-4xl` | 页面主标题 | | 大标题 | 24px | 1.35 | `text-2xl` | 区块标题 | | 中标题 | 20px | 1.4 | `text-xl` | 卡片标题 | | 小标题 | 16px | 1.5 | `text-base` | 表单标签 | | 正文 | 14px | 1.5714 | `text-sm` | 正文内容 | | 辅助文字 | 12px | 1.6667 | `text-xs` | 说明文字 | ### 字重规范 - **Regular (400)**: 正文内容 - **Medium (500)**: 表单标签、列表项 - **Semibold (600)**: 小标题、强调文本 - **Bold (700)**: 标题、重要信息 ### 文本颜色使用 ```jsx // 主要文本
主要内容
// 次要文本次要内容
// 辅助文本辅助说明
// 禁用文本禁用状态
``` --- ## 间距系统 ### 基础间距单位 基于 **8px** 网格系统,所有间距应为 8 的倍数。 | 名称 | 数值 | Tailwind Class | 用途 | |------|------|----------------|------| | xs | 4px | `space-1` / `p-1` / `m-1` | 紧凑间距 | | sm | 8px | `space-2` / `p-2` / `m-2` | 小间距 | | md | 16px | `space-4` / `p-4` / `m-4` | 标准间距 | | lg | 24px | `space-6` / `p-6` / `m-6` | 大间距 | | xl | 32px | `space-8` / `p-8` / `m-8` | 超大间距 | | 2xl | 48px | `space-12` / `p-12` / `m-12` | 区块间距 | ### 间距使用场景 1. **组件内边距**: 通常使用 12px (p-3) 或 16px (p-4) 2. **组件外边距**: 标准使用 16px (m-4) 或 24px (m-6) 3. **区块间距**: 使用 32px (mb-8) 或 48px (mb-12) 4. **栅格间距**: 标准使用 16px 或 24px --- ## 组件规范 ### 按钮 (Button) #### 类型与场景 ```jsx import { Button } from 'antd'; // 主要按钮 - 用于主要操作 // 次要按钮 - 用于次要操作 // 文本按钮 - 用于辅助操作 // 链接按钮 - 用于跳转 // 危险按钮 - 用于删除等危险操作 ``` #### 尺寸规范 - **Large**: 高度 40px,用于页面主要操作 - **Middle**: 高度 32px,默认尺寸 - **Small**: 高度 24px,用于紧凑场景 #### 使用规范 1. 一个操作区域最多只有一个主要按钮 2. 按钮文字应简洁明确,建议不超过 4 个字 3. 危险操作必须使用二次确认 4. 按钮组内按钮间距为 8px ### 表单 (Form) #### 布局规范 ```jsx import { Form, Input } from 'antd';