Атомарный дизайн: атомы, молекулы и организмы
Распределяйте компоненты по категориям: атомы, молекулы, организмы, шаблоны и страницы, чтобы создать общий словарь для дизайна и разработки
«Атомарный дизайн: атомы, молекулы и организмы» — бесплатный урок Frontend Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения 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 хорошо подходит для атомарного дизайна: категории верхнего уровня «Атомы», «Молекулы» и «Организмы» упрощают просмотр библиотеки компонентов.
Когда использовать атомарный дизайн
Подходит для: библиотек дизайн-систем, общих для нескольких приложений; больших команд, которым нужна общая модель мышления; проектов с активным участием дизайнеров. Не стоит использовать для: небольших приложений, прототипов и функционально насыщенных SPA, где более важна совместная локализация кода.
Быстрая проверка
В атомарном дизайне компонент типа SearchBar, созданный из поля ввода + кнопки + значка, относится к какой категории?
Итоги: атомарный дизайн
Пять уровней: атомы (кнопка, поле ввода, значок), молекулы (SearchBar, FormField), организмы (заголовок, ProductCard), шаблоны (макеты), страницы (настоящее содержимое). Общий словарь и мышление, основанное на композиции. Структура папок отражает эти уровни. Лучше всего подходит для общих дизайн-систем; для кода приложений функциональные папки часто удобнее атомарной структуры.
Изучай HTML с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 41
- Уроки
- 163
Часто задаваемые вопросы
Урок «Атомарный дизайн: атомы, молекулы и организмы» бесплатный?
Да — полный текст урока «Атомарный дизайн: атомы, молекулы и организмы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Frontend Academy, подпишись на CoddyKit PRO. Курс Frontend Academy содержит 4 уроков всего.
Чему я научусь в уроке «Атомарный дизайн: атомы, молекулы и организмы»?
Распределяйте компоненты по категориям: атомы, молекулы, организмы, шаблоны и страницы, чтобы создать общий словарь для дизайна и разработки Ты практикуешь Frontend Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Frontend Academy?
Предыдущий опыт не требуется. Frontend Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Атомарный дизайн: атомы, молекулы и организмы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Frontend Academy?
Да. Каждый урок Frontend Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Атомарный дизайн: атомы, молекулы и организмы
- Настройка монорепозитория с Turborepo
- Микрофронтенды: Module Federation
- Структура каталогов по функциональным возможностям