Bricks 全局样式:变量、字体与自定义 CSS 的分工

2026年9月16日 · 约 4 分钟读完

Bricks 最被低估的能力是全局设置:颜色、字体、排版、间距、圆角都能做成变量,元素只引用变量。做到这一点,改配色从「两百个地方」变成「一个地方」。

四类设置各自的位置

内容 写在哪 为什么
颜色、间距、圆角、尺寸 Global → Colors / Spacings / Sizes 输出为 CSS 自定义属性,全站可引用
正文与标题的字族、字号、行高 Global → Typography 元素里只写例外,不重复声明
组件级复用样式(卡片、按钮) Class styles(类样式) 一处改,所有挂该类的元素跟随
重置、第三方覆盖、媒体查询里的杂项 Settings → Root CSS 或代码编辑器 最低层,优先级最弱,适合打底

命名:给角色,不给颜色

把变量命名为 Brand、Surface、Surface Alt、Text、Text Muted、Rule、Accent,而不是 Blue、Light Gray。理由很实际:换成另一套配色时,名字仍然成立;而 Light Gray 变成深灰的那天,全站搜索替换会把你逼疯。本站的做法是把壳宽、正文宽、卡片圆角、按钮圆角、强调色全部做成 –wug-* 变量,组件样式里只引用它们。

类样式(Class Styles)用法

  1. 在任意元素上点 CSS Classes 旁的 New class,例如 card-primary
  2. 给它写样式,其它元素只需挂同一个类名
  3. 需要变体时加第二个类(card-primary card-compact),用叠加而不是复制
  4. 类样式与元素内联的区别:类样式集中、可复用;内联是一次性的,改不动第二次

不要用 id 做样式钩子。一个页面里同类元素挂五个不同 id,等于把 CSS 变成 JavaScript 的记事本。

字体:两族足够

  • 标题一族、正文一族,最多两族。第三族通常是灾难的开始
  • Google 字体交给 Bricks 本地托管,并勾上你实际使用的字重。拉了 6 个字重却只用 400 和 700,是白付的流量
  • 中文正文建议直接走系统字体栈:中文字体子集化前动辄数 MB,会毁掉 首屏时间
  • 中西混排的字体栈里,西文字体在前、中文字体在后,让中文回落到系统字体,西文用品牌字体

字号系统用一套比例(例如 13、15、16.5、20、25、32、48),别在每个元素里随手写 17px、19px。

用变量做明暗两套主题

做法只有三步,但要求你的组件样式全部走变量:

  1. 变量定义浅色值,另写一段深色覆盖规则(放在 Root CSS 或代码编辑器)
  2. 用条件切换覆盖:靠 prefers-color-scheme 自动跟随系统,或靠 data-theme 属性由用户手动选
  3. 把用户选择存进 localStorage,并在 head 里用一小段脚本在绘制前打属性,避免闪烁

本站就是这三步的实现:先读 localStorage 里的选择,没有则交给 prefers-color-scheme。要注意的是变量覆盖必须挂在同一个选择器层级上,否则深色模式下会漏出浅色块,常见于 Section 的背景色写成了具体值而不是变量。

顺带的对比度检查:强调色作底色时必须配深色文字。橙底白字在很多情况下过不了无障碍标准,别只凭肉眼判断。

什么时候该用自定义 CSS

  • 需要伪元素、复杂过渡、第三方标记覆盖:写 CSS,别绕构建器
  • 只是常规属性:用面板,可维护性远高于手写
  • 手写超过三十行,就该回头检查全局设置是不是缺了变量

检验标准很简单:客户说明天想把按钮圆角从 8px 改成 2px。如果你需要打开二十个页面,说明还没用变量。

接下来把模板和条件用起来,见 条件显示与动态数据。

留下第一个评论