为什么卡片需要一套语法
Ayue Observatory 的内容不是普通文章流。每一条内容都被当作 Archive Object 处理:它有编号、类型、状态、领域、日期和摘要,也会在不同页面里以不同密度反复出现。
所以卡片不只是一个「点进去看文章」的入口。它更像这个档案系统的最小展示单位:用户需要在很短的时间里判断这是什么对象、它属于哪个领域、当前是否还在变化,以及是否值得继续打开。
这也是我把它称为「卡片交互语法」而不是「卡片动效」的原因。动效只是其中很小的一部分,真正要确定的是一套可复用、可扫读、不会喧宾夺主的对象呈现规则。
三种密度
现在站点里同一个 Archive Object 有三种展示密度:
FeaturedObjectCard 用在首页和栏目页的重点位置。它需要承载最多信息:类型、编号、标题、摘要、标签、状态、领域和更新时间。它像一个被临时放大的档案对象,负责告诉读者「当前阶段这里值得多看一眼」。
StandardObjectCard 用在对象网格里。它需要保持稳定、均匀和可比较。标题和摘要是主体,类型、编号、状态、领域和日期是辅助信息。它的任务不是制造视觉焦点,而是让一组对象能被快速扫描。
CompactObjectRow 用在侧栏、精选列表和关联对象里。它只保留编号、类型、标题、状态和日期。这个密度下不再追求完整说明,而是给读者一个足够明确的路径:知道它是谁,知道它大概是什么,然后决定要不要打开。
这三种密度的共同点是:编号和类型永远不能消失。它们是 Archive Object 区别于普通文章卡片的核心标记。
类型、状态和时间的优先级
类型颜色负责第一层识别。随笔、研究、系统、信号、项目、复盘、实验和记录各自有不同的 accent 色,但颜色只负责辅助区分,不承担主要阅读负担。即使去掉颜色,标题、类型文字和编号也应该能让对象成立。
状态负责第二层判断。活跃 和 进行中 更接近正在被观察的对象;稳定 和 归档 更接近已经沉淀下来的对象。首版不需要为每种状态设计复杂样式,但状态标签必须足够清楚,不能被标签和日期淹没。
时间负责第三层定位。日期不应该抢走标题的位置,但它要一直存在,因为档案系统需要时间坐标。一个对象不是孤立文本,它是在某个时间被记录、被更新、被重新打开的。
Hover 和 focus 的边界
卡片可以有反馈,但不应该表演。
首版的 hover 只需要做三件事:边线更清楚、背景稍微变深、对象感稍微增强。轻微位移可以保留,但不应该像产品卡片那样弹起、放大或制造强烈阴影。这里的交互目标不是让页面显得活泼,而是让用户确认「这个对象可以打开」。
focus 需要和 hover 一样认真。键盘访问时,轮廓线必须明确,不能只依赖鼠标悬停。对一个长期档案站来说,可访问性不是额外装饰,而是对象能被稳定访问的一部分。
后续如果继续加动效,也应该先经过这个问题:它是否让对象边界更明确?如果只是让页面更酷,就不适合放进首版。
首版结论
OBS-0007 暂时不做复杂动画,也不做独立的动效展示场。它先记录一条原则:Archive Object 的卡片系统应该克制、可扫读、可维护。
首版保留的交互范围很小:类型色、状态标签、对象编号、边线增强、背景变化、轻微位移和键盘 focus。它们共同服务于一个目标:让读者在不同页面、不同密度下,都能认出这是同一套档案对象系统。
以后如果站点出现时间线、关系对象或专题集合,这套卡片语法还可以继续扩展。但在那之前,卡片首先要做好的不是动起来,而是站得住。