EN
EN
回到笔记

为什么我把三个站放在一个仓库里

monorepo、override 模式,以及那一小撮让一群站点"看起来像一家公司"却不用 fork 设计系统的决定。

monorepo 这个决定不是理念驱动的。它是回答一个具体问题:怎么让企业站、实验室、个人站看起来是一家人,而又不用把设计 token 复制三遍(因为复制三遍一定会漂移)?

天真答案是"一个 CSS 文件被三个站 import"。问题在于三个站的声音不一样。企业站要像一家英国有限公司。实验室要像一个集市。个人站要像一个人。你没法用一个 accent 色服务三个。

解法是 override 模式。共享包定义全部 token。每个站有一个小 override.css,把需要变的 token 重新声明。共享组件读 token,不硬编码颜色,所以它们会自己换皮。结果是:family DNA 单一源、三站各有自己的 accent / 圆角 / 调性。

让它成立的那个 trick:硬编码颜色的组件没有资格进共享包。读 token 的组件才有。这个硬约束会拦下那些"不知不觉漂成三种稍微不同的绿"的事。

评论

评论区由 GitHub Discussions 驱动。点右上角 "Sign in" 用 GitHub 账号登录即可评论。

同分类更多

← 上一篇 为你出生的那年造一个时间盘 下一篇 → 玻璃拟态其实就是 backdrop-filter