Skip to content

Latest commit

 

History

History
310 lines (231 loc) · 10.9 KB

File metadata and controls

310 lines (231 loc) · 10.9 KB

DESIGN

本文档只负责作品集页面层的规则,不负责系统 token、本体组件职责和高层品牌策略。

它回答的问题是:

  • 这个作品集页面应该是什么气质
  • 页面级硬规则有哪些
  • 封面、章节、大图、图注这些模式应该怎么组织

相关文档:

  • 高层设计上下文:docs/design-context.md
  • 设计系统与主题 token:design-system.md

使用原则:

  • 当任务主要在判断品牌气质、受众、长期方向和设计原则时,先读 docs/design-context.md
  • 当任务主要在判断 token、theme、组件职责和共享视觉语义时,先读 design-system.md
  • 当前文档只处理 page layer:页面气质落地、案例叙事结构、页面级 non-negotiables 和 Figma 实现规则

1. Design Direction

当前作品集的方向关键词:

  • 精致
  • 轻盈
  • 克制
  • 小清新
  • 内容优先
  • 叙事感
  • 温暖留白
  • 轻 editorial 气质

不要把它做成:

  • 过度科技感
  • 过度后台感
  • 过度插画化
  • 过度依赖强品牌色

2. Non-negotiables

下面这些规则默认不能随意打破:

  • 作品集页面优先使用 portfolio 主题,而不是旧的通用 preview 风格
  • 基础组件可以继续复用通用设计系统,但作品集页面的视觉语义应优先服从 portfolio token
  • 新增功能模块涉及颜色、字体、图标、圆角、阴影、间距等设计语言要素时,必须优先复用现有 design system / portfolio theme 中已经定义的 token、组件和图标语义;如果现有系统没有合适语义,先说明缺口,再决定是否补充到 design system,不能在功能模块里临时硬编码一套新的视觉语言
  • 标题字体只用于封面标题、章节标题和叙事型标题,不用于按钮、表单、功能型标签
  • 大图展示默认优先使用“外层浅底容器 + 轻边框 + 内层圆角内容”的模式
  • 图注默认弱于正文,不和正文抢层级
  • 页面优先服务“阅读和案例叙事”,不是“组件展台式信息堆叠”
  • 通过 Figma 读取到的展示文案,默认按设计稿原文逐字实现,不要擅自润色、改写、补充、省略或重组

3. Portfolio Patterns

3.0 Content Fidelity

适用场景:

  • 案例页标题
  • 章节说明
  • 图注
  • bullet list
  • Figma 中已经定稿的展示文案

规则:

  • 通过 Figma 读取到的展示文案,默认按设计稿原文逐字实现
  • 不要擅自润色、改写、补充、省略或重组文案
  • 不要擅自补标点,例如列表项末尾的句号、冒号、分号等;Figma 写什么,就实现什么
  • 如果代码里的展示文案与 Figma 原文不一致,默认优先以 Figma 为准
  • 只有在用户明确要求“帮我优化文案”或“帮我改写文案”时,才允许偏离设计稿原文

3.1 Cover / Hero

适用场景:

  • 案例页开头
  • 项目标题区
  • 大图引导区

规则:

  • 优先使用强标题和大图,不堆很多辅助元素
  • 标题、简介、主视觉要形成明确节奏
  • 主视觉优先大图展示,不切碎成很多同级小卡片

3.2 Section Header

适用场景:

  • 章节开头
  • 大 section 标题和说明

规则:

  • 章节标题优先使用作品集标题体系
  • 标题下方可以跟一到两段说明文字
  • 强调标签优先用品牌强调色的小标签,不额外加重装饰

3.3 Media Frame

适用场景:

  • 大截图展示
  • 方案对比图
  • 过程稿展示

规则:

  • 外层优先使用暖灰浅底和轻边框
  • 内层内容要与外壳形成明显的圆角层级
  • 不要让边框、阴影、背景同时都很重

3.4 Caption

适用场景:

  • 图片说明
  • 图注
  • 对比说明

规则:

  • 图注默认弱于正文
  • 图注只负责帮助理解图片
  • 图注尽量短,不写成另一段正文

3.5 Narrative Section

适用场景:

  • 背景说明
  • 问题分析
  • 设计决策
  • 落地结果

规则:

  • 一屏优先只讲一个重点
  • 文字和图片要互相支撑
  • section 之间靠留白和标题节奏区分,不靠过度装饰区分

3.6 Figma Screenshot Card Checklist

适用场景:

  • 背景卡片里放多张截图
  • 参考拼图
  • Before / After 对比图
  • 带背景纹理的大截图卡片
  • 带底部图注的图片区

规则:

  • 实现前,先拆清楚这块是不是 3 层结构:
    • 最外层 figure
    • 背景卡片本体
    • 卡片外部的 figcaption
  • 不要默认把图注放进背景卡片里。必须先去 Figma 确认:
    • 图注在卡片内部
    • 还是图注在卡片外部,并和卡片保持固定间距
  • 不要默认所有图片都该 cover。必须先判断:
    • 参考拼图、收集图、总览图优先完整展示,通常更接近 contain
    • 局部视觉稿、局部界面稿、局部截图通常才更适合 cover
  • 对多张图的卡片,不要先猜“平均分布”或“自动居中”。优先读 Figma 的真实值:
    • 卡片高度
    • 图片宽高
    • 图片距离卡片四边的 inset
    • 行距
    • 列距
    • 标签或分组文案的位置
  • 如果 Figma 里有左侧分组标签,例如:
    • 上线第一版
    • 上线第二版 默认按“行标签”实现,不要把它错误地挂到每张图下面
  • 如果 Figma 里有背景纹理图、天空图、暖色底图,默认把背景层和前景内容层拆开实现,不要把前景图直接铺成唯一层
  • 如果图块带有明确语义顺序,例如:
    • Before / After
    • 原版 / 新版
    • 左 / 右 实现后必须单独核对一次顺序,不要只看标签文字是否存在

自检清单:

  • 图注是否在正确层级(卡片内 / 卡片外)
  • 图注与卡片之间的间距是否和 Figma 一致
  • 卡片高度是否和 Figma 一致
  • 图片尺寸是否和 Figma 一致
  • 图片与卡片边缘的距离是否和 Figma 一致
  • 多张图之间的行距和列距是否和 Figma 一致
  • 标签、说明文字、分组文案的位置是否和 Figma 一致
  • 如果项目里已有 Playwright,优先做局部截图自检,不要只靠肉眼判断

3.7 Figma Spacing Checklist

适用场景:

  • section 与 section 之间的纵向节奏
  • 同一 section 里的多块内容
  • 标题块、正文块、图片区、总结卡、反馈卡之间的间距
  • Round 1 / Round 2 这种“块内紧、分组间松”的长内容区

常见问题:

  • 把整段内容都套进同一个统一 gap,导致所有块之间看起来都一样,失去层级
  • 只顾着改某个组件自己的 padding,却没区分:
    • 组件内部间距
    • 组件与下一个块之间的外部间距
  • 视觉上是两个分组,但实现时还是普通相邻块,所以本该更大的分组间距被压成了默认值
  • Figma 已经把两个 section 合并成一个内容区,但代码里还是两个 section,导致上下留白被叠加
  • 图注、总结卡、反馈卡这些“弱层级块”被错误地和主图、主标题用同一个间距规则处理

实现前检查:

  • 先分清当前这段内容到底是:
    • 两个独立 section
    • 还是同一个 section 里的多个 cluster
  • 不要先假设所有块之间都应该用同一个 gap
  • 先去 Figma 确认这段内容里至少有哪几层节奏:
    • section 上下留白
    • 同组内容之间的普通间距
    • 两个内容分组之间的加强间距
  • 如果某一段是“标题 + 图 + 总结卡 + 图 + 总结卡 + 总览图 + 反馈卡”这种结构,默认不要只靠父级一个 gap 解决全部问题
  • 如果某块只是需要比默认值多一档间距,优先加“局部断点类”或局部 margin-top,不要急着改整段全局 token

实现规则:

  • 默认先建立 3 层 spacing 语义,而不是只有一个数值:
    • 普通块间距
    • 分组间距
    • section 级留白
  • 标题块到紧随内容块,通常优先使用普通块间距
  • 图与图注、图与总结卡、图与反馈卡,不要自动共用同一个数值,必须按 Figma 真实关系判断
  • 如果是“方案 A 一组 / 方案 B 一组 / 总览图一组”这种结构,默认要允许组与组之间插入额外间距
  • 如果 spacing 错误来自 section 合并或拆分,优先修 section 结构,不要只靠硬调 margin

自检清单:

  • 当前这段内容里,是否把所有块错误压成了同一个 gap
  • 是否存在本应 24 的普通间距被做成 48,或反过来
  • 是否存在本应是“分组断点”的地方,仍然沿用普通间距
  • 是否存在 section 合并后,上下留白叠加的问题
  • 图注与图片区之间的距离是否和 Figma 一致
  • 总结卡 / 反馈卡与前后图片区之间的距离是否和 Figma 一致
  • 如果项目里已有 Playwright,优先量出真实值,而不是只看视觉大概像:
    • gap from title to figure
    • gap from figure to summary
    • gap between grouped figures
    • gap from figure to feedback

3.8 Case Study Heading Checklist

适用场景:

  • 案例页标题组件替换
  • 把页面里的一级 / 二级 / 三级标题迁移到共享组件
  • Figma 标题实现和目录层级对齐

规则:

  • 如果项目里已经有明确的共享案例标题组件,默认优先按层级直接替换:
    • 一级标题 -> CaseStudyHeadingOne
    • 二级标题 -> CaseStudyHeadingTwo
    • 三级标题 -> CaseStudyHeadingThree
  • 不要在替换前,先因为“看起来像”某种样式,就给现有层级组件发明额外变体。
  • 标题层级和视觉样式要分开判断:
    • 先判断语义层级
    • 再检查共享组件默认样式是否已经匹配 Figma
  • 如果一个标题在页面正文和目录里都出现了同名文本,自检时不要直接按全文搜索结果下结论,优先基于 section id 或标题容器节点检查,避免抓到目录链接而误判。
  • 如果三级标题在 Figma 里是标签型、胶囊型或带边框的小标题,默认先检查共享三级标题组件的默认实现,而不是立刻把它改成普通文本标题。

自检清单:

  • 当前标题是否用了正确层级组件
  • 标题样式对照的是正文节点,而不是目录里的同名文本
  • 标题字号、字重、行高是否和 Figma 一致
  • 如果标题是标签型,是否同时检查了:
    • 边框颜色
    • 背景颜色
    • 圆角
    • 最小高度
    • 左右 padding

4. Responsive And Accessibility Rules

4.1 Responsive

  • 页面优先保持单主列阅读逻辑
  • 小屏下优先改单列,不强保复杂横向结构
  • 大图容器缩放或改单列时,不能裁掉关键信息
  • 标题可以缩小,但层级关系不能消失
  • section 纵向节奏可以收紧,但不能挤到失去呼吸感

4.2 Accessibility

  • 图片必须保留有意义的替代文本,纯装饰图可留空
  • 正文和图注颜色对比必须保持可读
  • 按钮和链接需要明确的可点击反馈
  • 不要只靠颜色表达状态差异
  • 功能型 UI 先保证可读、可点、可理解,再谈风格统一

5. Current Direction

当前推进方式默认如下:

  1. 先让作品集页面层继续吃 portfolio token
  2. 先沉淀页面模块,再决定是否改基础组件
  3. 每次优先做小步、可验证的调整