# Claymorphism UI 优化文档
## 🎨 设计系统概述
### 什么是 Claymorphism(粘土拟态)?
Claymorphism 是一种结合了 **Neumorphism(新拟态)** 和 **3D 粘土质感** 的设计风格,具有以下特点:
- ✨ **双阴影效果**:外部阴影 + 内部阴影创造立体浮感
- 🎨 **柔和渐变**:使用 145deg 渐变创造有机感
- 🔄 **圆润边角**:大圆角设计传递柔和友好感
- 💫 **有机动画**:平滑的过渡和按压反馈
- 🌈 **高对比度**:保持可访问性的同时提供视觉吸引力
---
## 📦 组件库
### 核心组件
| 组件 | 文件路径 | 功能 |
|------|---------|------|
| **ClayCard** | `/components/ClayCard.vue` | 粘土风格卡片 |
| **ClayButton** | `/components/ClayButton.vue` | 粘土风格按钮 |
| **ClayInput** | `/components/ClayInput.vue` | 粘土风格输入框 |
### 使用示例
```vue
这是一张粘土卡片
```
---
## 🎯 组件 Props
### ClayCard
| 属性 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `size` | String | `'md'` | 尺寸:`sm`, `md`, `lg` |
| `variant` | String | `'default'` | 变体:`default`, `primary`, `gold` |
| `inset` | Boolean | `false` | 是否凹陷效果 |
| `customClass` | String | `''` | 自定义类名 |
| `customStyle` | Object | `{}` | 自定义样式 |
### ClayButton
| 属性 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `text` | String | `'按钮'` | 按钮文字 |
| `size` | String | `'md'` | 尺寸:`sm`, `md`, `lg` |
| `variant` | String | `'primary'` | 变体:`primary`, `secondary`, `success`, `warning`, `error` |
| `outline` | Boolean | `false` | 是否轮廓样式 |
| `block` | Boolean | `false` | 是否块级按钮 |
| `disabled` | Boolean | `false` | 是否禁用 |
| `loading` | Boolean | `false` | 是否加载中 |
| `icon` | String | `''` | 图标(emoji) |
| `customStyle` | Object | `{}` | 自定义样式 |
### ClayInput
| 属性 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `modelValue` | String/Number | `''` | v-model 绑定值 |
| `type` | String | `'text'` | 输入框类型 |
| `placeholder` | String | `'请输入'` | 占位符 |
| `size` | String | `'md'` | 尺寸:`sm`, `md`, `lg` |
| `disabled` | Boolean | `false` | 是否禁用 |
| `error` | Boolean | `false` | 是否错误状态 |
| `errorText` | String | `''` | 错误提示 |
| `clearable` | Boolean | `false` | 是否可清空 |
| `prefixIcon` | String | `''` | 前缀图标(emoji) |
| `suffixIcon` | String | `''` | 后缀图标(emoji) |
---
## 🎨 样式变量
在 `uni.scss` 中定义的核心变量:
```scss
/* Claymorphism 阴影层级 */
$clay-shadow-sm: (...)
$clay-shadow-md: (...)
$clay-shadow-lg: (...)
$clay-shadow-xl: (...)
/* 颜色变量 */
$clay-bg-light: #FAFAFA;
$clay-bg-white: #FFFFFF;
$clay-bg-soft: rgba(255, 255, 255, 0.85);
$clay-border: rgba(255, 255, 255, 0.8);
```
---
## 🔧 已优化的页面
### ✅ 首页 (`pages/index/index.vue`)
- Banner 轮播卡片
- 通知栏
- 玩法分类卡片
- 活动列表项
### ✅ 底部导航栏 (`components/app-tab-bar.vue`)
- 导航栏背景
- 图标容器(圆形徽章)
- 选中状态动画
### ✅ 个人中心 (`pages/mine/index.vue`)
- 用户信息卡片
- 头像凹陷效果
- 统计数据卡片
- 功能图标容器
---
## 🚀 快速开始
### 1. 配置 easycom(推荐)
在 `pages.json` 中添加:
```json
{
"easycom": {
"autoscan": true,
"custom": {
"^Clay(A.*)": "@/components/Clay$1.vue"
}
}
}
```
### 2. 直接使用组件
```vue
内容
```
### 3. 使用全局样式类
```vue
内容
按钮
凹陷卡片
```
---
## 🎨 设计原则
### ✅ 推荐做法
1. **保持一致性**:在整个应用中统一使用 Claymorphism 组件
2. **适度使用**:不要过度使用,保持界面呼吸感
3. **注意对比度**:确保文字与背景有足够的对比度
4. **动画平滑**:使用 `cubic-bezier(0.4, 0, 0.2, 1)` 缓动函数
5. **圆角统一**:卡片 24-32rpx,按钮 50-60rpx(圆角)
### ❌ 避免做法
1. **不要混合多种拟态风格**
2. **不要使用过多的彩色渐变**
3. **不要忽略深色模式适配**
4. **不要在小元素上使用粘土效果**
---
## 📱 兼容性
| 平台 | 支持情况 |
|------|----------|
| 微信小程序 | ✅ 完全支持 |
| 抖音小程序 | ✅ 完全支持 |
| H5 | ✅ 完全支持 |
| App | ✅ 完全支持 |
---
## 🔮 后续计划
- [ ] 添加更多组件:ClaySwitch、ClaySlider、ClayModal
- [ ] 深色模式适配
- [ ] 动画效果增强
- [ ] 性能优化
---
## 📝 更新日志
### v1.0.0 (2025-02-05)
- ✅ 初始化 Claymorphism 设计系统
- ✅ 创建核心组件:ClayCard、ClayButton、ClayInput
- ✅ 优化首页、个人中心、底部导航栏
- ✅ 添加全局样式变量和 Mixins
---
**设计团队**: Z Code AI Studio
**最后更新**: 2025-02-05