# 轻课记事小程序设计指南 ## 1. 品牌定位 - **应用定位**:轻量级移动端课时管理工具 - **设计风格**:简洁、实用、专业 - **目标用户**:培训机构、个人教师 - **核心功能**:登录验证、课时记录、学员管理、数据统计、按时间查看 ## 2. 配色方案 ### 主色调 - **主色 (Primary)**:`#1890ff` - 蓝色,用于主要按钮、标题强调 - **次要色 (Secondary)**:`#f5f5f5` - 浅灰,用于卡片背景、输入框背景 - **强调色 (Accent)**:`#52c41a` - 绿色,用于成功状态 - **警告色 (Destructive)**:`#ff4d4f` - 红色,用于错误、删除等操作 ### 中性色 - **文字主色**:`#333333` - 深灰 - **文字次要**:`#666666` - 中灰 - **文字辅助**:`#999999` - 浅灰 - **边框色**:`#e5e5e5` - 边框、分割线 - **背景色**:`#ffffff` - 页面背景 ### Tailwind 类名映射 ```css /* 颜色变量 */ --primary: #1890ff; --primary-foreground: #ffffff; --secondary: #f5f5f5; --secondary-foreground: #333333; --muted: #f5f5f5; --muted-foreground: #999999; --accent: #52c41a; --accent-foreground: #ffffff; --destructive: #ff4d4f; --destructive-foreground: #ffffff; --border: #e5e5e5; --input: #e5e5e5; --background: #ffffff; --foreground: #333333; ``` ## 3. 字体规范 - **标题**:text-lg (18px),font-semibold (600) - **正文**:text-sm (14px),font-normal (400) - **辅助文字**:text-xs (12px),text-muted-foreground - **数字金额**:font-mono,等宽显示 ## 4. 间距系统 - **页面边距**:px-4 (16px) - **卡片内边距**:p-4 (16px) - **组件间距**:gap-4 (16px) 或 mb-4 - **按钮高度**:h-11 (44px) - 适配触摸操作 - **输入框高度**:h-12 (48px) ## 5. 组件使用原则 ### 组件选型约束 - **通用组件优先**:按钮、输入框、弹窗、Tabs、Toast、Card 等通用组件必须优先使用 `@/components/ui/*` - **禁止手搓通用组件**:禁止使用 `View/Text` 手搓按钮、输入框、卡片等通用 UI - **业务组件按需**:页面结构容器使用 `@tarojs/components` ### 页面组件选型 创建或重写页面前,必须先判断页面里哪些区域应优先复用 `@/components/ui/*`: - 表单输入 → `Input`, `Field` - 提交按钮 → `Button` - 信息展示 → `Card`, `Badge` - 提示信息 → `Toast`, `Alert` - 日期选择 → `Calendar` - 空状态 → 自定义空状态组件(图标+文案) ## 6. 导航结构 ### 页面路由 ``` pages/login/index - 登录页面(默认) pages/index/index - 首页(功能入口) pages/student/index - 学员管理 pages/record/index - 课时录入 pages/report/index - 数据查看 ``` ### 页面跳转 - TabBar 内跳转:`Taro.switchTab()` - 普通页面跳转:`Taro.navigateTo()` - 返回上一页:`Taro.navigateBack()` ## 7. 容器样式原则 ### 卡片样式 ```tsx {/* 内容 */} ``` ### 页面容器 ```tsx {/* 内容 */} ``` ## 8. 状态展示 ### 加载态 - 使用 `Skeleton` 组件 - 骨架屏替代 loading 文字 ### 空状态 - 居中显示图标 - 主文案 + 副文案 - 可选操作按钮 ### 错误状态 - 红色警示图标 - 错误描述 - 重试按钮 ## 9. 小程序约束 ### 包体积 - 控制代码包在 2MB 以内 - 图片资源使用 TOS 对象存储 ### 性能优化 - 列表使用 `onEndReached` 加载更多 - 避免频繁 setData - 使用 `scroll-view` 优化长列表 ### 兼容处理 - Text 组件添加 `className="block"` - Input 组件外层 View 包裹 - Fixed 定位使用 inline style