我们读了 150 个 shadcn/ui 项目。一模一样的不是紫色。
《解构》第一期。GitHub 上收藏数最多的 shadcn/ui 项目几乎只用两种字体,主色是灰色。大家归咎的紫色渐变,另有来源。

用 AI 做过产品的人都认得这种样子:同一种字体、紫色渐变、一模一样的柔和卡片。通常被怀疑的是 shadcn/ui,因为太多这类应用都建在它之上。所以我不再猜测,直接去读代码。
我测量了什么
2026 年 9 月 25 日,我取了 GitHub 上带 shadcn-ui 标签、收藏数最多的 150 个仓库。每个仓库我都读了决定外观的文件:根布局、Tailwind 配置和全局样式表,并记录两件事。
- 字体:来自
next/font导入、Google Fonts 链接和font-family声明。 - 主色:来自样式表中第一个主色值,按色相分为中性、Blue、紫色和其他。
读不出信号的仓库记为不可读,从不猜测。最后有 67 个仓库能读出字体,87 个能读出主色。
两种字体选其一
能读出字体的 67 个仓库中,59 个使用 Geist 或 Inter,即 88%。Geist 出现在 34 个里,Inter 出现在 28 个里,有些两者都加载。只有 8 个选了别的字体,分散在 DM Sans、Manrope、Sora、Montserrat 等少数几种之间。
这才是真正的同质。这并不是糟糕的选择,两种字体在屏幕上都很出色,但这意味着读者看到的第一样东西,在几乎所有这些产品里都一样。
主色是灰,不是紫
能读出的 87 个主色中,65 个是中性色:接近黑色或灰色,直接来自 shadcn 自带的基础色板,即 75%。Blue 11 个,占 13%。紫色只有 5 个,占 6%。
所以紫色并非来自 shadcn/ui。原封不动时,它是灰色的。如果你的产品是紫色,那是有人选了它,或者有什么替你选了它。
如果你用 AI 做设计,这意味着什么
组件库不是你品牌的问题。它有意给你结构和中性的底色。同质从两个地方混进来:没人改过的字体,以及在没人指定时由工具填上的强调色。
两者各只是一个决定。选一款能承载你风格的字体,设定你自己的主色,在模型动笔之前把两者交给它。这就是全部的解决办法,也是设计系统必须先行的原因。
方法与数据
扫描脚本、规则和原始结果都已公开:scan_shadcn.py 与 results.json。色相分类使用 HSL(紫色 240 到 300 度)和 OKLCH(紫色 265 到 320 度),饱和度低于 12% 或彩度低于 0.05 的都算中性,shadcn 的 slate 和 zinc 基色正落在这里。样本是该标签下收藏数最多的 150 个仓库,既有应用也有组件库,中位数约 1,700 个收藏。
这是第一期**《解构》**:一个设计问题,手工测量,方法公开。想让我数点什么,告诉我。