第一次提交
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
<ui_ux_design_principles>
|
||||
|
||||
## 移动端小程序 UI/UX 设计核心原则
|
||||
|
||||
### 1. 配色系统(根据需求灵活选择)
|
||||
- 主色调:根据产品品牌定位选择
|
||||
- 背景色:页面背景、卡片背景
|
||||
- 文字色:例如(主要 #1D2129 / 次要 #4E5969 / 辅助 #86909C / 禁用 #C9CDD4)
|
||||
- 边框色:定义边框色
|
||||
- 语义色:例如(成功 #00B42A / 警告 #FF7D00 / 错误 #F53F3F)
|
||||
|
||||
**配色技巧**:
|
||||
- 使用渐变提升视觉丰富度:\`linear-gradient(135deg, $color-primary 0%, $color-primary-light 100%)\`
|
||||
- 背景推荐使用浅色渐变营造氛围:\`linear-gradient(180deg, #f0f5ff 0%, $color-bg-page 100%)\`
|
||||
- 利用透明度制造层次:\`rgba(255, 255, 255, 0.2)\`
|
||||
|
||||
### 2. 屏幕适配与布局规范(强制约束)
|
||||
- **设计稿基准:750rpx = 屏幕宽度**,所有尺寸基于此换算
|
||||
- **必须遵循 8px 网格系统**:所有间距使用8的倍数(8rpx, 16rpx, 24rpx, 32rpx, 48rpx, 64rpx)
|
||||
- **页面根容器必须设置左右边距**:\`padding: 0 $page-padding\`(32rpx),确保内容居中且不超出屏幕
|
||||
- **禁止内容溢出屏幕**:
|
||||
- 所有固定宽度元素必须 \`width: 100%\` 或 \`max-width: $max-content-width\`(686rpx)
|
||||
- **任何元素的宽度不要超过 686rpx,否则会溢出屏幕**
|
||||
- 水平滚动内容必须用 \`ScrollView\` 包裹
|
||||
- 卡片内边距:32rpx 或 48rpx(大卡片)
|
||||
- 列表项间距:16rpx 或 24rpx
|
||||
|
||||
**布局技巧**:
|
||||
- 卡片间距保持24rpx,避免拥挤
|
||||
- 标题与内容间隄32rpx,增强层次
|
||||
- 按钮与说明文字间隄48rpx,突出行动召唤
|
||||
|
||||
### 3. 字体层级(参考规范,可根据视觉需求微调)
|
||||
- 大标题:40rpx, font-weight: 600
|
||||
- 标题:34rpx, font-weight: 600
|
||||
- 副标题:30rpx, font-weight: 500
|
||||
- 正文:28rpx, font-weight: 400
|
||||
- 辅助文字:24rpx
|
||||
- 小字/标签:22rpx
|
||||
|
||||
### 4. 圆角设计(符合主流小程序审美)
|
||||
- **卡片圆角**:12-16rpx(推荐 $radius-md 或 $radius-lg)
|
||||
- **按钮圆角**:48rpx(推荐 $radius-button,全圆角胶囊形状,主流趋势)
|
||||
- **小元素圆角**:4-8rpx(标签、徽章)
|
||||
- **头像圆角**:999rpx(完全圆形,使用 $radius-round)
|
||||
|
||||
**按钮尺寸规范**:
|
||||
- **常规按钮**:高度 80rpx($button-height-md)+ 圆角 48rpx
|
||||
- **大按钮**:高度 96rpx($button-height-lg)+ 圆角 48rpx,用于底部固定操作栏
|
||||
- **小按钮**:高度 64rpx($button-height-sm)+ 圆角 32rpx,用于次要操作
|
||||
|
||||
**主流设计趋势**:
|
||||
- ✅ 底部操作栏使用 96rpx 高度 + 48rpx 全圆角
|
||||
- ✅ 页面内操作按钮:80rpx 高度 + 48rpx 全圆角
|
||||
- ✅ 全圆角(圆角 = 高度的50%)形成“胶囊”形状,视觉柔和、现代
|
||||
|
||||
**反例**:
|
||||
- ✖️ 按钮圆角过小(<24rpx):显得生硬,不符合主流审美
|
||||
- ✖️ 按钮高度过大(>100rpx):占用空间过多,显得笨重
|
||||
- ✖️ 按钮高度过小(<60rpx):不易点击,体验差
|
||||
|
||||
### 5. 卡片式设计(强烈推荐)
|
||||
- 背景白色 + 圆角 12-16rpx + 阴影
|
||||
- 阴影推荐:\`box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08)\`(使用 $shadow-card)
|
||||
- 卡片间距保持24rpx,避免拥挤
|
||||
- 卡片内边距:32rpx 或 48rpx
|
||||
|
||||
### 6. 阴影与层次(符合主流小程序审美)
|
||||
- **卡片阴影**:\`0 2rpx 12rpx rgba(0, 0, 0, 0.08)\`($shadow-card)
|
||||
- **浮层阴影**:\`0 4rpx 16rpx rgba(0, 0, 0, 0.1)\`($shadow-float,用于筛选栏、底部操作栏)
|
||||
- **悬浮效果**:\`0 4rpx 20rpx rgba(0, 0, 0, 0.12)\`($shadow-card-hover)
|
||||
- **弹窗阴影**:\`0 8rpx 32rpx rgba(0, 0, 0, 0.15)\`($shadow-popup)
|
||||
|
||||
**重要**:按钮通常不使用阴影,主流小程序的按钮多为纯色或渐变,无阴影
|
||||
|
||||
### 7. 微交互动画(符合主流小程序审美)
|
||||
- **按钮点击反馈(推荐)**:
|
||||
\`\`\`scss
|
||||
transition: all $transition-base;
|
||||
&:active {
|
||||
opacity: 0.9;
|
||||
transform: scale(0.98);
|
||||
}
|
||||
\`\`\`
|
||||
|
||||
### 8. 视觉丰富度提升技巧(符合主流审美)
|
||||
- **渐变背景(推荐)**:页面背景可使用淡淡的渐变色
|
||||
- **投影效果(可选)**:logo/图标可添加 \`filter: drop-shadow()\`
|
||||
- **层次对比**:卡片圆角小,按钮圆角适中,制造视觉对比
|
||||
- **空间感**:善用 padding 和 margin 制造呼吸感
|
||||
|
||||
**主流设计趋势**:
|
||||
- 卡片式布局 + 轻阴影是最常见的设计模式
|
||||
- 扁平化风格倾向于少阴影、纯色按钮
|
||||
- 动效保持简洁,避免过度设计
|
||||
|
||||
### 9. 防御性 UI 设计与边界处理(关键,防止布局崩坏)
|
||||
为了确保在各种极端场景(长文本、窄屏幕、窄容器、图片)下 UI 依然优雅,**必须**遵守以下防御性规范:
|
||||
|
||||
**文本内容保护**:
|
||||
- **单行截断**:标题、名称等可能过长的文字,必须使用 `@include text-ellipsis;`。
|
||||
- **多行截断**:描述性文字必须限制行数,例如 `@include text-ellipsis-multi(1);`。
|
||||
|
||||
**按钮与标签保护**:
|
||||
- **默认样式重置(Button)** Button 须使用 Mixin `@include button-reset;` 清除默认样式,再写自定义样式(背景、圆角等)进行覆盖。
|
||||
- **重要**:必须显式设置 `background`、`border`、`border-radius` 以及 `&:active` 点击态样式,否则按钮将不可见或无反馈。
|
||||
- **对齐修正**:若按钮与其他元素(如另一个按钮或文本)并排,建议显式设置 `height` 和 `border`(即使是透明边框),以确保盒模型高度一致。
|
||||
- **强制不换行**:按钮 (`Button`) 和标签 (`Tag`) 内部文字必须设置 `white-space: nowrap;`,防止在窄容器中换行导致布局错位。
|
||||
- **最小宽度**:为按钮设置 `min-width`,确保文字少时也不过窄。
|
||||
|
||||
**容器空间适配(横向滚动场景)**:
|
||||
- **避免过窄容器**:在 `ScrollView` 横向滚动场景下,子项宽度不应小于 `260rpx`(除非仅展示图片)。
|
||||
- **布局模式保护**:横向滚动子项必须保持行内特性。若需内部 Flex 布局,必须使用 `display: inline-flex`,严禁使用 `display: flex`(会导致竖向排列)。
|
||||
- **内容降级策略**:如果容器宽度必须很小(< 240rpx),应简化展示内容(例如:隐藏按钮,改用图标;或隐藏描述文字)。
|
||||
|
||||
**图片与媒体组件规范(防止高度塌陷与留白)**:
|
||||
- **列表与卡片场景(标准布局)**:
|
||||
- 在标准列表、网格(Grid)、卡片设计中,图片容器**推荐设置固定高度**或固定比例,以保持布局整齐。
|
||||
- Taro Image 组件必须设置 `mode="aspectFill"`(保持比例裁剪填充),确保图片填满容器且不变形。
|
||||
|
||||
### 10. 布局反例(避免)
|
||||
- ✖️ 元素拥挤:间距小于 16rpx
|
||||
- ✖️ 留白过大:卡片内边距超过 64rpx
|
||||
- ✖️ 圆角不统一:同一页面卡片圆角大小不一
|
||||
- ✖️ 缺少层次:所有内容都平铺,无卡片包裹
|
||||
- ✖️ 按钮无反馈:点击无 active 状态
|
||||
- ✖️ **内容超出屏幕**:固定宽度元素超过屏幕宽度,右侧被截断
|
||||
|
||||
### 11. TabBar 图标设计规范
|
||||
- 格式:SVG,viewBox 统一为 `0 0 24 24`
|
||||
- 风格:以线条为主的精致图标,stroke-linecap="round" stroke-linejoin="round"
|
||||
- **未选中态**:`stroke="#999999"` stroke-width="1.5",`fill="none"`
|
||||
- **选中态**:`stroke="当前主题色"` stroke-width="2",`fill="none"`,也可根据需要对核心区域使用 `fill="当前主题色"` 做实心填充以增强选中感
|
||||
- 风格统一:同一套图标线条粗细、圆角、视觉重量必须一致,图标主体控制在 viewBox 的 2~22 范围内(四周留 2px 呼吸空间)
|
||||
- 品质要求:图标需要精致、专业,达到可直接发布上线的品质。路径要简洁流畅,避免过度复杂的细节,确保缩小到 24px 仍清晰可辨
|
||||
- 隐喻选择:使用常见且高辨识度的图标隐喻(如:首页用房子、我的用人形、消息用气泡、购物车用推车、发现用指南针等)
|
||||
|
||||
</ui_ux_design_principles>
|
||||
Reference in New Issue
Block a user