Files
ai-password-manager/docs/figma-ai-animations-spec.md
richarjiang b5d4724d06 feat(docs): add comprehensive design system and AI password manager architecture
- Add complete Figma design system with color, typography, and component specifications
- Create detailed UI/UX design architecture for React Native implementation
- Include AI-specific design elements with gradients, animations, and visual language
- Add implementation guides for developers and step-by-step Figma instructions
- Configure MCP server integration for Figma design workflow
- Create SplashScreen component with AI gradient background and loading animations
2025-07-22 10:07:39 +08:00

513 lines
10 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.

# AI密码管理器 - AI元素与动画效果规范
## 🤖 AI视觉元素设计
### 1. AI渐变色系统
#### 主要AI渐变
```
AI/Primary:
- 角度135度
- 起始色:#667eea (蓝紫色)
- 结束色:#764ba2 (深紫色)
- 用途主要AI功能、按钮、卡片背景
AI/Secondary:
- 角度135度
- 起始色:#f093fb (粉紫色)
- 结束色:#f5576c (珊瑚红)
- 用途次要AI功能、强调元素
AI/Accent:
- 角度135度
- 起始色:#4facfe (天蓝色)
- 结束色:#00f2fe (青色)
- 用途AI状态指示、进度条、特殊效果
```
#### 渐变应用场景
- **AI助手卡片背景**使用AI/Primary渐变
- **AI功能按钮**使用AI/Primary渐变 + 发光效果
- **智能搜索栏AI图标**使用AI/Primary渐变
- **AI建议徽章**使用AI/Secondary渐变
- **AI处理进度条**使用AI/Accent渐变
### 2. AI发光效果系统
#### 基础发光效果
```
AI/Glow/Subtle (微妙发光):
- 类型:外发光 (Drop Shadow)
- 颜色:#667eea
- X偏移0px
- Y偏移0px
- 模糊6px
- 扩散1px
- 透明度25%
AI/Glow/Medium (中等发光):
- 类型:外发光
- 颜色:#667eea
- X偏移0px
- Y偏移0px
- 模糊12px
- 扩散2px
- 透明度35%
AI/Glow/Strong (强发光):
- 类型:外发光
- 颜色:#667eea
- X偏移0px
- Y偏移0px
- 模糊20px
- 扩散4px
- 透明度45%
```
#### 发光应用规则
- **AI按钮默认状态**使用Subtle发光
- **AI按钮悬停状态**使用Medium发光
- **AI功能激活状态**使用Strong发光
- **AI徽章**使用Subtle发光
- **AI处理中状态**使用Medium发光 + 脉冲动画
### 3. AI图标系统
#### AI机器人图标
```
设计规范:
- 基础尺寸24×24px
- 线条粗细2px
- 圆角2px
- 颜色AI渐变填充或单色
图标元素:
- 头部:圆角矩形
- 眼睛:两个小圆点
- 嘴部:小横线
- 身体:矩形
- 天线:顶部两个小点
状态变化:
- 默认静态AI渐变
- 思考中:眼睛闪烁动画
- 处理中:整体脉冲动画
- 完成:短暂的发光效果
```
#### AI徽章设计
```
尺寸32×16px
背景AI/Primary渐变
圆角8px
文字:"AI"
字体10px, Bold
颜色:白色
效果AI/Glow/Subtle
变体:
- 小尺寸24×12px8px字体
- 大尺寸40×20px12px字体
- 圆形16×16px圆形"AI"居中
```
### 4. 智能状态指示器
#### AI处理状态
```
等待状态:
- AI图标静态AI/Primary渐变
- 文字:"AI准备就绪"
- 颜色Gray/500
思考状态:
- AI图标缓慢脉冲动画
- 文字:"AI正在分析..."
- 颜色AI/Primary
- 动画1.5s循环透明度60%-100%
处理状态:
- AI图标快速脉冲 + 旋转
- 文字:"AI正在处理..."
- 颜色AI/Accent
- 动画0.8s循环,多重效果
完成状态:
- AI图标短暂强发光
- 文字:"AI分析完成"
- 颜色Security/High
- 动画:一次性发光效果
```
## 🎬 动画效果系统
### 1. 基础动画参数
#### 时长标准
```
微交互 (Micro): 150ms
- 按钮点击反馈
- 开关切换
- 小图标变化
快速 (Fast): 200ms
- 卡片悬停效果
- 颜色变化
- 小组件状态切换
标准 (Normal): 300ms
- 页面转场
- 模态框出现/消失
- 大组件状态变化
慢速 (Slow): 500ms
- 复杂动画
- 多步骤动画
- 强调性动画
```
#### 缓动函数
```
Ease Out: 快速开始,缓慢结束
- 用途:元素进入、按钮反馈
- 贝塞尔cubic-bezier(0.25, 0.46, 0.45, 0.94)
Ease In: 缓慢开始,快速结束
- 用途:元素退出、消失动画
- 贝塞尔cubic-bezier(0.55, 0.055, 0.675, 0.19)
Ease In Out: 两端缓慢,中间快速
- 用途:状态切换、循环动画
- 贝塞尔cubic-bezier(0.645, 0.045, 0.355, 1)
AI Bounce: AI特有的弹性效果
- 用途AI功能激活、完成反馈
- 贝塞尔cubic-bezier(0.68, -0.55, 0.265, 1.55)
```
### 2. 页面转场动画
#### 推入转场 (Push Transition)
```
动画类型Smart Animate
时长300ms
缓动Ease Out
效果:
- 新页面从右侧滑入
- 当前页面向左滑出
- 同时进行,无重叠
适用场景:
- 主要页面导航
- 详情页面进入
- 设置页面导航
```
#### 模态转场 (Modal Transition)
```
动画类型Dissolve + Move In
时长250ms
缓动Ease Out
效果:
- 背景遮罩淡入 (透明度0→40%)
- 模态框从底部滑入
- 轻微的缩放效果 (95%→100%)
适用场景:
- 底部抽屉
- 确认对话框
- 操作菜单
```
### 3. AI特效动画
#### 脉冲呼吸动画 (AI Pulse)
```
动画类型Scale + Opacity
时长1.5s
循环:无限
缓动Ease In Out
关键帧:
0%: Scale 1.0, Opacity 1.0
50%: Scale 1.05, Opacity 0.7
100%: Scale 1.0, Opacity 1.0
应用场景:
- AI思考状态
- 等待AI响应
- AI功能激活提示
```
#### 渐变流动动画 (Gradient Flow)
```
动画类型Background Position
时长3s
循环:无限
缓动Linear
效果:
- 渐变背景位置移动
- 创造流动光效
- 角度保持135度不变
实现方式:
- 创建更大的渐变背景
- 通过遮罩控制可见区域
- 背景位置循环移动
应用场景:
- AI卡片背景
- AI按钮激活状态
- AI处理进度指示
```
#### 粒子扫描动画 (Particle Scan)
```
动画类型Position + Opacity + Scale
时长2s
循环:无限
缓动Ease In Out
粒子属性:
- 数量8-12个
- 尺寸2-4px圆点
- 颜色AI/Accent渐变
- 轨迹:弧形或直线
运动模式:
- 从左到右扫过
- 透明度渐变
- 轻微的缩放变化
应用场景:
- 安全扫描过程
- AI分析进度
- 数据处理状态
```
### 4. 交互反馈动画
#### 按钮点击反馈
```
AI Button 点击:
1. 按下Scale 0.98 (150ms, Ease Out)
2. 释放Scale 1.0 + 发光增强 (200ms, AI Bounce)
3. 完成:发光恢复正常 (300ms, Ease Out)
Primary Button 点击:
1. 按下Scale 0.98 + 颜色加深 (150ms, Ease Out)
2. 释放Scale 1.0 + 颜色恢复 (200ms, Ease Out)
Secondary Button 点击:
1. 按下:背景色出现 (150ms, Ease Out)
2. 释放:背景色消失 (200ms, Ease Out)
```
#### 卡片交互反馈
```
悬停效果:
- 阴影Shadow/MD → Shadow/LG (200ms, Ease Out)
- 位移Y轴向上2px (200ms, Ease Out)
点击效果:
- 缩放Scale 0.98 (150ms, Ease Out)
- 阴影Shadow/LG → Shadow/SM (150ms, Ease Out)
AI卡片特殊效果
- 悬停:发光效果增强 (200ms, Ease Out)
- 点击:短暂的渐变流动加速
```
#### 开关切换动画
```
滑块移动:
- 距离24px (开关宽度 - 滑块宽度)
- 时长200ms
- 缓动Ease In Out
轨道颜色变化:
- 同步进行
- Gray/300 ↔ Primary/500
- 时长200ms
状态指示:
- 开启:轻微的发光效果
- 关闭:发光消失
```
### 5. 加载动画
#### 旋转加载器 (Spinner)
```
基础版本:
- 圆环2px线宽Primary/500颜色
- 旋转360度1sLinear无限循环
- 尺寸24×24px或32×32px
AI版本
- 圆环AI/Primary渐变
- 旋转360度1.2sEase In Out无限循环
- 发光AI/Glow/Subtle
- 脉冲:配合旋转的透明度变化
```
#### 骨架屏动画 (Skeleton)
```
基础效果:
- 背景Gray/200
- 动画:从左到右的光泽扫过
- 时长1.5s,无限循环
光泽效果:
- 宽度100px
- 颜色:白色渐变 (透明→50%→透明)
- 移动:从-100px到容器宽度+100px
- 缓动Ease In Out
```
#### 进度条动画
```
线性进度:
- 宽度变化0% → 目标百分比
- 时长:根据进度值计算 (最长2s)
- 缓动Ease Out
AI进度条
- 基础进度AI/Accent渐变
- 流动效果:渐变位置移动
- 脉冲效果:轻微的高度变化
```
### 6. 状态转换动画
#### 密码强度变化
```
圆点填充动画:
- 每个圆点依次填充
- 间隔100ms
- 颜色渐变Gray/300 → 目标颜色
- 缩放:轻微的放大效果 (1.0 → 1.1 → 1.0)
强度提升特效:
- 新填充的圆点:短暂发光
- 颜色变化:平滑过渡
- 完成时:整体轻微脉冲
```
#### 安全评分变化
```
圆形进度条:
- 进度弧度:平滑增长
- 时长1.5s
- 缓动Ease Out
数字计数:
- 从当前值到目标值
- 时长1s
- 缓动Ease Out
- 数字跳动效果
评分提升庆祝:
- 完成时:短暂的发光效果
- 粒子效果:小星星从中心散开
- 颜色变化:根据新评分调整
```
### 7. AI功能专用动画
#### 语音识别动画
```
麦克风图标:
- 基础:静态状态
- 激活:脉冲动画 + 发光
- 识别中:音波扩散效果
- 完成:短暂的成功发光
音波效果:
- 3个同心圆
- 依次扩散
- 透明度100% → 0%
- 时长1s无限循环
```
#### AI分析动画
```
分析过程:
1. 数据收集:粒子向中心聚集
2. 处理中:中心旋转 + 脉冲
3. 结果生成:粒子向外扩散
4. 完成:结果卡片滑入
时长分配:
- 收集1s
- 处理2-3s (根据实际处理时间)
- 生成0.5s
- 完成0.3s
```
#### 智能建议出现
```
建议卡片动画:
1. 从底部滑入 (300ms, Ease Out)
2. 轻微的弹性效果 (AI Bounce)
3. 发光效果渐现 (200ms)
4. 内容文字依次显示 (每行间隔100ms)
特殊效果:
- 背景渐变流动
- 边框发光脉冲
- AI图标旋转
```
## 🎯 动画实施指南
### Figma中的动画设置
#### Smart Animate设置
```
1. 创建组件的多个状态
2. 确保图层命名一致
3. 设置Prototype连接
4. 选择Smart Animate
5. 调整时长和缓动
```
#### 复杂动画实现
```
1. 使用多个中间帧
2. 创建动画序列
3. 利用延迟设置
4. 组合多种动画类型
```
### 开发实现建议
#### React Native Reanimated
```javascript
// AI脉冲动画示例
const pulseAnimation = useSharedValue(1);
useEffect(() => {
pulseAnimation.value = withRepeat(
withTiming(1.05, { duration: 750 }),
-1,
true
);
}, []);
const animatedStyle = useAnimatedStyle(() => ({
transform: [{ scale: pulseAnimation.value }],
opacity: interpolate(pulseAnimation.value, [1, 1.05], [1, 0.7])
}));
```
#### 性能优化
- 使用原生动画驱动
- 避免在主线程执行动画
- 合理控制同时运行的动画数量
- 使用shouldRasterizeIOS优化复杂动画
这个AI元素和动画规范确保了整个密码管理器界面具有一致的AI视觉语言和流畅的用户体验同时体现了未来感和科技感。