diff --git a/.cursor/cursorrules-frontend.md b/.cursor/cursorrules-frontend.md index 0f2a6d7e..50c19924 100644 --- a/.cursor/cursorrules-frontend.md +++ b/.cursor/cursorrules-frontend.md @@ -16,11 +16,13 @@ - **框架**: Vue 3.5.13 + TypeScript 5.8.3 - **UI 组件库**: Element Plus 2.9.8 -- **构建工具**: Vite 7.0.9 -- **状态管理**: Pinia -- **路由管理**: Vue Router 4 -- **HTTP 客户端**: Axios -- **代码风格**: ESLint + Prettier +- **构建工具**: Vite 6.3.2 +- **状态管理**: Pinia 3.0.2 +- **路由管理**: Vue Router 4.5.0 +- **HTTP 客户端**: Axios 1.8.4 +- **代码风格**: ESLint 9.21.0 + Prettier 3.5.2 +- **样式预处理**: SCSS (Sass 1.87.0) +- **原子化 CSS**: UnoCSS 66.0.0 - **Node.js**: 20.15.x+ (推荐 20.15.0) - **npm**: 10.7.x+ @@ -37,31 +39,47 @@ 基于 Art Design Pro 的设计语言,追求现代化、精致、用户友好的界面体验。注重细节、动效和用户交互的流畅性。 -### 颜色系统 +### 颜色系统 🎨 -#### 主色调 (Primary Colors) +#### 主色调 (Primary Colors) - 2025 年最新版本 ```css ---art-primary: 93, 135, 255; /* 主品牌色 - 蓝色 */ ---art-secondary: 73, 190, 255; /* 辅助色 - 天蓝色 */ ---art-success: 19, 222, 185; /* 成功色 - 绿色 */ ---art-warning: 255, 174, 31; /* 警告色 - 橙色 */ ---art-error: 250, 137, 107; /* 错误色 - 红色 */ ---art-info: 83, 155, 255; /* 信息色 - 蓝色 */ ---art-danger: 255, 77, 79; /* 危险色 - 红色 */ +/* 亮色主题 */ +:root { + --art-primary: 50, 50, 222; /* 主品牌色 - 深蓝色 #3232de */ + --art-secondary: 73, 190, 255; /* 辅助色 - 天蓝色 #49beff */ + --art-success: 0, 167, 58; /* 成功色 - 绿色 #00a73a */ + --art-warning: 142, 91, 0; /* 警告色 - 橙色 #8e5b00 */ + --art-error: 250, 137, 107; /* 错误色 - 红色 #fa896b */ + --art-info: 0, 75, 178; /* 信息色 - 蓝色 #004bb2 */ + --art-danger: 255, 77, 79; /* 危险色 - 红色 #ff4d4f */ +} + +/* 暗色主题 */ +html.dark { + --art-primary: 93, 135, 255; /* 主品牌色 - 亮蓝色 #5d87ff */ + --art-secondary: 73, 190, 255; /* 辅助色 - 天蓝色 #49beff */ + --art-success: 19, 222, 185; /* 成功色 - 绿色 #13deb9 */ + --art-warning: 255, 174, 31; /* 警告色 - 橙色 #ffae1f */ + --art-error: 250, 137, 107; /* 错误色 - 红色 #fa896b */ + --art-info: 83, 155, 255; /* 信息色 - 蓝色 #539bff */ + --art-danger: 255, 77, 79; /* 危险色 - 红色 #ff4d4f */ +} ``` #### 背景色系统 ```css /* 浅色主题 */ ---art-bg-color: #fafbfc; /* 页面底色 */ ---art-main-bg-color: #ffffff; /* 主要内容背景 */ ---art-bg-primary: 236, 242, 255; /* 主色背景 */ ---art-bg-secondary: 232, 247, 255; /* 辅助背景 */ ---art-bg-success: 230, 255, 250; /* 成功背景 */ ---art-bg-warning: 254, 245, 229; /* 警告背景 */ ---art-bg-error: 253, 237, 232; /* 错误背景 */ +:root { + --art-bg-color: #fafbfc; /* 页面底色 */ + --art-main-bg-color: #ffffff; /* 主要内容背景 */ + --art-bg-primary: 236, 242, 255; /* 主色背景 */ + --art-bg-secondary: 232, 247, 255; /* 辅助背景 */ + --art-bg-success: 230, 255, 250; /* 成功背景 */ + --art-bg-warning: 254, 245, 229; /* 警告背景 */ + --art-bg-error: 253, 237, 232; /* 错误背景 */ +} /* 暗色主题 */ html.dark { @@ -70,7 +88,23 @@ html.dark { } ``` -### 轮廓式按钮设计系统 +#### 灰色系统 + +```css +:root { + --art-gray-100: #f9f9f9; /* 浅灰 */ + --art-gray-200: #f1f1f4; /* 较浅灰 */ + --art-gray-300: #dbdfe9; /* 中浅灰 */ + --art-gray-400: #c4cada; /* 中灰 */ + --art-gray-500: #99a1b7; /* 中深灰 */ + --art-gray-600: #78829d; /* 深灰 */ + --art-gray-700: #4b5675; /* 较深灰 */ + --art-gray-800: #252f4a; /* 很深灰 */ + --art-gray-900: #071437; /* 最深灰 */ +} +``` + +### 轮廓式按钮设计系统 🔘 #### 🎨 设计理念 @@ -91,6 +125,89 @@ html.dark { - **点击状态**: 98%缩放 + 0.1s 快速过渡 + 背景透明度变为 15% - **禁用状态**: 50%透明度,禁用所有交互和变换 +### 🔘 列表页面按钮使用规范(2025 年最新标准) + +#### 工具栏按钮规范 + +```vue + + +``` + +#### 操作列按钮规范 + +```vue + + + + +``` + +#### 按钮使用规范总结 + +| 位置 | 按钮类型 | 样式规范 | 示例 | +| -------------------- | ---------------- | ---------------------- | -------------------------------------------------------------- | +| 工具栏第一个新增按钮 | 新增 | `type="primary" plain` | `新增` | +| 工具栏其他按钮 | 修改/删除/导出等 | 无 type(默认) | `修改` | +| 表格操作列 | 所有操作按钮 | `link type="primary"` | `` | +| 弹窗底部 | 确认按钮 | `type="primary"` | `确定` | +| 弹窗底部 | 取消按钮 | 无 type(默认) | `取消` | + +### 圆角系统 + +```css +:root { + --border-radius-xs: 4px; /* 超小元素 (checkbox等) */ + --border-radius-sm: 6px; /* 小元素 (下拉选项、关闭按钮等) */ + --border-radius-md: 8px; /* 表单控件 (input、select、button等) */ + --border-radius-lg: 12px; /* 容器组件 (card、table、dialog等) */ + --border-radius-xl: 12px; + --border-radius-2xl: 16px; + --border-radius-full: 50%; +} +``` + +### 间距系统 + +```css +:root { + --space-xs: 4px; + --space-sm: 8px; + --space-md: 12px; + --space-lg: 16px; + --space-xl: 20px; + --space-2xl: 24px; + --space-3xl: 32px; + --space-4xl: 48px; + --space-5xl: 64px; +} +``` + ## 3. 组件开发规范 ### Vue 组件结构标准 @@ -175,10 +292,25 @@ onMounted(() => {