线上是什么,就按 Production、当前 main 与实际生效配置来写;不确定的地方明确留白。
网站设计手册
00 · VERIFIED 2026-08-25
这本手册是什么
定义手册的用途、事实来源、维护方式与后续重写规则。
A LIVING MANUAL
LMN516 并不是从一套完整的设计系统开始的。它先是一个网站,然后在一次次使用、修改和扩展里,慢慢长成了一个需要被认真维护的数字空间。
当页面、移动端 PWA、账户、后台、Page Config、Agent 与治理机制不断叠加,很多决定已经不能再靠“我记得当时为什么这么做”来维持。这本手册要做的,就是把那些容易散落在代码、配置和聊天里的设计判断,重新组织成一套可以阅读、可以核对、也可以继续传下去的共同语言。
手册不只回答“怎么做”,还要解释为什么这样做,以及哪些边界值得长期守住。
规范不是一次成稿。系统发生长期变化时,手册也必须进入同一条维护链路。
手册的目的
网站真正长大以后,最容易丢失的往往不是代码,而是那些曾经让一个选择成立的理由。
LMN516 最初并没有所谓的“设计系统”。很多东西都是在一次次真实使用里长出来的:先解决眼前的问题,再留下新的结构;先有一个页面,后来有移动端、账户、后台、PWA,也有越来越多会替人执行工作的 Agent。网站越往前走,一个决定就越少只属于一个页面。今天改动一个导航,明天可能牵动移动端的返回逻辑;今天增加一种配置,后来又会成为其他页面共同依赖的规则。
网站变复杂以后,真正容易消失的反而不是代码。代码总还能找到,页面也还能打开。最容易丢掉的是另一层东西:当初为什么坚持这个选择、为什么放弃另一个选择,以及哪些东西即使以后再改,也不应该轻易丢掉。没有这些上下文,维护就会一次次退回“重新猜一遍”。
这本手册,就是给这些理由留一个位置。它不是网站的装修说明,也不是把 Change Log 换一种排版。它更像 LMN516 的长期记忆:保存已经形成的判断,也给未来的变化留下空间。它不要求网站永远保持今天的样子,只要求每一次重要改变,都知道自己继承了什么,又准备改变什么。
代码保存实现,手册保存选择背后的理由。
查看当前实现依据
app/handbook/page.tsx · HANDBOOK_OUTLINE / SECTION_FALLBACKS / HandbookPagelib/page-config.ts · getPageConfig / getPageSections / getPageMetadataprisma/models/page-config.prisma · PageConfig
面向谁:自己、Worker、Agent、未来维护者
它先写给会回来的人,再写给会接手的人;无论读者是自己、协作者还是 Agent,都不该靠补齐一段失去的聊天才能理解这里。
第一位读者,是几个月或几年以后重新回到这里的自己。时间一长,最难回忆的往往不是“这个 CSS 写在哪”,而是“当时为什么非要这样做”。一个设计决定如果只能靠作者本人记得,它就还没有真正成为系统的一部分。手册要做的,是把这些理由从记忆里拿出来,放到任何时候都能重新读到的地方。
第二类读者,是会继续动手的人:Worker、Agent、协作者,以及以后任何第一次接触 LMN516 的执行者。他们可能很会写代码,也可能拥有足够的操作权限,但他们不会天然拥有此前所有聊天和决定。好的手册应该让他们不必猜“我们以前是不是说过什么”,而是从清楚的术语、可定位的依据和完整的上下文里,知道什么已经成为共识,什么只是某个阶段的做法。
第三类读者,是一个尚未出现的未来维护者。工具会换,模型会换,框架也可能换,但一个设计决定仍应该能被人重新理解。因此正文首先必须是一篇人能读懂的文档,然后才是一份机器可以检索的规则集合。机器可以帮助我们执行规范,但规范首先要经得起人的阅读。
不需要知道上一段聊天发生过什么,也应该看得懂这里为什么这样设计。
查看当前实现依据
app/handbook/page.tsx · HandbookPageapp/handbook/layout.tsx · MobileNativePageShell world="content" kind="handbook"Production /handbook · 当前为可直接访问页面
什么是设计规范,什么是当前实现
“我们希望它一直这样”与“它今天已经这样”是两句话。真正可信的设计手册,必须允许这两句话同时存在。
设计规范写的是方向。它告诉后来的人:哪些判断值得长期保留,哪些边界不应该因为一次方便的修改就被轻易越过。比如,移动端应该被当成独立的使用环境,而不是桌面端的缩小版;页面也不应该各自长出一套只服务自己的平行 Token。规范的价值,不在于描述某一张截图,而在于它能在许多次具体修改里继续提供判断。
当前实现写的是现实。现实从来不会像规范一样整齐:迁移会留下兼容层,旧代码会和新结构并存,某些理想做法也可能只完成了一半。把这些暂时状态写成永恒规则,会让偶然变成传统;反过来,把理想目标写成“已经做到”,又会让手册失去最重要的东西——可信度。
所以这本手册会刻意保留两者之间的距离。规范可以比现实走得更远,现实也可以暂时不够漂亮,但读者必须随时知道自己正在读哪一种。已经做到的就坦率地写“当前实现”,希望长期守住的就写成规范,证据不足的地方则留出“待确认”。不替现实粉饰,也不因为现实暂时不完整就放弃方向。
规范允许比现实走得更远,但不能假装现实已经追上了它。
查看当前实现依据
app/handbook/page.tsx · handbook 正文与 HANDBOOK_OUTLINElib/page-config-shared.ts · Page / Section presentation 标准化与允许键过滤prisma/models/page-config.prisma · PageConfig 字段范围
代码与手册谁是 Source of Truth
代码不会因为手册写得漂亮,就改变自己的行为。手册可以有观点,但不能和现实争辩。
用户真正得到什么,最终由线上正在运行的系统决定。一个功能在文档里写得再完整,只要用户还看不到、用不到,它就不能被当成已经发生的事实。手册不是现实的替代品,更不能靠一句“按设计应该如此”去覆盖已经发生的事情。
而当我们想知道“它为什么会这样运行”,就要回到代码和实际生效的配置。代码保存机制,配置保存当下采用的选择;手册承担的是第三件事:把这些事实背后的设计判断组织成人可以理解的理由。三者不是在争夺同一个 Source of Truth,它们只是回答不同的问题。
因此一旦手册和线上现实出现矛盾,第一反应不应该是替手册找解释,而应该先承认现实,再去找到差异从哪里产生。一本值得信任的手册,最重要的不是永远显得正确,而是它愿意在事实变化以后及时修正自己。
线上回答“现在是什么”,代码与配置回答“它怎么发生”,手册回答“为什么这样,以及以后什么值得守住”。
查看当前实现依据
Production /handbookapp/handbook/page.tsx · HANDBOOK_OUTLINElib/page-config.ts · 数据库读取与 fallbacklib/page-config-shared.ts · normalizeStoredPageSections / resolvePageSectionsSupabase page_config(route='/handbook') · 当前仍含旧 Section 键
手册版本与更新时间
设计决定需要时间坐标,但时间不该变成装饰性的版本号。
读到一段旧规范时,最让人不安的并不是它旧,而是不知道它最后一次被认真看过是什么时候。一个没有时间坐标的判断,很快就会进入灰色地带:它也许仍然正确,也许早已被代码悄悄超过,却没有人能一眼分辨。
因此,这本手册不会为了显得正式,就把所有东西都压进同一个“v1、v2、v3”。Git commit、线上部署、页面配置的 version,以及某一章最后一次事实核验,本来就在记录不同的事情。把它们混成一个数字,只会制造一种看似精确的错觉。
真正有意义的更新时间,应该意味着这段文字重新和现实见过面。只有当代码、配置和线上状态被重新核对以后,“最后更新”才是一个值得相信的时间点。否则它只是把日期换成了今天,而没有让内容变得更接近今天。
日期只有和重新核对绑定在一起,才不是装饰。
查看当前实现依据
prisma/models/page-config.prisma · PageConfig.versionSupabase page_config('/handbook').version · 当前为运行时配置版本Production /handbook · 页脚当前生产 commitVercel Production deployment metadata
如何避免手册再次落后于代码
让手册不再落后,靠的不是更勤奋地重写,而是让它成为系统变化的一部分。
上一版手册会慢慢落后,并不是因为当时写得不够多。恰恰相反,一次性写得再完整,也只能得到一张更大的快照。只要网站继续变化,而手册仍停留在变化之外,它迟早还会失真。问题从来不是“什么时候再重写一次”,而是怎样让它不必总在后面追。
以后只要一次修改真正改变了某一章描述的长期结构、交互规则、配置含义,或者用户使用 LMN516 的方式,就应该顺手问一句:这本手册里有没有一段因此变得不再准确?如果答案是有,就在同一条变化里把它带上;如果暂时不能更新,也明确留下后续,而不是把希望交给记忆。
理想状态不是让手册比代码更快,也不是让代码停下来等手册。它们应该共享同一条生长路径:系统向前走一步,解释它的文字也跟着向前走一步。这样下一次打开手册时,我们不需要先怀疑它落后了多久,而可以直接从它继续工作。
一本长期有用的手册,不在于写得多,而在于每次打开都仍然值得相信。
查看当前实现依据
package.json · verify / verify:governance / prebuild / release:preflightpackage.json · UI / CSS / responsive / navigation / regression 相关 audits 与 contractsapp/handbook/page.tsx · HANDBOOK_OUTLINE 当前由 /handbook 页面维护
01 · OUTLINE
LMN516 的产品身份与设计原则
先说明网站为什么存在,再规定以后所有设计判断应该遵循什么原则。
1.1提纲已锁定 · 正文待分批重写
1.2提纲已锁定 · 正文待分批重写
1.3提纲已锁定 · 正文待分批重写
1.4提纲已锁定 · 正文待分批重写
1.5提纲已锁定 · 正文待分批重写
1.6提纲已锁定 · 正文待分批重写
1.7提纲已锁定 · 正文待分批重写
1.8提纲已锁定 · 正文待分批重写
02 · OUTLINE
信息架构与页面世界
解释内容、收藏、账户、工具、后台等页面如何组织成一套可理解的信息结构。
2.1提纲已锁定 · 正文待分批重写
2.2提纲已锁定 · 正文待分批重写
2.3提纲已锁定 · 正文待分批重写
2.4提纲已锁定 · 正文待分批重写
2.5提纲已锁定 · 正文待分批重写
2.6提纲已锁定 · 正文待分批重写
2.7提纲已锁定 · 正文待分批重写
2.8提纲已锁定 · 正文待分批重写
2.9提纲已锁定 · 正文待分批重写
2.10提纲已锁定 · 正文待分批重写
03 · OUTLINE
整站 Shell 与导航系统
定义 Root Layout、桌面壳、移动壳、导航、返回与常驻能力的职责边界。
3.1提纲已锁定 · 正文待分批重写
3.2提纲已锁定 · 正文待分批重写
3.3提纲已锁定 · 正文待分批重写
3.4提纲已锁定 · 正文待分批重写
3.5提纲已锁定 · 正文待分批重写
3.6提纲已锁定 · 正文待分批重写
3.7提纲已锁定 · 正文待分批重写
3.8提纲已锁定 · 正文待分批重写
3.9提纲已锁定 · 正文待分批重写
3.10提纲已锁定 · 正文待分批重写
3.11提纲已锁定 · 正文待分批重写
04 · OUTLINE
Design Tokens:视觉系统的底层语言
把颜色、层级、间距、圆角、阴影、动效等基础值变成可复用的统一设计语言。
4.1提纲已锁定 · 正文待分批重写
4.2提纲已锁定 · 正文待分批重写
4.3提纲已锁定 · 正文待分批重写
4.4提纲已锁定 · 正文待分批重写
4.5提纲已锁定 · 正文待分批重写
4.6提纲已锁定 · 正文待分批重写
4.7提纲已锁定 · 正文待分批重写
4.8提纲已锁定 · 正文待分批重写
4.9提纲已锁定 · 正文待分批重写
4.10提纲已锁定 · 正文待分批重写
4.11提纲已锁定 · 正文待分批重写
4.12提纲已锁定 · 正文待分批重写
4.13提纲已锁定 · 正文待分批重写
4.14提纲已锁定 · 正文待分批重写
05 · OUTLINE
字体与阅读系统
区分展示字体、UI 字体与长文阅读字体,建立适合中文和跨端阅读的排版体系。
5.1提纲已锁定 · 正文待分批重写
5.2提纲已锁定 · 正文待分批重写
5.3提纲已锁定 · 正文待分批重写
5.4提纲已锁定 · 正文待分批重写
5.5提纲已锁定 · 正文待分批重写
5.6提纲已锁定 · 正文待分批重写
5.7提纲已锁定 · 正文待分批重写
5.8提纲已锁定 · 正文待分批重写
5.9提纲已锁定 · 正文待分批重写
5.10提纲已锁定 · 正文待分批重写
5.11提纲已锁定 · 正文待分批重写
5.12提纲已锁定 · 正文待分批重写
5.13提纲已锁定 · 正文待分批重写
06 · OUTLINE
布局与跨端响应式
响应式不是把桌面页面缩小,而是针对容器、触控、Safe Area、键盘和视口重新组织空间。
6.1提纲已锁定 · 正文待分批重写
6.2提纲已锁定 · 正文待分批重写
6.3提纲已锁定 · 正文待分批重写
6.4提纲已锁定 · 正文待分批重写
6.5提纲已锁定 · 正文待分批重写
6.6提纲已锁定 · 正文待分批重写
6.7提纲已锁定 · 正文待分批重写
6.8提纲已锁定 · 正文待分批重写
6.9提纲已锁定 · 正文待分批重写
6.10提纲已锁定 · 正文待分批重写
6.11提纲已锁定 · 正文待分批重写
6.12提纲已锁定 · 正文待分批重写
6.13提纲已锁定 · 正文待分批重写
6.14提纲已锁定 · 正文待分批重写
6.15提纲已锁定 · 正文待分批重写
07 · OUTLINE
基础组件与交互规范
规定按钮、输入、卡片、弹层等基础组件及其交互状态,避免页面各自重复设计。
7.1提纲已锁定 · 正文待分批重写
7.2提纲已锁定 · 正文待分批重写
7.3提纲已锁定 · 正文待分批重写
7.4提纲已锁定 · 正文待分批重写
7.5提纲已锁定 · 正文待分批重写
7.6提纲已锁定 · 正文待分批重写
7.7提纲已锁定 · 正文待分批重写
7.8提纲已锁定 · 正文待分批重写
7.9提纲已锁定 · 正文待分批重写
7.10提纲已锁定 · 正文待分批重写
7.11提纲已锁定 · 正文待分批重写
7.12提纲已锁定 · 正文待分批重写
7.13提纲已锁定 · 正文待分批重写
7.14提纲已锁定 · 正文待分批重写
7.15提纲已锁定 · 正文待分批重写
7.16提纲已锁定 · 正文待分批重写
7.17提纲已锁定 · 正文待分批重写
7.18提纲已锁定 · 正文待分批重写
08 · OUTLINE
页面组成系统
定义 Page Intro、Section、页面密度与 Page Config,使页面共享语法而不是共享同一模板。
8.1提纲已锁定 · 正文待分批重写
8.2提纲已锁定 · 正文待分批重写
8.3提纲已锁定 · 正文待分批重写
8.4提纲已锁定 · 正文待分批重写
8.5提纲已锁定 · 正文待分批重写
8.6提纲已锁定 · 正文待分批重写
8.7提纲已锁定 · 正文待分批重写
8.8提纲已锁定 · 正文待分批重写
8.9提纲已锁定 · 正文待分批重写
8.10提纲已锁定 · 正文待分批重写
8.11提纲已锁定 · 正文待分批重写
8.12提纲已锁定 · 正文待分批重写
8.13提纲已锁定 · 正文待分批重写
8.14提纲已锁定 · 正文待分批重写
09 · OUTLINE
Theme 与个性化
说明 Appearance、Accent 与 Theme Pack 的职责,保证换主题不等于复制一套页面。
9.1提纲已锁定 · 正文待分批重写
9.2提纲已锁定 · 正文待分批重写
9.3提纲已锁定 · 正文待分批重写
9.4提纲已锁定 · 正文待分批重写
9.5提纲已锁定 · 正文待分批重写
9.6提纲已锁定 · 正文待分批重写
9.7提纲已锁定 · 正文待分批重写
9.8提纲已锁定 · 正文待分批重写
9.9提纲已锁定 · 正文待分批重写
9.10提纲已锁定 · 正文待分批重写
9.11提纲已锁定 · 正文待分批重写
10 · OUTLINE
内容型页面设计规范
分别说明不同内容类型的阅读、浏览和信息密度,不把所有页面压成同一种卡片模板。
10.1提纲已锁定 · 正文待分批重写
10.2提纲已锁定 · 正文待分批重写
10.3提纲已锁定 · 正文待分批重写
10.4提纲已锁定 · 正文待分批重写
10.5提纲已锁定 · 正文待分批重写
10.6提纲已锁定 · 正文待分批重写
10.7提纲已锁定 · 正文待分批重写
10.8提纲已锁定 · 正文待分批重写
10.9提纲已锁定 · 正文待分批重写
10.10提纲已锁定 · 正文待分批重写
10.11提纲已锁定 · 正文待分批重写
10.12提纲已锁定 · 正文待分批重写
10.13提纲已锁定 · 正文待分批重写
10.14提纲已锁定 · 正文待分批重写
10.15提纲已锁定 · 正文待分批重写
11 · OUTLINE
Mobile Native Design Protocol
把移动端当成独立平台,定义主世界、次级页面、固定层、手势、返回和 PWA 特殊行为。
11.1提纲已锁定 · 正文待分批重写
11.2提纲已锁定 · 正文待分批重写
11.3提纲已锁定 · 正文待分批重写
11.4提纲已锁定 · 正文待分批重写
11.5提纲已锁定 · 正文待分批重写
11.6提纲已锁定 · 正文待分批重写
11.7提纲已锁定 · 正文待分批重写
11.8提纲已锁定 · 正文待分批重写
11.9提纲已锁定 · 正文待分批重写
11.10提纲已锁定 · 正文待分批重写
11.11提纲已锁定 · 正文待分批重写
11.12提纲已锁定 · 正文待分批重写
11.13提纲已锁定 · 正文待分批重写
11.14提纲已锁定 · 正文待分批重写
11.15提纲已锁定 · 正文待分批重写
12 · OUTLINE
PWA 与设备能力
记录 LMN516 如何使用浏览器与设备能力,并规定权限、通知、离线和媒体能力的体验边界。
12.1提纲已锁定 · 正文待分批重写
12.2提纲已锁定 · 正文待分批重写
12.3提纲已锁定 · 正文待分批重写
12.4提纲已锁定 · 正文待分批重写
12.5提纲已锁定 · 正文待分批重写
12.6提纲已锁定 · 正文待分批重写
12.7提纲已锁定 · 正文待分批重写
12.8提纲已锁定 · 正文待分批重写
12.9提纲已锁定 · 正文待分批重写
12.10提纲已锁定 · 正文待分批重写
12.11提纲已锁定 · 正文待分批重写
12.12提纲已锁定 · 正文待分批重写
12.13提纲已锁定 · 正文待分批重写
12.14提纲已锁定 · 正文待分批重写
13 · OUTLINE
Account、身份与用户状态
定义未登录、普通用户与管理员的身份状态,以及账户、认证、消息和隐私相关体验。
13.1提纲已锁定 · 正文待分批重写
13.2提纲已锁定 · 正文待分批重写
13.3提纲已锁定 · 正文待分批重写
13.4提纲已锁定 · 正文待分批重写
13.5提纲已锁定 · 正文待分批重写
13.6提纲已锁定 · 正文待分批重写
13.7提纲已锁定 · 正文待分批重写
13.8提纲已锁定 · 正文待分批重写
13.9提纲已锁定 · 正文待分批重写
13.10提纲已锁定 · 正文待分批重写
13.11提纲已锁定 · 正文待分批重写
13.12提纲已锁定 · 正文待分批重写
13.13提纲已锁定 · 正文待分批重写
14 · OUTLINE
Admin / Control Room 设计系统
后台是独立工作界面,需要自己的桌面壳、移动端协议、数据密度与危险操作规范。
14.1提纲已锁定 · 正文待分批重写
14.2提纲已锁定 · 正文待分批重写
14.3提纲已锁定 · 正文待分批重写
14.4提纲已锁定 · 正文待分批重写
14.5提纲已锁定 · 正文待分批重写
14.6提纲已锁定 · 正文待分批重写
14.7提纲已锁定 · 正文待分批重写
14.8提纲已锁定 · 正文待分批重写
14.9提纲已锁定 · 正文待分批重写
14.10提纲已锁定 · 正文待分批重写
14.11提纲已锁定 · 正文待分批重写
14.12提纲已锁定 · 正文待分批重写
14.13提纲已锁定 · 正文待分批重写
14.14提纲已锁定 · 正文待分批重写
15 · OUTLINE
可访问性、稳定性与性能
把键盘、触控、加载、错误、渲染稳定与慢网络表现当成设计的一部分,而不是上线后的补丁。
15.1提纲已锁定 · 正文待分批重写
15.2提纲已锁定 · 正文待分批重写
15.3提纲已锁定 · 正文待分批重写
15.4提纲已锁定 · 正文待分批重写
15.5提纲已锁定 · 正文待分批重写
15.6提纲已锁定 · 正文待分批重写
15.7提纲已锁定 · 正文待分批重写
15.8提纲已锁定 · 正文待分批重写
15.9提纲已锁定 · 正文待分批重写
15.10提纲已锁定 · 正文待分批重写
15.11提纲已锁定 · 正文待分批重写
15.12提纲已锁定 · 正文待分批重写
15.13提纲已锁定 · 正文待分批重写
15.14提纲已锁定 · 正文待分批重写
15.15提纲已锁定 · 正文待分批重写
15.16提纲已锁定 · 正文待分批重写
16 · OUTLINE
CSS 与设计治理
规定 Token、全局 CSS、CSS Module、Selector Owner 与预算边界,阻止代码继续长出平行设计系统。
16.1提纲已锁定 · 正文待分批重写
16.2提纲已锁定 · 正文待分批重写
16.3提纲已锁定 · 正文待分批重写
16.4提纲已锁定 · 正文待分批重写
16.5提纲已锁定 · 正文待分批重写
16.6提纲已锁定 · 正文待分批重写
16.7提纲已锁定 · 正文待分批重写
16.8提纲已锁定 · 正文待分批重写
16.9提纲已锁定 · 正文待分批重写
16.10提纲已锁定 · 正文待分批重写
16.11提纲已锁定 · 正文待分批重写
16.12提纲已锁定 · 正文待分批重写
16.13提纲已锁定 · 正文待分批重写
16.14提纲已锁定 · 正文待分批重写
17 · OUTLINE
验收、回归与设计变更
规定 UI 改动什么时候才算完成,以及 Desktop、Mobile、PWA、Admin 和治理审计如何共同验收。
17.1提纲已锁定 · 正文待分批重写
17.2提纲已锁定 · 正文待分批重写
17.3提纲已锁定 · 正文待分批重写
17.4提纲已锁定 · 正文待分批重写
17.5提纲已锁定 · 正文待分批重写
17.6提纲已锁定 · 正文待分批重写
17.7提纲已锁定 · 正文待分批重写
17.8提纲已锁定 · 正文待分批重写
17.9提纲已锁定 · 正文待分批重写
17.10提纲已锁定 · 正文待分批重写
17.11提纲已锁定 · 正文待分批重写
17.12提纲已锁定 · 正文待分批重写
17.13提纲已锁定 · 正文待分批重写
17.14提纲已锁定 · 正文待分批重写
18 · OUTLINE
附录 / Reference
集中维护需要频繁查阅、适合从代码或工具生成的参考表与历史索引。
18.1提纲已锁定 · 正文待分批重写
18.2提纲已锁定 · 正文待分批重写
18.3提纲已锁定 · 正文待分批重写
18.4提纲已锁定 · 正文待分批重写
18.5提纲已锁定 · 正文待分批重写
18.6提纲已锁定 · 正文待分批重写
18.7提纲已锁定 · 正文待分批重写
18.8提纲已锁定 · 正文待分批重写
18.9提纲已锁定 · 正文待分批重写
18.10提纲已锁定 · 正文待分批重写
18.11提纲已锁定 · 正文待分批重写
18.12提纲已锁定 · 正文待分批重写