# Airhub 设计规范 (视觉标准) 🎨 > [!IMPORTANT] > 本文档严格区分 **App 全局规范** 与 **产品专属规范**。 > 开发人员 **必须** 在应用样式前确认当前页面所属的上下文。 --- ## 1. App 全局规范 (科技主题) 🌐 **适用范围**: `index.html` (首页), `bluetooth.html` (蓝牙搜索), `wifi-config.html` (配网) **核心风格**: 未来感、洁净、科技、蓝紫色调。 ### 首要行动点 (Global Primary Action) 用途:主连接按钮、配网流程的“下一步”。 - **渐变色**: `linear-gradient(90deg, #22D3EE 0%, #3B82F6 35%, #6366F1 65%, #8B5CF6 100%)` *(青 -> 蓝 -> 靛 -> 紫)* - **阴影**: `box-shadow: 0 0 15px rgba(34, 211, 238, 0.35)` ### 导航与头部 - **背景**: 透明或深度磨砂玻璃 (Glassmorphism)。 - **图标**: 细描边风格,冷灰色 `#6B7280`。 --- ## 2. 产品专属规范:毛绒机芯 (Capybara) 🐹 **适用范围**: `device-control.html` (设备控), `products.html` (卡片), 故事生成弹窗。 **核心风格**: 温暖、毛绒感、舒适、杏褐色调。 > [!NOTE] > 所有与控制“毛绒机芯”设备相关的页面/弹窗,必须强制遵循此主题。 ### 首要行动点 (Capybara Context) 用途:“创作新故事”、“开始生成”、设备页内的主要交互。 - **渐变色**: `linear-gradient(135deg, #ECCFA8 0%, #C99672 100%)` *(浅杏色 -> 暖褐色)* - **阴影**: `box-shadow: 0 0 15px rgba(201, 150, 114, 0.35), 0 0 30px rgba(201, 150, 114, 0.25)` (复合光晕) - **边框**: 无 (依靠阴影和光感定义边界) ### 背景色系统 - **设备页底色**: `#FDF9F3` (暖沙色 Warm Sand) - **禁止使用纯白或渐变**。 - **卡片背景**: `#FFFFFF` (奶白色) 配柔和阴影。 - **选中高亮**: `#FFF7ED` (极淡的橙色叠底)。 ### 字体颜色 (Capybara Context) - **标题**: `#4B2404` (黑巧棕)。 - **正文**: `#4B5563` (暖灰)。 ### 选中交互模式 (Apple Style) 🍏 - **操作方式**: 直接点击卡片。 - **指示器**: **右上角复选徽章 (Checkmark Badge)**。 - 样式:杏褐色渐变实心圆 + 白色对钩。 - **状态**: 摒弃“已选列表栏”,视觉反馈完全集中在卡片本体上。 --- ## 3. 开发执行规则 📏 1. **确认上下文**: 拿到设计稿先判断:这是 App 公共页面(用科技蓝)还是某个具体产品的页面(用产品色)? 2. **按钮混用禁令**: - 公共页 -> 必须用科技渐变 (Tech Gradient)。 - 卡皮巴拉页 -> 必须用毛绒渐变 (Plush Gradient)。 - 一致性: 严禁混搭。卡皮巴拉页面里绝不应该出现“科技蓝”的按钮,除非是系统级的报错弹窗。 --- ### 2.1 设置页规范 (Settings Page - Overlay) ⚙️ **交互模式**: 全屏覆盖层 (Full-screen Overlay),从底部滑入。 #### 核心布局 (Layout & Metrics) - **容器层级**: `z-index: 2000` (覆盖此时的主页)。 - **背景**: 暖色渐变 `linear-gradient(135deg, #FEF5EC 0%, #FDF2F8 100%)`。 - **进出动画**: `slideUp 0.3s cubic-bezier(0.2, 0.8, 0.2, 1)`。 #### 头部规范 (Header) 为了与主页保持视觉一致性,头部必须遵循以下严格计算: - **定位**: `position: absolute` (悬浮于内容之上)。 - **高度**: 自然高度 (Auto),不固定。 - **上边距 (Padding-Top)**: `calc(env(safe-area-inset-top, 20px) + 48px)` —— **严格对齐首页**。 - **底边距 (Padding-Bottom)**: `16px`。 - **左右边距**: `20px`。 #### 内容区域 (Content) - **遮罩效果**: 顶部使用渐变遮罩 (Gradient Mask) 实现内容在头部下方平滑消失,而非简单的背景色遮挡。 - `mask-image: linear-gradient(to bottom, transparent 0, transparent 80px, black 110px, ...)` - **上边距**: `calc(env(safe-area-inset-top) + 100px)` (确保内容不被头部遮挡)。 #### 弹窗规范 (Modals) 🚨 设置页内的二级操作(改名、解绑)必须使用以下弹窗样式: - **层级**: `z-index: 2200` (必须高于设置页)。 - **背景**: `rgba(255, 255, 255, 0.95)` (高透明度)。 - **动画**: 必须添加 `forwards` 属性防止闪退。 - `animation: popIn 0.3s ... forwards` - **交互**: - 必须设置 `pointer-events: auto`。 - 必须设置 `position: relative` 和独立 `z-index` 给内容元素。 - **点击阻断**: item 点击事件必须加 `event.stopPropagation()` 防止冒泡。 #### 组件样式 - **开关 (Toggle)**: 激活色 `#FFB088` (暖橙)。 - **滑动条 (Slider)**: 纯白滑块 + 投影,轨道背景 `#E5E5EA`。