Design Systems · Naming

组件命名,
其实是在统一语言

从 Smashing Magazine 的命名资源合集出发,交叉 Figma 官方、Nathan Curtis、Brad Frost 等人的说法:整理成六条原则、两处分歧和一份能直接用的清单。

整理于 2026-10-12 · 约 6 分钟读完
一句话

好名字说的是“它是什么”,不是“它长什么样”;它从大到小分层,和代码同名,并且被整个团队在每一次对话里坚持使用。

01 / SIX PRINCIPLES

六条主流原则

1

按“它是什么”命名,不按“长什么样”命名

这是各家说法最一致的一条。颜色、尺寸、圆角迟早会改,名字一旦绑定了这些属性,改版那天就失效了。

✕ 绑定外观blue-large-button
✓ 说清身份Button / Primary
来源:Figma Learn · Tips for component management / Javier Cuello · goodpractices.design
2

从大到小分层,用斜杠分隔

Figma 会把斜杠自动变成资产面板里的文件夹。常见的几种写法:

Button / Hover  ← Figma 官方基础写法
Button / Secondary / Compact / Enabled  ← Cuello
Actions / Button / Primary / Hover / Dark  ← Backlight

注意:现在 Figma 有 variants 和 component properties,State、Size 这类信息更适合放进属性。斜杠层级主要用来表达“组件属于哪一类”。

来源:Figma Learn · Name and organize components / goodpractices.design / Backlight · Naming conventions
3

设计稿和代码用同一个名字

开发在 Dev Mode 里看到的就是组件名和属性名。设计稿里叫 Button、代码里是 <Button>,交接就顺;一边叫 CTA、一边叫 <Action>,每次交接都可能翻译出错。

Brad Frost 举过一个例子:同一个顶栏,开发叫 utility bar,设计叫 admin bar,产品叫“顶上那条灰的”。

来源:Figma Learn / Brad Frost · Skillshare 课程
4

小规则在一开始就定死

Figma 官方列了五项要在组件库变大之前决定的规则:

  • 大小写:Title Case、小写,还是 camelCase
  • 缩写:哪些词允许缩写
  • 术语:Modal 还是 Dialog,Notification 还是 Toast
  • 布尔属性的说法:Has Icon、Show Icon,还是 Icon Visible
  • 取值写法:SM / MD / LG 还是 Small / Medium / Large,Hover 还是 Hovered

属性名也要统一,不能同一个概念有的叫 Size、有的叫 Scale、有的叫 Dimensions。官方原话:没有唯一正确的规范,团队一起遵守的那套就是对的。

来源:Figma Learn · Tips for component management
5

名字也要表达组件之间的关系

这是 Nathan Curtis 在 2026 年提出的新一层说法。以前的“命名难”,难在起名:Pill、Tag、Chip、Badge 到底叫哪个。现在难在另一件事:Figma 只有“组件”这一种资产类型,名字要额外说明这是什么类型的东西、属于谁。

  • 图标不算组件,而是内容:加统一前缀,比如 DE Icon asset / heart,下游脚本才能把图标和组件分开处理
  • 子组件写成“父 / 子”:Action list / Item、Action list / Group heading。这层从属关系 Figma 本身不记录,只能靠名字表达
  • 图片走统一的属性名:比如 imageSource,让 Image、Avatar 等组件都用同一个入口

他把这些规范写成配置文件,交给 linter、代码生成和 AI 工具去读。Figma 官方也提到,命名清楚能让 AI 更准确地理解文件结构。这说明命名的读者,正在从“人”扩展到“人和工具”。

来源:Nathan Curtis · Design System Conventions in Figma / Nathan Curtis · Subcomponents
6

命名本质上是团队共用词汇的问题

Brad Frost 提醒,团队很容易在命名和分类上想得太巧、陷得太深。Into Design Systems 的做法是:新组件的名字放到有工程师参与的小会上一起定;定下来之后,日常开会也只用这个名字,不再冒出近义词。

别名问题有多普遍?看 Component Gallery 收录的一个例子,同一个组件就有这么多叫法:

AccordionCollapsibleCollapseDisclosureDetailsExpandableExpanderArrow toggleShowyHideyThing

Smashing 的结尾说得好:大量时间浪费在用不同“方言”谈论同一件东西上,包括设计、开发、产品和用户各自的方言。功能采用率低,有时仅仅是因为名字没起好。

来源:Brad Frost · Design Systems Q&A / Into Design Systems · Naming Conventions / The Component Gallery / Smashing Magazine · How To Name Things
02 / DEBATES

两处真正的分歧

名字能不能带视觉比喻?

可以Backlight 认为 Accordion 好就好在“描述了长相”,让人一下就能想象出组件。
不行Figma 官方和 Cuello 都反对用视觉属性命名,因为属性会变。
怎么理解:两者并不矛盾。Accordion 比喻的是交互结构,不是颜色、尺寸这类会变的属性。更准确的规则是:别用会变的视觉属性命名。
来源:Backlight / Figma Learn

组件名该描述元素,还是描述用途?

描述元素Rootstrap 主张组件要能脱离具体场景复用,所以只说“它是什么元素”。
描述用途Cuello 把功能和语境排在名字最前面,变体和状态放在后面。
我的看法:按层级区分。越基础的组件越该用通用名(Card、Button);越接近业务的组合,越可以按用途命名(比如 Camera Card、Device Settings Row)。
来源:Rootstrap / goodpractices.design
03 / CHECKLIST

建组件库之前,先定这几件事

顺序很重要:组件已经建了上百个之后再统一名字,成本会大很多。可以点击打勾。

0 / 7
04 / RESOURCES

资源索引