◆纸鸢志

不装框架,从零写一套设计系统

没有 Tailwind,没有组件库。只用 CSS 自定义属性和几层语义化变量,我得到了一个更好维护的界面基础。

我并不是反对工具,而是想搞清楚一件事:设计系统的最小内核到底是什么。答案比想象中简单——一组有语义的变量,加上几条克制的规则。

第一层是原始色板,只描述颜色本身:一份暖灰、一份赭石、一份深墨。第二层是语义令牌,描述用途:surface、ink、accent、muted。第三层才是具体组件。三层分开之后,换肤只需要改第二层,这是整个体系里最划算的一笔投资。

间距同理。与其到处写 13px、17px 这样的魔数,不如固定一条尺度(4、8、12、16、24、32、48、64),然后在布局里只允许使用这条尺度上的值。约束反而让决策变快。

排版是最容易被低估的部分。字号、行高、字重、字距这四件事,比任何装饰都更影响可读性。正文行高取字号的 1.7 倍左右,行宽控制在 65–75 个字符,长文阅读体验会有肉眼可见的提升。

最后一点经验:先写内容结构,再写样式。反过来做,你会为了迁就已有的 DOM 而牺牲语义。

林晚

@linwan

全部文章

评论

2 条
沈亦舟2026 年 10 月 5 日

先写结构再写样式,这条我完全同意,反面教材见过太多。

陈舟2026 年 10 月 4 日

三层变量的分法很清晰,比一上来就堆组件聪明多了。

继续阅读