原子设计:原子、分子与有机体
将组件分类为原子、分子、有机体、模板和页面,在设计与工程团队之间建立共享词汇。
原子设计:原子、分子与有机体 是 CoddyKit 上的免费 Frontend Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Frontend Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Frontend Academy 课程共包含 4 节课。
什么是原子化设计
原子化设计(Brad Frost,2013 年)是一种组织用户界面组件的思维模型,将组件按复杂程度分为五个层级:原子、分子、组织、模板和页面。它为设计师和工程师提供了一套共同词汇。
原子——最小的构建单元
无法进一步拆分的单一用途组件。按钮、输入框、图标、标签、颜色样本都属于这一类。它们是抽象且可复用的,可以用于任何上下文。
// Atoms (examples)
<Button variant="primary">Save</Button>
<Input type="email" name="email" />
<Icon name="chevron-right" />
<Label htmlFor="email">Email</Label>分子——简单的组件组
组合原子以完成有用的功能。SearchBar 由输入框 + 按钮 + 图标组成。FormField 由标签 + 输入框 + ErrorMessage 组成。它们仍然是通用组件。
function SearchBar({ onSearch }) {
return (
<div className="search-bar">
<Input placeholder="Search..." />
<Button onClick={onSearch}>
<Icon name="search" />
</Button>
</div>
);
}组织——复杂的页面区块
由更大的组合构成界面的独立区块:页头(徽标 + 导航 + 搜索栏 + 用户菜单)、ProductCard(图片 + 标题 + 价格 + 按钮)、SignupForm。它们对上下文的感知更强。
function Header({ user }) {
return (
<header>
<Logo />
<Navigation links={navLinks} />
<SearchBar onSearch={handleSearch} />
<UserMenu user={user} />
</header>
);
}模板——页面骨架
线框级布局,用于排列组织,但不包含真实内容。BlogTemplate 包含一个页头、一个带文章插槽的主体和一个侧边栏。
function BlogTemplate({ header, article, sidebar, footer }) {
return (
<div className="blog-layout">
{header}
<div className="main">
<main>{article}</main>
<aside>{sidebar}</aside>
</div>
{footer}
</div>
);
}页面——真实内容
包含真实内容的模板。/blog/[slug] 页面会使用实际文章、侧边栏小组件和页面框架来渲染 BlogTemplate。
文件夹结构
许多团队会按照层级组织组件。
src/components/
atoms/
Button.tsx
Input.tsx
Icon.tsx
molecules/
SearchBar.tsx
FormField.tsx
organisms/
Header.tsx
ProductCard.tsx
templates/
BlogTemplate.tsx
pages/
BlogPage.tsx优点
让设计师和开发者拥有共同词汇。鼓励优先组合而不是重复。使设计系统更容易构建。促使人们先思考最小的可复用单元。
批评:严格分类很困难
在实践中,分子和组织之间的界线很模糊。许多团队最终会争论某个组件应该归在哪里,反而违背了清晰分类的目标。
现代替代方案:基于功能组织
许多大型 React/Vue 代码库更倾向于按功能(auth/、checkout/、dashboard/)组织,而不是严格遵循原子化层级。对于共享设计系统这一层,原子化设计仍然适用。
Storybook 中的原子化设计
Storybook 很适合原子化设计——使用原子、分子、组织作为顶层分类,可以让组件库更易于浏览。
何时使用原子化设计
适合:多个应用共享的设计系统库、需要共同思维模型的大型团队、设计师积极参与的项目。不适合:小型应用、原型,以及更重视就近组织而非原子化结构的功能型单页应用。
快速检查
在原子化设计中,由输入框 + 按钮 + 图标构成的 SearchBar 属于哪种组件?
回顾:原子化设计
五个层级:原子(按钮、输入框、图标)、分子(SearchBar、FormField)、组织(页头、ProductCard)、模板(布局)、页面(真实内容)。共同词汇和优先组合的思维方式。文件夹结构会映射这些层级。原子化设计最适合共享设计系统;对于应用代码,按功能组织的文件夹通常比原子化结构更实用。
用 AI 导师学习 HTML — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 41
- 课程
- 163
常见问题解答
「原子设计:原子、分子与有机体」课时是免费的吗?
是的 — 「原子设计:原子、分子与有机体」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Frontend Academy 课程的其余内容,请升级到 CoddyKit PRO。 Frontend Academy 课程共包含 4 节课。
「原子设计:原子、分子与有机体」这节课中我会学到什么?
将组件分类为原子、分子、有机体、模板和页面,在设计与工程团队之间建立共享词汇。 你通过在浏览器中直接运行的动手代码来练习 Frontend Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Frontend Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Frontend Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「原子设计:原子、分子与有机体」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Frontend Academy 课中编写并运行代码吗?
能。每节 Frontend Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 原子设计:原子、分子与有机体
- 使用 Turborepo 设置单体仓库
- 微前端:模块联邦
- 基于功能的文件夹结构