Files
ai-password-manager/CLAUDE.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

385 lines
9.2 KiB
Markdown
Raw Permalink 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密码管理器 - Figma设计系统集成规则
## 项目概述
这是一个基于React Native Expo的AI驱动密码管理器项目需要与Figma设计系统无缝集成。
## 设计系统结构
### 1. Token定义
#### 颜色令牌 (Colors)
位置:[`constants/Colors.ts`](constants/Colors.ts)
当前结构:
```typescript
export const Colors = {
light: {
text: '#11181C',
background: '#fff',
tint: '#0a7ea4',
icon: '#687076',
tabIconDefault: '#687076',
tabIconSelected: '#0a7ea4',
},
dark: {
text: '#ECEDEE',
background: '#151718',
tint: '#fff',
icon: '#9BA1A6',
tabIconDefault: '#9BA1A6',
tabIconSelected: '#fff',
},
};
```
**需要扩展为AI密码管理器的完整颜色系统**
```typescript
export const Colors = {
// 主色调
primary: {
50: '#f0f9ff',
100: '#e0f2fe',
500: '#0ea5e9', // 主色
600: '#0284c7',
900: '#0c4a6e',
},
// AI渐变色
ai: {
primary: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
secondary: 'linear-gradient(135deg, #f093fb 0%, #f5576c 100%)',
accent: 'linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)',
},
// 安全状态色
security: {
high: '#10b981', // 绿色 - 安全
medium: '#f59e0b', // 橙色 - 警告
low: '#ef4444', // 红色 - 危险
critical: '#dc2626', // 深红 - 严重
},
// 功能色
success: '#10b981',
warning: '#f59e0b',
error: '#ef4444',
info: '#3b82f6',
// 中性色
gray: {
50: '#f9fafb',
100: '#f3f4f6',
500: '#6b7280',
900: '#111827',
},
// 暗色模式
dark: {
background: {
primary: '#000000',
secondary: '#1c1c1e',
tertiary: '#2c2c2e',
},
text: {
primary: '#ffffff',
secondary: '#ebebf5',
tertiary: '#ebebf599',
}
}
};
```
#### 字体令牌 (Typography)
需要在 `constants/` 目录下创建 `Typography.ts`
```typescript
export const Typography = {
fontFamily: {
primary: 'SF Pro Display', // iOS系统字体
secondary: 'SF Pro Text',
mono: 'SF Mono',
},
fontSize: {
xs: 12,
sm: 14,
base: 16,
lg: 18,
xl: 20,
'2xl': 24,
'3xl': 30,
'4xl': 36,
},
fontWeight: {
light: '300',
normal: '400',
medium: '500',
semibold: '600',
bold: '700',
heavy: '800',
},
lineHeight: {
tight: 1.25,
normal: 1.5,
relaxed: 1.75,
}
};
```
#### 间距令牌 (Spacing)
需要创建 `constants/Spacing.ts`
```typescript
export const Spacing = {
xs: 4,
sm: 8,
md: 16,
lg: 24,
xl: 32,
'2xl': 48,
'3xl': 64,
'4xl': 80,
'5xl': 96,
};
```
### 2. 组件库
#### 当前组件结构
位置:[`components/`](components/)
现有组件:
- [`ThemedText.tsx`](components/ThemedText.tsx) - 主题化文本组件
- [`ThemedView.tsx`](components/ThemedView.tsx) - 主题化视图组件
- [`ui/`](components/ui/) - UI基础组件
**需要扩展的AI密码管理器组件**
```
components/
├── ui/ # 基础UI组件
│ ├── Button.tsx # 按钮组件 (Primary/Secondary/AI)
│ ├── Input.tsx # 输入框 (Text/Password/Search)
│ ├── Card.tsx # 卡片组件
│ ├── Badge.tsx # 徽章组件
│ ├── Progress.tsx # 进度组件
│ ├── Switch.tsx # 开关组件
│ └── Loading.tsx # 加载组件
├── password/ # 密码相关组件
│ ├── PasswordEntryCard.tsx
│ ├── PasswordStrengthIndicator.tsx
│ └── SecurityScoreCard.tsx
├── ai/ # AI功能组件
│ ├── AIAssistantCard.tsx
│ ├── AIBadge.tsx
│ └── AISearchBar.tsx
└── navigation/ # 导航组件
├── TopNavigation.tsx
└── TabBar.tsx
```
#### 组件架构模式
使用React Native + TypeScript + 主题化设计:
```typescript
// 示例Button组件
interface ButtonProps {
variant: 'primary' | 'secondary' | 'ai';
size: 'sm' | 'md' | 'lg';
disabled?: boolean;
loading?: boolean;
onPress: () => void;
children: React.ReactNode;
}
export const Button: React.FC<ButtonProps> = ({
variant,
size,
disabled,
loading,
onPress,
children
}) => {
// 实现逻辑
};
```
### 3. 框架和库
#### UI框架
- **React Native**: 0.79.5
- **Expo**: SDK 53
- **React**: 19.0.0
#### 样式库
- **React Native StyleSheet**: 原生样式系统
- **React Native Reanimated**: 3.17.4 (动画)
- **React Native Gesture Handler**: 2.24.0 (手势)
#### 路由系统
- **Expo Router**: 5.1.4 (基于文件系统的路由)
### 4. 资源管理
#### 图片和图标
位置:[`assets/`](assets/)
当前结构:
```
assets/
├── images/
│ ├── icon.png
│ ├── splash-icon.png
│ └── favicon.png
└── fonts/
└── SpaceMono-Regular.ttf
```
**需要扩展为:**
```
assets/
├── images/
│ ├── app-icons/ # 应用图标
│ ├── website-icons/ # 网站图标
│ └── illustrations/ # 插画素材
├── icons/
│ ├── security/ # 安全相关图标
│ ├── ai/ # AI功能图标
│ └── ui/ # 界面图标
└── fonts/ # 字体文件
```
#### 图标系统
使用 **Expo Vector Icons** (@expo/vector-icons):
```typescript
import { Ionicons, MaterialIcons } from '@expo/vector-icons';
// AI图标示例
<Ionicons name="robot" size={24} color={Colors.ai.primary} />
// 安全图标示例
<MaterialIcons name="security" size={24} color={Colors.security.high} />
```
### 5. 样式方法
#### React Native StyleSheet
```typescript
import { StyleSheet } from 'react-native';
import { Colors, Typography, Spacing } from '@/constants';
const styles = StyleSheet.create({
container: {
backgroundColor: Colors.light.background,
padding: Spacing.md,
},
title: {
fontSize: Typography.fontSize['2xl'],
fontWeight: Typography.fontWeight.bold,
color: Colors.light.text,
},
});
```
#### 主题化组件模式
基于现有的 `useThemeColor` hook
```typescript
import { useThemeColor } from '@/hooks/useThemeColor';
export function ThemedButton({ lightColor, darkColor, ...props }) {
const backgroundColor = useThemeColor(
{ light: lightColor, dark: darkColor },
'tint'
);
return (
<Pressable style={[{ backgroundColor }, styles.button]} {...props} />
);
}
```
### 6. 项目结构
#### 当前结构
```
ai-password-manager/
├── app/ # Expo Router页面
│ ├── (tabs)/ # 标签页面
│ └── _layout.tsx # 根布局
├── components/ # 可复用组件
├── constants/ # 常量和令牌
├── hooks/ # 自定义Hooks
├── assets/ # 静态资源
└── src/ # 源代码 (待扩展)
```
**建议的完整结构:**
```
ai-password-manager/
├── app/ # Expo Router页面
│ ├── (auth)/ # 认证页面
│ ├── (tabs)/ # 主要功能页面
│ │ ├── index.tsx # Dashboard
│ │ ├── vault.tsx # 密码库
│ │ ├── ai-assistant.tsx # AI助手
│ │ └── settings.tsx # 设置
│ └── modal/ # 模态页面
├── src/
│ ├── components/ # 组件库
│ ├── services/ # 业务服务
│ │ ├── api/ # API调用
│ │ ├── crypto/ # 加密服务
│ │ ├── biometric/ # 生物识别
│ │ └── ai/ # AI功能
│ ├── stores/ # 状态管理
│ ├── utils/ # 工具函数
│ ├── types/ # TypeScript类型
│ └── hooks/ # 自定义Hooks
├── constants/ # 设计令牌
├── assets/ # 静态资源
└── docs/ # 设计文档
```
## Figma集成规则
### 1. 设计令牌同步
- Figma中的颜色样式 → `constants/Colors.ts`
- Figma中的文字样式 → `constants/Typography.ts`
- Figma中的效果样式 → `constants/Effects.ts`
### 2. 组件映射
- Figma组件 → React Native组件
- 组件变体 → TypeScript接口属性
- 组件状态 → 组件props
### 3. 资源导出
- 图标SVG格式 → `assets/icons/`
- 图片PNG @1x/@2x/@3x`assets/images/`
- 字体TTF/OTF → `assets/fonts/`
### 4. 代码生成规则
使用Figma MCP工具生成的代码应该
- 使用设计令牌而非硬编码值
- 遵循React Native最佳实践
- 包含TypeScript类型定义
- 支持主题切换
### 5. AI元素特殊处理
- AI渐变使用`react-native-linear-gradient`
- AI动画使用`react-native-reanimated`
- AI发光效果使用`shadowColor``elevation`
## 开发工作流
### 1. 设计阶段
1. 在Figma中创建设计
2. 使用统一的设计令牌
3. 创建组件变体和状态
### 2. 开发阶段
1. 使用Figma MCP工具获取设计
2. 生成React Native代码
3. 集成到项目组件库
### 3. 测试阶段
1. 在不同设备尺寸测试
2. 验证暗色模式适配
3. 检查无障碍功能
这个规则文档确保了Figma设计与React Native代码的完美集成同时保持了AI密码管理器的设计一致性和技术可行性。