Files
jiapu/design.md
T
2026-08-29 19:06:07 +08:00

96 lines
5.0 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.
# Design · 代代相传家谱 PC
这是 PC 家谱项目的统一设计系统。所有页面沿用同一套品牌、排版、间距、状态和交互规则;新增规则先修改本文件,不在单个页面创建另一套视觉语言。
## 用户与任务
- 用户:家谱创建者、管理员、普通家人和浏览公开家谱的访客。
- 核心任务:创建或加入家谱,维护世系与成员,发布并浏览家族内容,处理邀请、消息与服务。
- 设计气质:中文编辑式、克制、可信。功能页以任务效率为先,公共页保留家族文化氛围。
## Genre
Editorial。登录后的应用页使用更紧凑的工作台表达,不采用营销页式的大标题和卡片堆叠。
## Macrostructure family
- 公开与营销页面:Content Portal。真实内容和图片优先,标题区只说明当前任务。
- 登录后应用页面:Workbench。固定页头、稳定的分组侧栏和单一内容画布;跨页面导航位置不改变。
- 内容与资料页面:Long Document / List Detail。列表进入独立详情页,桌面端需要连续比较时允许页内列表详情。
## Theme
- `--color-paper`: `oklch(97.5% 0.012 82)`
- `--color-paper-2`: `oklch(94.8% 0.024 78)`
- `--color-ink`: `oklch(31% 0.028 158)`
- `--color-ink-2`: `oklch(51% 0.022 158)`
- `--color-rule`: `oklch(86% 0.028 78)`
- `--color-accent`: `oklch(56% 0.185 29)`
- `--color-accent-strong`: `oklch(43% 0.13 29)`
- `--color-focus`: `oklch(61% 0.17 29)`
- 辅助绿色和金色仅用于状态与文化信息,不与主操作竞争。
## Typography
- Display`STSong`, `Songti SC`, `SimSun`, serif;字重 600;正常体。
- Body`Microsoft YaHei`, `PingFang SC`, system-ui, sans-serif;字重 400/600。
- Mono`Consolas`, `SFMono-Regular`, monospace,仅用于编号和技术值。
- 标题不得使用斜体,不保留无业务意义的英文眉题。
- 正文舒适行宽为 62~76 个中文字符。
## Spacing
使用根目录 `tokens.css` 中的 4px 命名刻度。新样式只能使用 `--space-*`,页面内容区桌面最大宽度统一为 `--layout-max`
## Motion
- 动效只表达悬停、焦点、展开和状态变化,最多使用透明度与 `transform`
- 默认 160~220ms,无弹跳和持续漂浮。
- `prefers-reduced-motion` 下关闭空间位移并将反馈压缩为短暂透明度变化。
## Interaction decisions
- 独立页面:多字段创建/编辑、详情阅读、支付、权限和安全设置。
- 对话框:删除/退出等不可逆确认、密码输入、单一短任务;统一使用站内对话框,不调用浏览器原生 `confirm`/`prompt`
- 图片灯箱:相册和内容图片预览;不改变当前列表位置。
- 页内展开:帮助问答、筛选、非关键补充信息。
- 抽屉:桌面端评论或需要保留主内容上下文的辅助任务;不承载长表单。
- 加载、空数据、错误、无权限:显示在对应内容区域,不使用弹窗打断。
- 成功反馈:优先更新页面状态;仅在用户可能看不到变化时使用短消息。
## Media rules
- 业务媒体只消费后端 `BusinessFileAccess.accessUrl`,不得拼接 OSS ID 或暴露内部路径。
- 家谱封面 16:9;相册封面 4:3;文章封面 16:9;头像 1:1;动态媒体根据原图比例限制最大高度。
- 有地址时显示真实图片;无图片时使用姓名首字或明确空状态,不使用伪造照片、CSS 图画或无意义占位块。
- 图片必须有与业务内容对应的替代文本;装饰图片使用空替代文本。
- 正文附件使用左对齐、最大 280px 的缩略图网格并完整显示原图;封面和视频预览按业务比例完整呈现,不把单张附件拉伸成整栏大图。
- 视频使用原生播放器,列表中只自动加载封面,不自动播放。
## Shared states
所有交互控件必须覆盖默认、悬停、键盘焦点、按下、禁用、加载、错误、成功状态。错误信息靠近问题区域,同时保留可恢复操作。
## Responsive
- 验证宽度:320、375、414、768、1024、1440。
- 768px 以下侧栏转为页内分组导航,主内容单列。
- `html``body` 使用 `overflow-x: clip`;按钮和主导航文字不得折成两行。
- 附件网格桌面端按 200–280px 自适应列展示,移动端保持最大 280px;标题允许长家谱名称安全换行。
## What pages MUST share
- 品牌标识、朱红主操作色、排版和按钮语气。
- 页头高度、内容最大宽度、侧栏位置、表单控件高度和状态样式。
- 图片比例、媒体错误回退、空状态和权限状态。
## Per-page allowances
- 公开页可使用仓库内已有的真实祠堂和服务图片。
- 应用页不增加装饰插画,数据与操作本身承担视觉层级。
- 内容页以标题、正文、真实封面和元信息为主。
## Exports
实际 CSS 变量以根目录 `tokens.css` 为准。项目为原生 HTML/CSS/JS,不启用 Tailwind 或 shadcn;如未来迁移,颜色、字体、间距必须从相同命名 token 映射,不得另建品牌值。