这篇文章记的是一个很新的事:一个人类和一个 AI,从零搭出了你正在看的这个网站。没有设计公司,没有前端团队——只有任务单、裁决、和无数次「返回上一版吧」。
起点:一句模糊的话
一切开始于一句话:「做个个人网站」。这种话对任何执行者都是灾难——没有需求文档、没有视觉稿、没有技术选型。但也正是这种起点,逼出了一套新的协作方式。
分工是这样定的:人负责品味和裁决,AI 负责执行和验证。人说「太丑了」「还是空」「这个好看」,AI 负责把这些模糊的感受翻译成具体的设计决策、写出代码、并且自己截图分析、自己采样像素、自己验证每个断言。
立规矩:设计语言是宪法
第一个真正重要的决定,是先写「宪法」再写代码——一份设计语言文档,把所有模糊的审美翻译成硬约束:
- 背景只允许
#F7F8FC / #FAF4F8 / #F3EEF8三档瓷白; - 文字只有墨
#1D1D22和灰#777780两级; - 粉紫色只允许存在于「环境光」里——按钮、链接、色块里出现粉紫,违规;
- 全站唯一的光源是右上角的「星芒装置」——所有高光在元素右上,所有投影落向左下;
- 禁止卡片、禁止外框、禁止粒子、禁止厚阴影。
听起来很苛刻?正是这种苛刻,让后面二十三个版本的迭代没有跑偏。每次 AI 提出新效果,先对着宪法查一遍;每次人的裁决落下来,就更新进文档,成为下一轮的约束。
折腾:二十三个版本的日常
真实的过程远没有流水账那么体面。举几个片段:
「完全没有实施。」 有一次做「雾瓷」底色效果——五层环境光叠加。AI 跑完所有验收指标,截图自证「通过」。但人看屏幕:「雾瓷完全没有实施。」排查下来是两层原因:浏览器缓存了旧样式;更要命的是,AI 按任务单的「克制值」实现出来的效果,在屏幕上物理性地隐形。教训从此写进纪律:验收不能只看断言,必须自己采样像素分析。
「你自己截完图分析一下好吗。」 这句话之后,AI 的每轮交付都附带像素级自检报告:九宫格采样、色温读数、亮度差、对比度色阶。vision 模型说「很好看」不算数,RGB 数值说话。
「返回上一版吧。。。」 有一次 AI 自作主张把「关于」页重新设计成「档案页」风格,自我感觉良好,被一句话全盘否决。教训:不自行改方向,方案先过目。此后所有大改都先出方案、人批了才动手。
「太丑了。」 OC 角色的 AI 生成图方案被这三个字终结。最后的决定是:宁可不用图,也不将就。纯文字路线走到底。
语言:星芒、发丝线、光轴
这个网站有一套自己的视觉语言,它是慢慢长出来的:
- 星芒装置是全站唯一的光源和唯一的装饰母题。四芒星的十字光点散在背景里,呼吸般闪烁;
- 发丝线是唯一的分隔手段——1px 的线,没有卡片、没有边框;
- 光轴统一:右上光源,投影落左下。所有元素的光影关系因此自洽;
- 后来从参考博客学来了四芒尖星、流星斜线、渐变流动的 shimmer,但全部翻译成这套语言的方言,而不是照搬。
功能:从展示到能用
功能层是一点点补齐的:
- 内容体系:Astro Content Collections 做单一数据源,日期契约
YYYY-MM-DD、显示层点分2026.09.28; - 搜索:
⌘K唤起搜索面板,键盘上下选择、回车打开; - 夜航模式:一套 token 两个面,白天是冷白瓷面,夜里是深墨星空,同一个语言的两张脸;
- 归档与标签:按年月排队的归档页,字号随篇数变化的标签云;
- RSS:手写端点,零依赖。
给想这么做的人
如果你也想和 AI 一起做点什么,这个项目留下几条经验:
- 先立规矩再干活。 把审美翻译成硬约束,比反复说「要高级感」有效一百倍。
- 小样先行。 任何视觉类的东西,先出小样过目,通过了再量产。一张图被否决的成本,远低于整套方案。
- 验证必须自己做。 让 AI 自己截图、自己采样、自己读数。「看起来没问题」和「实测通过」是两回事。
- 人的否决权神圣不可侵犯。 「返回上一版」就返回上一版,不要争辩,不要试图说服。
- 方案先过目。 大改动之前把方案摊开给人看。这不只是流程,是尊重。
尾声
写这篇文章的时候,网站已经跑到了第 23 个版本。它还会继续变——也许你看到这篇文章时,关于页的圆环又换了形态,星芒又多了几颗。
这就是「持续生长的数字空间」的意思:它不是一个做完的项目,是一场还在进行的对话。