Опубликовано 2026-08-05 · Автор Команда MarkupGen
Figma в React: практический рабочий процесс для разработчиков

Превращение готового дизайна Figma в рабочие компоненты React — одна из тех задач, которые выглядят простыми в файле дизайна и становятся утомительными в тот момент, когда открываешь редактор. Вы не просто пишете компоненты — вы заново выводите отступы, выравнивание и адаптивное поведение, которые уже существуют в дизайне, а затем надеетесь, что результат всё ещё совпадает с оригиналом после десятка мелких решений. Вот практический рабочий процесс Figma to React, который фокусирует это суждение только на тех частях, которые действительно в нём нуждаются: границы компонентов, поведение вёрстки и то, как результат выглядит на разных размерах экрана.
Почему ручная сборка компонентов React из Figma происходит медленно
Большая часть времени, которое разработчики тратят на эту передачу проекта, уходит не на решение сложных задач — а на перевод уже принятых решений в другой формат:
- Чтение настроек Auto Layout каждого слоя и их ручная реализация в виде правил Flexbox внутри JSX.
- Повторное измерение отступов, промежутков и размеров шрифта, которые уже точно определены в файле Figma.
- Угадывание, где компонент должен становиться адаптивным, поскольку фрейм Figma обычно имеет всего одну фиксированную ширину.
- Структурирование компонентов и props с нуля вместо того, чтобы начать с чего-то уже пригодного к использованию.
Ничто из этого не требует дизайнерских навыков или особенно сложной инженерии — это однообразная, механическая работа, и именно в такой однообразной ручной работе возникают несоответствия между дизайном и готовым интерфейсом.
От компонентов Figma к компонентам React
Единого правила превращения слоя Figma в компонент React не существует — всё зависит от того, насколько часто он повторяется, что означают его варианты и как устроено остальное приложение. Для начала: компонент Figma с вариантами (например, Button с состояниями primary/secondary) обычно превращается в один компонент React, где эти варианты передаются через props, а не в отдельный компонент под каждое состояние:
<Button variant="primary" size="md">
Get started
</Button>
Та же логика применима ко всему, что повторяется в дизайне: три похожие карточки в файле Figma — это сигнал для одного компонента Card, отрисовываемого на основе массива данных, а не для трёх копий одного и того же JSX. Самая частая ошибка здесь — чрезмерная компонентизация: превращение каждого фрейма Auto Layout в отдельный файл добавляет уровень косвенности, но не добавляет переиспользования. Более полное сопоставление концепций Figma и React — включая типичные ошибки с границами компонентов и props для вариантов — см. в статье Figma Auto Layout в React: от фреймов к компонентам.
Рабочий процесс MarkupGen применительно к React
MarkupGen — это SaaS-платформа с сопутствующим плагином для Figma, которая превращает дизайн Figma в HTML, CSS или компоненты React, так что вы можете начать со сгенерированного кода, а не с пустого файла компонента. Рабочий процесс состоит из четырёх шагов:
1. Экспортируйте фрейм из Figma. Выберите фрейм, который хотите конвертировать, и отправьте его в своё рабочее пространство с помощью плагина MarkupGen для Figma. Он захватывает структуру, стили и изображения фрейма вместе, вместо того чтобы заставлять вас копировать их слой за слоем.
2. ИИ строит код на основе реального дизайна. Далее ИИ создаёт HTML и CSS на основе реальной структуры и стилизации фрейма — а не общего предположения о том, как «вероятно» выглядит дизайн.
3. Выберите React как формат вывода. Формат вывода — это выбор, который вы делаете для каждого экспорта: обычный HTML/CSS, Tailwind CSS или компоненты React. Выберите React — и получите компоненты, построенные на той же структуре, готовые встать в существующую кодовую базу вместо статичной страницы. (Нужен HTML/CSS вместо этого? Общий рабочий процесс Figma в HTML описывает этот путь.)
4. Доработайте и экспортируйте финальный пакет. Перед генерацией финального кода встроенный редактор позволяет визуально скорректировать контент, шрифты и вёрстку. Каждый экспорт также автоматически получает оценку качества от ИИ, так что вы сразу видите, достаточно ли результат близок к готовности к продакшену или нужен ещё один проход.
Как Auto Layout превращается во Flexbox внутри ваших компонентов
Часть, которая экономит больше всего ручной работы, — это вёрстка. Свойства Auto Layout в Figma — направление, промежуток, отступы и выравнивание — автоматически преобразуются в эквивалентную структуру CSS Flexbox, и это преобразование переносится в сгенерированные компоненты React, а не только в статичную HTML-страницу. Ряд элементов Auto Layout с заданным промежутком превращается во flex-контейнер с соответствующими gap, padding и выравниванием, уже встроенными в стили компонента, вместо компонента, который приходится подгонять на глаз. Вложенные фреймы Auto Layout точно так же превращаются во вложенные flex-контейнеры, что покрывает большинство карточек, списков и навигационных блоков, — и лишь немногие по-настоящему «сеточные» дизайны по-прежнему лучше ложатся на CSS Grid. Если хотите подробнее разобраться, как именно работает это преобразование, смотрите статью как Auto Layout преобразуется во Flexbox.
Как сделать так, чтобы адаптивное поведение действительно работало
Адаптивное поведение — это именно то место, где результат конвертации Figma в React заслуживает самого пристального внимания, а вовсе не наименьшего. Режимы изменения размера Auto Layout — Hug, Fill, Fixed — и ограничения изменения размера фрейма дают реальные сигналы о том, как компонент должен вести себя при разной ширине: контейнер Fill — это сигнал для гибкой ширины или flex: 1 в CSS, а не для фиксированного значения в пикселях. Но ни Figma, ни инструмент конвертации не могут самостоятельно полностью сгенерировать готовый адаптивный код React — конкретные брейкпоинты, то, как вёрстка должна перестраиваться на мобильных устройствах, и нужно ли компоненту другое расположение элементов ниже определённой ширины, — это решения, которые всё равно требуют интерпретации человеком, опирающейся на эти сигналы, а не заменяющей их. На практике это означает, что сгенерированные (или написанные вручную) компоненты стоит проверять на нескольких реальных брейкпоинтах, а не полагаться на то, что max-width или медиазапрос перенеслись корректно, и относиться к десктопному фрейму Figma как к отправной точке для мобильного поведения, а не как к финальному решению.
Проверка компонентов перед добавлением в приложение
Сгенерированный код проделывает большую часть пути, но перед слиянием его в существующее приложение всё же стоит провести проверку:
- Проверьте границы компонентов. Убедитесь, что сгенерированные компоненты разделены там, где вы бы естественным образом разделили их в собственной кодовой базе, — при необходимости их всегда можно разбить дальше уже в проекте. Кнопки, карточки, навигация и другие повторяющиеся элементы интерфейса обычно имеют подходящий размер для компонента; разбиение вплоть до каждого отдельного слоя лишь добавляет косвенности.
- Смотрите на разметку, а не только на визуал. Вывод отдаёт предпочтение семантическому HTML с правильной иерархией заголовков вместо глубоко вложенных
<div>, что стоит быстро проверить, поскольку это важно и для поисковых систем, и для программ чтения с экрана. Также стоит проверить, что для интерактивных элементов используются настоящие<button>и<a>, а у изображений есть текстalt, — визуальное сходство со фреймом Figma само по себе этого не гарантирует. Более полный чек-лист — в статье Figma в доступный HTML: практическое руководство. - Перепроверьте контент и тексты. Всё, что изменилось в дизайне после того, как был сгенерирован экспорт, проще всего исправить во встроенном редакторе, прежде чем забирать финальный код в проект.
- Подключите собственные данные и состояние. Сгенерированные компоненты отвечают за структуру и стили — подключение их к реальным props, данным API или состоянию приложения по-прежнему остаётся за вами.
Попробуйте на своём дизайне
Ничто из этого не заменяет суждение разработчика о том, как должен вести себя компонент, — это устраняет механическую работу по превращению готовых решений о вёрстке в JSX и CSS, чтобы это суждение можно было направить на те части сборки, которые действительно в нём нуждаются. У MarkupGen есть бесплатный тариф, так что вы можете начать бесплатно и перейти на платный план только тогда, когда он вам понадобится — без скрытых платежей, отменить можно в любой момент. Если хотите увидеть весь процесс из четырёх шагов на реальном дизайне, попробуйте его на своём файле Figma. Вопросы по пути — на support@markupgen.com.
FAQ
Как конвертировать дизайн Figma в React? Изучите структуру фрейма и настройки Auto Layout, определите, какие повторяющиеся части должны стать переиспользуемыми компонентами с props для вариантов, а затем постройте (или сгенерируйте) на основе этой структуры компоненты React и CSS — Auto Layout преобразуется во Flexbox, а ограничения изменения размера определяют адаптивное поведение. Такой инструмент, как MarkupGen, может автоматически сгенерировать этот первый проход; в любом случае перед публикацией стоит провести проверку границ компонентов, доступности и реальных данных.
Можно ли превратить дизайн Figma в переиспользуемые компоненты React? Да, но не каждый слой должен становиться компонентом. Повторяющиеся элементы интерфейса — кнопки, карточки, пункты навигации, поля форм — хорошие кандидаты; слой, который встречается в дизайне лишь один раз, обычно не нуждается в собственном компоненте.
Как Auto Layout в Figma преобразуется в React и CSS?
В основном в CSS Flexbox: направление становится flex-direction, промежуток — gap, отступы — padding, а выравнивание — justify-content/align-items, и всё это переносится в тот подход к CSS, который используют компоненты React.
Как сделать вывод Figma в React адаптивным? Отталкивайтесь от режимов изменения размера Auto Layout и ограничений фрейма — они сигнализируют о задуманном поведении при изменении размера, — но будьте готовы самостоятельно добавить или скорректировать брейкпоинты и вёрстку для мобильных устройств. Ни Figma, ни инструмент конвертации не могут полностью вывести адаптивное поведение, которое ещё не заложено в дизайне.
Должен ли каждый компонент Figma становиться компонентом React? Нет. Превращение в компонент всего, что в файле дизайна помечено как «компонент», обычно лишь добавляет косвенности, не облегчая поддержку кода, — переиспользуемые, повторяющиеся паттерны того стоят, а разовые слои — как правило, нет.
Хотите сразу перейти к конвертации своего дизайна? Конвертируйте дизайн Figma в React с помощью MarkupGen →
