# 时间段动态壁纸 — 需求契约

> 创建时间：2026-05-28
> 状态：需求已确认

## 目标

根据用户地理位置的日出日落时间，自动切换壁纸主题（白天明亮主题，夜晚深色主题）。

## 用户场景

1. 白天自动使用 gradient/aurora 等明亮主题
2. 日落后自动切换为 starfield/fractal 等深色主题
3. 用户可自定义白天/夜晚对应的主题
4. 切换过程平滑过渡，无突兀跳变

## 验收标准

- [ ] 根据天气 API 已有的经纬度数据计算日出日落时间
- [ ] 日出后切换到"白天主题"，日落后切换到"夜晚主题"
- [ ] 默认配对：白天 gradient / 夜晚 starfield
- [ ] 用户可在设置页自定义白天/夜晚主题
- [ ] 主题切换有淡入淡出过渡效果
- [ ] 无网络时使用固定时间（6:00 日出 / 18:00 日落）

## 本次范围

- 基于日出日落的两种主题自动切换

## 非目标

- 多时段（上午/下午/傍晚/深夜）细分
- 基于天气的主题切换（晴天/阴天）
- 渐变过渡动画（日出/日落期间缓慢变化壁纸色调）

## 约束

- 复用天气 API 已有的城市经纬度，不新增 API 调用
- 日出日落算法用前端 JS 计算（SunCalc 库或简单公式）
- config 新增 `dayTheme`、`nightTheme`、`autoTheme bool` 字段

## 风险

| 风险 | 缓解 |
|------|------|
| 天气城市未设置 | 降级为固定时间（6:00/18:00） |
| 用户关闭天气卡片 | 经纬度使用上次缓存值 |
