Files
SunCheng c49f66757e
Some checks failed
Docker Build & Deploy / Build Docker Image (push) Waiting to run
Docker Build & Deploy / Deploy to Production (push) Has been cancelled
Docker Build & Deploy / Cleanup Dangling Images (push) Has been cancelled
Docker Build & Deploy / WeChat Notification (push) Has been cancelled
1
2026-02-18 21:16:45 +08:00

104 lines
4.6 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.
## ADDED Requirements
### Requirement: Card containers SHALL use unified spacing values
所有卡片容器必须使用统一的 CSS 变量来定义内边距padding确保视觉一致性。
#### Scenario: Standard card padding
- **WHEN** 渲染任何卡片组件
- **THEN** 卡片的 padding 必须使用 `var(--spacing-xl)`16px
#### Scenario: Gauge card compact padding
- **WHEN** 渲染仪表盘类型的卡片gauge card
- **THEN** 卡片的 padding 可以使用 `var(--spacing-lg)`12px以适应紧凑布局
### Requirement: Card containers SHALL use unified border radius
所有卡片容器必须使用统一的 CSS 变量来定义圆角border-radius保持设计语言一致。
#### Scenario: Standard card border radius
- **WHEN** 渲染任何卡片组件
- **THEN** 卡片的 border-radius 必须使用 `var(--radius-lg)`12px
### Requirement: Card containers SHALL use unified background color
所有卡片容器必须使用统一的背景色变量,确保在明暗模式下自动适配。
#### Scenario: Card background in light mode
- **WHEN** 应用处于明亮模式
- **THEN** 卡片的 background 必须使用 `var(--bg-secondary)`
#### Scenario: Card background in dark mode
- **WHEN** 应用处于暗色模式
- **THEN** 卡片的 background 必须使用 `var(--bg-secondary)` 并自动适配为暗色系背景
### Requirement: Card containers SHALL use unified shadow
所有卡片容器必须使用统一的阴影变量,提供微妙的层次感。
#### Scenario: Standard card shadow
- **WHEN** 渲染任何卡片组件
- **THEN** 卡片的 box-shadow 必须使用 `var(--shadow-sm)`
#### Scenario: Card shadow in dark mode
- **WHEN** 应用处于暗色模式
- **THEN** 卡片的阴影必须根据暗色模式自动调整透明度和颜色
### Requirement: Card spacing SHALL be consistent across pages
页面级别的卡片布局必须使用统一的外边距margin和间距gap确保三个页面的视觉韵律一致。
#### Scenario: Card bottom margin
- **WHEN** 在页面中垂直排列多个卡片
- **THEN** 卡片之间的间距必须使用 `var(--spacing-xl)`16px或通过父容器的 gap 属性设置
#### Scenario: Page container padding
- **WHEN** 渲染包含卡片的页面容器
- **THEN** 容器的左右 padding 必须使用 `var(--spacing-xl)`16px
- **AND** 容器的顶部 padding 可以使用 `var(--spacing-md)`12px以紧跟 header
- **AND** 容器的底部 padding 应使用 `var(--spacing-3xl)`24px以预留安全区域
### Requirement: Hard-coded style values MUST be replaced
现有代码中的硬编码样式值必须被对应的 CSS 变量替换,以便集中管理和未来维护。
#### Scenario: Replace hard-coded padding
- **WHEN** 发现卡片使用硬编码的 `padding: 16px``padding: 12px`
- **THEN** 必须替换为 `padding: var(--spacing-xl)``padding: var(--spacing-lg)`
#### Scenario: Replace hard-coded border-radius
- **WHEN** 发现卡片使用硬编码的 `border-radius: 12px`
- **THEN** 必须替换为 `border-radius: var(--radius-lg)`
#### Scenario: Replace hard-coded margins and gaps
- **WHEN** 发现卡片或容器使用硬编码的 `margin-bottom: 12px``gap: 12px`
- **THEN** 必须替换为 `margin-bottom: var(--spacing-xl)``gap: var(--spacing-xl)`
### Requirement: Common card class SHALL be consistently applied
所有符合标准卡片样式的元素必须应用 `.common-card` 类或内联使用相同的 CSS 变量组合。
#### Scenario: Apply common-card class
- **WHEN** 创建或修改卡片组件
- **THEN** 卡片的根元素应添加 `class="common-card"` 或在 scoped style 中定义 `.common-card` 样式
#### Scenario: Inline CSS variable usage
- **WHEN** 不使用 `.common-card` 类时
- **THEN** 必须确保使用与 `.common-card` 相同的 CSS 变量组合background, border-radius, padding, box-shadow
### Requirement: Visual regression testing MUST verify style consistency
样式统一后必须通过视觉测试验证三个页面的卡片表现一致。
#### Scenario: Test in light mode
- **WHEN** 应用处于明亮模式
- **THEN** 日历、统计、预算页面的卡片样式必须在视觉上保持一致(相同的边距、圆角、阴影)
#### Scenario: Test in dark mode
- **WHEN** 应用处于暗色模式
- **THEN** 日历、统计、预算页面的卡片样式必须在视觉上保持一致(相同的边距、圆角、阴影,且背景色和阴影自动适配)
#### Scenario: Test on different screen sizes
- **WHEN** 在不同移动设备屏幕尺寸上查看(如 iPhone SE, iPhone 14 Pro, iPad mini
- **THEN** 卡片布局不能出现溢出、内容截断或错位问题