Private
Public Access
1
0
Files
u-desk/docs/07-项目管理/项目规划/action-area-redesign.md

490 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 操作区域重新设计
## 设计理念
### 从"按钮"到"操作卡片"
传统按钮虽然常见,但缺乏信息层次和视觉吸引力。我们采用**卡片式操作区域**,提供:
- ✅ 更大的点击区域
- ✅ 更清晰的说明文字
- ✅ 更丰富的视觉信息
- ✅ 更现代的设计风格
---
## 优化前后对比
### 优化前(传统按钮)
```
┌──────────────────────────────────────────────┐
│ │
│ [ 跳过此版本 ] │ ← 传统按钮
│ [ 立即更新 ↓ ] │
│ │
│ ☐ 提醒我稍后更新 │ ← 复选框
└──────────────────────────────────────────────┘
```
**问题:**
- 信息量少,只显示操作名称
- 说明文字(复选框)分离,不连贯
- 视觉单调,缺乏层次
- 点击区域较小
### 优化后(操作卡片)
```
┌──────────────────────────────────────────────┐
│ │
│ ┌────────────────────────────────────────┐ │
│ │ ✕ 稍后更新 │ │ ← 图标 + 标题 + 说明
│ │ 跳过此版本,下次启动时再提醒 │ │
│ └────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────┐ │
│ │ ↓ 立即更新到最新版本 → │ │ ← 主操作(突出)
│ │ 点击下载 45.2 MB 安装包 │ │
│ └────────────────────────────────────────┘ │
│ │
│ ☐ 下次启动时继续提醒我 │ ← 提醒选项
└──────────────────────────────────────────────┘
```
**优势:**
- 每个操作都有清晰的说明
- 信息层次分明(图标 + 标题 + 描述)
- 更大的点击区域
- 视觉更丰富、更现代
---
## 设计细节
### 1. 稍后更新(次要操作)
```vue
<div class="action-item skip-action" @click="handleSkip">
<div class="action-content">
<icon-close class="action-icon" />
<div class="action-text">
<div class="action-title">稍后更新</div>
<div class="action-desc">跳过此版本下次启动时再提醒</div>
</div>
</div>
</div>
```
**样式:**
- 图标:关闭图标(✕)- 表示跳过
- 背景:浅灰色(`var(--color-fill-3)`
- 悬停效果:轻微上移
- 说明文字:灰色小字
### 2. 立即更新(主要操作)
```vue
<div class="action-item primary-action" @click="handleDownload">
<div class="action-content">
<icon-download class="action-icon" />
<div class="action-text">
<div class="action-title">立即更新到最新版本</div>
<div class="action-desc">点击下载 45.2 MB 安装包</div>
</div>
<div class="action-arrow">
<icon-arrow-right />
</div>
</div>
</div>
```
**样式:**
- 图标:下载图标(↓)- 蓝色背景
- 背景:主题色背景(`var(--color-primary-light-1)`
- 右侧箭头:→ 表示进入下一步
- 悬停效果:
- 背景变为主题色
- 图标变为白色
- 箭头向右移动
### 3. 安装中状态
```vue
<div class="action-item installing-action">
<div class="action-content">
<icon-loading class="action-icon spinning" />
<div class="action-text">
<div class="action-title">正在安装更新</div>
<div class="action-desc">安装完成后应用将自动重启请稍候...</div>
</div>
</div>
</div>
```
**样式:**
- 图标:加载图标(旋转动画)
- 背景:绿色背景(成功色)
- 不可点击(`pointer-events: none`
- 图标旋转动画
---
## 交互设计
### 悬停效果
**普通状态:**
```
┌────────────────────────────────────────┐
│ ↓ 立即更新到最新版本 → │
│ 点击下载 45.2 MB 安装包 │
└────────────────────────────────────────┘
背景:浅色
图标:蓝色背景,白色图标
箭头:深灰色,固定位置
```
**悬停状态:**
```
┌────────────────────────────────────────┐
│ ↓ 立即更新到最新版本 → │ ← 箭头右移
│ 点击下载 45.2 MB 安装包 │
└────────────────────────────────────────┘
背景:主题色
图标:白色背景,蓝色图标
箭头:主题色,向右移动 4px
```
### 点击反馈
```
悬停 → 上移 1px
点击 → 下移 0px回到原位
```
### 加载状态
```
┌────────────────────────────────────────┐
│ ⟳ 立即更新到最新版本 │ ← 图标脉冲动画
│ 正在准备下载... │
└────────────────────────────────────────┘
不透明度0.6
不可点击
```
---
## 完整样式代码
```css
.action-section {
display: flex;
flex-direction: column;
gap: 12px;
}
.action-item {
background: var(--color-fill-1);
border: 1px solid var(--color-border-1);
border-radius: 8px;
padding: 16px;
cursor: pointer;
transition: all 0.2s ease;
&:hover {
background: var(--color-fill-2);
border-color: var(--color-border-2);
transform: translateY(-1px);
}
&:active {
transform: translateY(0);
}
.action-content {
display: flex;
align-items: center;
gap: 12px;
}
.action-icon {
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
background: var(--color-fill-3);
color: var(--color-text-2);
border-radius: 8px;
font-size: 18px;
flex-shrink: 0;
}
.action-text {
flex: 1;
}
.action-title {
font-size: 14px;
font-weight: 500;
color: var(--color-text-1);
margin-bottom: 2px;
}
.action-desc {
font-size: 12px;
color: var(--color-text-3);
}
.action-arrow {
color: var(--color-text-3);
font-size: 16px;
transition: all 0.2s ease;
}
&:hover .action-arrow {
color: var(--color-text-1);
transform: translateX(4px);
}
}
.primary-action {
background: var(--color-fill-2);
border-color: var(--color-border-2);
.action-icon {
background: var(--color-primary-light-1);
color: var(--color-primary-6);
}
&:hover {
background: var(--color-primary-light-1);
border-color: var(--color-primary-3);
.action-icon {
background: var(--color-primary-6);
color: white;
}
.action-title {
color: var(--color-primary-6);
}
}
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.6; }
}
```
---
## 强制更新场景
### 优化前
```
┌──────────────────────────────────────────────┐
│ [ 立即更新 ] │ ← 只有一个按钮
└──────────────────────────────────────────────┘
```
### 优化后
```
┌──────────────────────────────────────────────┐
│ │
│ ┌────────────────────────────────────────┐ │
│ │ ↓ 立即更新到最新版本 → │ │ ← 卡片式操作
│ │ 点击下载 45.2 MB 安装包 │ │
│ └────────────────────────────────────────┘ │
│ │
│ ⚠️ 重要提示 │
│ 此版本包含重要的安全更新和问题修复... │
└──────────────────────────────────────────────┘
```
**改进:**
- 不再是冷冰冰的单个按钮
- 提供更多上下文信息
- 更大的点击区域
- 更友好的引导
---
## 响应式设计
### 大屏幕(> 600px
```
┌────────────────────────────────────────────┐
│ ✕ 稍后更新 │
│ 跳过此版本,下次启动时再提醒 │
└────────────────────────────────────────────┘
┌────────────────────────────────────────────┐
│ ↓ 立即更新到最新版本 → │
│ 点击下载 45.2 MB 安装包 │
└────────────────────────────────────────────┘
```
### 小屏幕(< 600px
```
布局保持一致,卡片宽度自适应
```
---
## 可访问性
### 键盘导航
- ✅ Tab 键切换焦点
- ✅ Enter/Space 键激活
- ✅ 清晰的焦点指示器
### 屏幕阅读器
- ✅ 语义化的结构
- ✅ 清晰的标签和描述
- ✅ 视觉和文本信息一致
### 对比度
- ✅ 标题文字对比度 > 4.5:1
- ✅ 描述文字对比度 > 4.5:1
- ✅ 图标与背景对比度 > 3:1
---
## 动画效果
### 1. 悬停上移
```css
transform: translateY(-1px);
```
**目的:** 提供视觉反馈,表示可点击
### 2. 箭头移动
```css
transform: translateX(4px);
```
**目的:** 强调进入下一步的操作
### 3. 图标旋转(安装中)
```css
animation: spin 1s linear infinite;
```
**目的:** 表示正在进行中
### 4. 图标脉冲(准备中)
```css
animation: pulse 1.5s ease-in-out infinite;
```
**目的:** 表示等待响应
---
## 视觉层次
### 信息密度
```
图标40×40→ 标题14px→ 描述12px→ 箭头16px
↓ ↓ ↓ ↓
视觉焦点 主要信息 辅助说明 方向指示
```
### 颜色层次
```
主要操作:主题色背景 + 蓝色图标
次要操作:灰色背景 + 灰色图标
安装中:绿色背景 + 绿色图标
```
---
## 用户体验提升
### 优化前
- ❌ 只显示操作名称
- ❌ 不清楚操作后果
- ❌ 点击区域小
- ❌ 视觉单调
### 优化后
- ✅ 操作 + 说明文字
- ✅ 清晰的上下文信息
- ✅ 整个卡片可点击
- ✅ 丰富的视觉反馈
### 数据对比
| 维度 | 优化前 | 优化后 |
|------|--------|--------|
| 信息量 | 少 | 丰富 |
| 点击区域 | 100×32px | 整个卡片 |
| 视觉层次 | 单层 | 三层(图标/标题/描述) |
| 交互反馈 | 简单 | 丰富 |
---
## 实现代码
### 模板部分
```vue
<!-- 操作区域 -->
<div class="action-section">
<!-- 稍后更新 -->
<div class="action-item skip-action" @click="handleSkip">
<div class="action-content">
<icon-close class="action-icon" />
<div class="action-text">
<div class="action-title">稍后更新</div>
<div class="action-desc">跳过此版本下次启动时再提醒</div>
</div>
</div>
</div>
<!-- 立即更新 -->
<div class="action-item primary-action" @click="handleDownload">
<div class="action-content">
<icon-download class="action-icon" />
<div class="action-text">
<div class="action-title">立即更新到最新版本</div>
<div class="action-desc">点击下载 {{ formatFileSize(fileSize) }} 安装包</div>
</div>
<div class="action-arrow">
<icon-arrow-right />
</div>
</div>
</div>
</div>
```
### 样式部分
见上方"完整样式代码"
---
## 总结
### 核心改进
1.**信息更丰富** - 标题 + 描述文字
2.**视觉更现代** - 卡片式设计
3.**操作更友好** - 大点击区域
4.**反馈更及时** - 丰富的悬停效果
### 设计原则
> 让用户清楚知道每个操作的含义和后果
### 用户体验
- 清晰的信息层次
- 大的点击区域
- 丰富的视觉反馈
- 现代的设计风格
---
**操作区域重新设计完成!** 🎉