Разбираем, как ИИ помогает превратить макеты Figma в продакшен‑код: токены, компоненты, генерация и ревью, a11y, тесты и внедрение в командный процесс.

Разрыв появляется не потому, что дизайнеры «плохо рисуют», а разработчики «плохо верстают». Figma — это идеальная модель, а продакшен — живая система с ограничениями: сетки, библиотека компонентов, производительность, поддержка разных браузеров и устройств, требования доступности и локализации.
Неявные решения. В макете видно, как должно выглядеть, но не всегда понятно, почему так и как должно вести себя в крайних случаях: длинные тексты, пустые состояния, ошибки, загрузка, разные роли пользователя.
Контекст продукта. Экран в Figma часто показывается «в вакууме». В приложении он живёт среди других экранов, навигации, ограничений данных и существующих UI‑паттернов.
Отступы и размеры. В Figma можно выставить «идеальные» 14/18/22 px, но в проекте всё упирается в кратность сетке, существующие spacing‑токены и то, как работает auto‑layout в реальных контейнерах.
Состояния. В макете могут быть только default/hover, а в продакшене нужны ещё focus, disabled, loading, error, visited. Если они не описаны, их «додумают» — и получится иначе.
Адаптив. Частая проблема: макет нарисован для одной ширины, а на других не определены правила — что переносится, что скрывается, где обрезаем текст, когда меняем сетку.
Шрифты и рендеринг. Разные платформы по‑разному сглаживают шрифты, иначе считают высоту строки и кернинг. «1 в 1» визуально может быть недостижимо без компромиссов.
Потому что «почти» множится: небольшие отклонения в 2–4 px, неверный line-height или недостающий focus‑стейт в сумме дают ощущение неряшливости и ломают доверие к продукту.
ИИ хорошо ускоряет черновую разметку, перенос стилей, генерацию компонентов по структуре, подсказки по адаптиву и типовым состояниям.
Но ИИ плохо заменяет продуктовые решения: правила поведения в крайних случаях, согласование с дизайн‑системой, выбор правильных токенов, доступность (focus, контраст, aria) и соответствие реальным данным. Здесь всё ещё нужен человек и ревью.
Отдельно важно, где именно вы используете ИИ. Например, TakProsto.AI — это vibe‑coding платформа, где интерфейсы и логика собираются через чат, а результат можно экспортировать как исходники. В контексте «Figma → продакшен» такой подход полезен как ускоритель: быстро собрать каркас на React, обсудить варианты состояний/адаптива и затем довести до стандартов вашей команды.
ИИ «читает» макет не глазами, а по структуре: как устроены фреймы, какие у них ограничения, что является компонентом, а что — случайной группой. Чем больше в файле явных правил, тем меньше он будет додумывать — и тем ближе получится результат.
Сведите экран к понятной иерархии: Frame → секции → блоки → элементы. Избегайте глубоких уровней вложенности без смысла.
Auto Layout используйте везде, где есть повторяемые ряды/колонки, отступы и выравнивание. Для ИИ это сигнал, что элементы должны тянуться и перестраиваться, а не быть «прибитыми» абсолютными координатами.
Компоненты и варианты (Variants) оформляйте так, чтобы один и тот же UI не был нарисован заново в разных местах. Дубликаты обычно превращаются в разные реализации в коде.
Хаотичные имена вроде “Rectangle 57” повышают шанс ошибок: ИИ сложнее понять, где кнопка, где иконка, а где контейнер.
Хороший минимум:
Button, Input, Modallabel, icon-left, helper-text, containerstate=default/hover/disabled, size=s/m/lГлавное — последовательно во всём файле.
Задайте Layout Grid для ключевых экранов и проверьте Constraints (Left/Right/Top/Bottom, Fill/Hug). Если элемент должен растягиваться — это должно быть явно задано.
Если дизайн предполагает несколько брейкпоинтов, покажите их отдельными фреймами и придерживайтесь одной логики: одинаковые отступы, те же компоненты, понятные правила перестройки.
ИИ часто ошибается именно в состояниях, потому что их «не видно» на основном экране. Сделайте набор вариантов для интерактивных элементов: hover, active, disabled, focus, loading, error/success. Для сложных сценариев (например, пустые/загруженные списки) добавьте отдельные фреймы.
Подготовленный макет уменьшает неоднозначность: ИИ реже угадывает размеры и отступы, точнее переносит поведение компонентов, лучше понимает, что можно переиспользовать. В итоге вы получаете меньше «лишней» разметки, меньше расхождений с дизайном и более предсказуемый результат при дальнейшей доработке в PR.
ИИ может генерировать код «по картинке», но лучший результат получается, когда он получает не только внешний вид, а структуру макета и контекст проекта. Чем меньше ему приходится угадывать, тем меньше сюрпризов в вёрстке.
Если ИИ читает структуру Figma (через экспорт/Inspect/плагины), он опирается на:
Эти данные помогают ИИ не просто «нарисовать» HTML/CSS, а собрать UI как систему, близкую к продакшену.
Скриншот-анализ чаще даёт быстрый черновик: визуально похоже, но могут быть случайные отступы, странные размеры шрифтов, неверные состояния компонентов, а адаптивность обычно приходится переделывать.
Чтение структуры Figma позволяет восстановить намерения дизайнера: распознать Auto Layout, переиспользовать компоненты, корректно связать текстовые стили и цвета. Если есть возможность — выбирайте сценарий, где ИИ получает именно структуру.
Даже идеальный макет не отвечает на вопросы разработки. ИИ стоит сразу дать:
Чтобы перевод был «в стиле проекта», приложите вместе с ссылкой на Figma:
Так вы превращаете генерацию из «угадайки» в управляемую сборку, где ИИ следует вашим правилам, а не своим предположениям.
Токены дизайна — это «единицы правды» для визуальных решений: не «синий как на кнопке», а конкретное значение, которое одинаково понимают и дизайн, и код. Когда токены заданы, ИИ (и разработчики) меньше гадают, что именно имелось в виду в макете — и реже генерируют случайные оттенки, размеры и отступы.
Обычно начинают с базового набора:
Важно, чтобы токены были не «разовыми» (“buttonBlue”), а семантическими (“color.primary”, “color.textMuted”) — тогда они переживут редизайн и проще ложатся на разные компоненты.
В Figma почти всегда копятся «почти одинаковые» стили: два одинаковых серых с разницей в 1–2%, несколько близких теней, разные радиусы у похожих карточек. ИИ полезен как ускоритель аудита:
Результат — меньше вариантов токенов и меньше хаоса при генерации фронтенд‑кода.
Хорошая практика — разделять базовые токены и тематические:
Так вы можете переключать light/dark или бренд‑скины без переписывания компонентов — меняется только маппинг токенов.
Минимально удобно хранить токены в JSON (или TS для типизации) и подтягивать в CSS variables.
// tokens.ts
export const tokens = {
color: {
base: { white: "#FFFFFF", black: "#0B0B0B" },
light: {
background: "#FFFFFF",
text: "#0B0B0B",
primary: "#2563EB"
},
dark: {
background: "#0B0B0B",
text: "#F5F5F5",
primary: "#60A5FA"
}
},
radius: { sm: "4px", md: "8px" },
space: { 1: "4px", 2: "8px", 3: "12px", 4: "16px" },
shadow: { sm: "0 1px 2px rgba(0,0,0,.08)" }
} as const;
Дальше ИИ проще генерировать компоненты так, чтобы они ссылались на переменные/токены, а не «вшивали» пиксели. Это напрямую повышает стабильность переноса: дизайн меняется — вы обновляете токены, а не правите десятки файлов.
Главная цель хэнд‑оффа — чтобы макет превращался не в набор «уникальных блоков», а в использование уже существующих UI‑компонентов. Тогда код получается предсказуемым, поддерживаемым и быстрее проходит ревью.
Начните с простого вопроса: «Какой компонент в коде отвечает за этот элемент в Figma?» Если у команды есть библиотека (MUI, Ant, Chakra) или своя дизайн‑система, почти всегда есть аналоги: Button, Input, Select, Modal, Tabs, Tooltip.
Практика, которая работает лучше всего, — завести таблицу соответствий (mapping). Это может быть страница в Notion или README в репозитории:
Button/Primary → AppButton)size="sm|md|lg", variant="primary|secondary", disabled)startIcon, endIcon)Если просить ИИ генерировать код сразу для экранов, он часто создаёт «одноразовые» компоненты под конкретный макет. Надёжнее двигаться наоборот:
ИИ хорошо помогает именно на уровне перевода «дизайнерских» решений в понятный разработке интерфейс:
loading и disabled);Чтобы не плодить одноразовый UI, закрепите правило: новый компонент появляется только после короткого согласования (дизайн + фронтенд) и добавления в таблицу соответствий.
ИИ лучше всего справляется не с «построить весь интерфейс», а с быстрым переводом макета в аккуратный каркас: структуру, базовые стили и повторяемые паттерны. Это экономит часы на рутине — если заранее задать рамки.
Перед генерацией уточните, куда именно должен «приземлиться» результат:
ИИ может выдать хороший код, но только в выбранной парадигме. Если промолчать, он смешает подходы (например, Tailwind и CSS-in-JS), и это усложнит дальнейшую поддержку.
Просите конкретику: структуру, ограничения и критерии готовности. Пример формулировки:
Сгенерируй React-компонент для блока “CheckoutSummary” по макету.
- TypeScript, функциональный компонент
- Стили: CSS Modules (файл CheckoutSummary.module.css)
- Используй BEM-нейминг для классов внутри модуля
- Разметка должна повторять иерархию слоёв: header/content/footer
- Добавь состояния: default/hover/disabled для кнопки
- Укажи aria-label где нужно, и корректные роли
- Выведи интерфейсы пропсов и пример использования
Обычно с первого раза хорошо генерируются:
Не пытайтесь одним запросом получить целую страницу с бизнес-логикой. Лучше генерировать по компонентам: сначала «скелет», затем отдельным шагом — интерактивность и интеграции.
Плохие кандидаты для полной генерации: сложные формы с валидацией, нестандартная анимация, хитрые таблицы, а также логика, завязанная на API и состояние приложения. Здесь ИИ полезен как ускоритель, но финальная архитектура должна оставаться под контролем команды.
ИИ может быстро сгенерировать основу интерфейса по макету, но «продакшен‑качество» появляется только после ревью. Относитесь к AI‑коду как к черновику: он экономит время на рутине, но ответственность за итоговую точность и поддерживаемость остаётся у команды.
Начните с визуальной точности — это самый заметный слой.
Практический приём: сравнивайте не «на глаз», а в одном масштабе (100%) и в одинаковых состояниях (default/hover/disabled).
AI нередко генерирует много инлайн‑значений. На ревью цель — свести их к системе:
Даже если UI выглядит правильно, код может быть неудобен для поддержки.
Разработчик: токены/компоненты переиспользованы, нет лишних инлайн‑стилей, аккуратные классы/селекторы.
Дизайнер: проверены ключевые экраны и состояния, типографика и отступы, адаптивные точки.
Вместе: согласованы допустимые отклонения (например, округления до 4px) и зафиксированы как правило.
Добавьте визуальные сравнения в процесс: скриншот‑тесты для страниц или Storybook‑компонентов. Инструменты вроде Playwright (скриншоты), Chromatic/Percy/Loki помогают ловить незаметные смещения на 1–2 px до релиза — особенно после правок AI‑кода.
Когда макет «идеально выглядит» в Figma, легко упустить два слоя требований, которые в продакшене критичны: доступность (a11y) и локализацию. ИИ, генерирующий интерфейс по дизайну, ускоряет перенос, но без явных правил может воспроизвести картинку, не обеспечив удобство для пользователей с разными сценариями.
Проверяйте, чтобы из макета в код переносились не только стили, но и семантика:
<button>, ссылка — <a>, список — списком. Если визуально это «кнопка», но в коде — <div>, начнутся проблемы с навигацией и экранными читалками.aria-label для иконок без текста, aria-expanded для раскрывающихся элементов, aria-describedby для подсказок и ошибок.ИИ полезен здесь как «вторые глаза»: он может найти места, где вы используете нестандартные компоненты (например, кастомный селект), и подсказать, какие роли/атрибуты и обработчики клавиш нужны, чтобы поведение было корректным.
Два частых расхождения между Figma и продакшеном — контраст и размеры зон клика.
ИИ может подсказать «кандидатов на риск»: элементы с мелким шрифтом, второстепенные ссылки, иконки без подписей — и предложить варианты исправлений (увеличить контраст, добавить подпись, расширить область нажатия), не ломая композицию.
Локализация ломает интерфейсы чаще, чем кажется: строки становятся длиннее, меняются правила переносов и направление письма.
ИИ может помочь на этапе ревью: сгенерировать «стресс‑тексты» (длинные строки), подсветить места, где компонент не тянется или ломается, и предложить, где использовать авто‑лейаут/гибкую вёрстку, а где — ограничение по строкам с подсказкой.
Если включить a11y и i18n в критерии готовности (Definition of Done) для переноса из Figma, вы получите интерфейс, который выглядит как в макете — и при этом работает корректно для реальных пользователей.
Даже идеальный хэнд‑офф из Figma не гарантирует, что интерфейс останется «как в макете» после пары спринтов. Самый надёжный способ удержать соответствие — сделать его проверяемым: через тесты компонентов, визуальные проверки и понятный «контракт» между дизайном и кодом.
Юнит‑тесты в UI полезны там, где есть логика и правила, а не пиксели. Проверяйте то, что влияет на поведение:
А вот тестировать «у кнопки есть класс .primary» обычно бессмысленно: такие проверки ломаются от рефакторинга и мало говорят о качестве.
Снэпшоты (DOM/JSX) помогают заметить неожиданные структурные изменения, но часто шумят: малейшее переименование или обёртка — и обновления становятся рутиной.
Максимум пользы дают визуальные регрессионные тесты: они ловят реальные отклонения от дизайна — от сломанной сетки до неправильных отступов. Хорошая стратегия — покрывать:
Storybook удобен как витрина и как спецификация. Каждая story фиксирует набор пропсов и ожидаемое состояние компонента. Дизайнеру проще сверять варианты, разработчику — поддерживать совместимость.
Практика, которая хорошо работает: для каждого компонента иметь истории минимум для default/hover/focus/disabled/error, а для сложных — ещё и пустые/переполненные/длинные тексты. Это снижает шанс сюрпризов на проде.
ИИ полезен как ускоритель, а не как «автотестер». Он может:
Дальше задача команды — отфильтровать и закрепить важное в CI: чтобы любое отклонение от дизайна становилось видимым сразу, а не после релиза.
ИИ приносит пользу только тогда, когда его результат проходит тот же путь, что и обычный код: через ветки, PR, проверки и релиз. Если «генерацию» держать как отдельную магию в чате, вы получите нестабильность, спорные правки и трудно воспроизводимые баги.
Сделайте ИИ частью конвейера качества, а не заменой ревью.
Во‑первых, фиксируйте формат вывода: например, договоритесь, что генерация всегда создаёт файлы в конкретной структуре, с одинаковыми соглашениями об именовании классов/компонентов и без «лишних» зависимостей.
Во‑вторых, подключите обязательные проверки в CI:
Важно: CI должен падать предсказуемо и объяснимо. Тогда ИИ становится ускорителем, а не источником «почему оно не проходит пайплайн».
Если вы используете платформу вроде TakProsto.AI, удобно закреплять этот подход организационно: команда генерирует черновик через чат, затем делает экспорт исходников и прогоняет их через стандартный пайплайн (линтеры, типы, сборка, тесты) — как и любой код после обычного программирования.
Практика, которая быстро снижает стресс: генерировать код в отдельной ветке (например, ai/figma-<ticket>) и открывать PR, как обычно.
Добавьте PR‑шаблон специально для UI:
/design/figma-file-id — как принято у вас в документации);Так дизайнеру и разработчику проще обсуждать изменения по диффу, а не «на глаз».
Сгенерированный код часто пытается «притащить» новые библиотеки. Введите правило: любые новые зависимости добавляются только осознанно через отдельный коммит и короткое обоснование в PR.
Полезно автоматизировать:
Чтобы понять, работает ли подход, заранее договоритесь о 3–4 метриках:
Эти цифры быстро показывают, где ИИ ускоряет, а где пока добавляет шум — и что именно стоит улучшить в процессе.
ИИ действительно ускоряет перенос из Figma в продакшен, но быстрее всего команды разочаровываются там, где нет границ: модель «додумывает» то, чего не было в макете, или предлагает решения, не совместимые с вашим стеком.
Галлюцинации и неверные допущения. ИИ может придумать отсутствующие состояния (hover/disabled), неверно интерпретировать отступы или выбрать другой компонент (например, заменить dropdown на autocomplete).
Нестабильные стили. Без токенов и эталонных компонентов генерация часто приводит к «почти одинаковым» цветам, шрифтам и радиусам, которые расползаются по коду и усложняют поддержку.
Переусложнение. Модель любит «на всякий случай» добавить абстракции, обёртки, лишние пропсы и универсальные хелперы. Итог — код выглядит умнее, чем нужно, и хуже читается командой.
Работает простое правило: чем больше стандартов, тем меньше сюрпризов.
Перед отправкой макета/экспорта в ИИ определите, что можно передавать:
Если сомневаетесь — делайте «sanitized» дубль файла: переименуйте страницы, замените контент плейсхолдерами, оставив только структуру UI.
Если требования по данным строгие, заранее проверяйте, где и как обрабатываются макеты. Например, TakProsto.AI работает на серверах в России и использует локализованные/opensource LLM‑модели, не отправляя данные в другие страны — это может быть важным аргументом для команд с повышенными требованиями к комплаенсу.
ИИ не всегда выигрывает по времени. Чаще всего руками быстрее сделать:
Выберите 1 экран средней сложности и один флоу.
Зафиксируйте эталон: токены, набор UI‑компонентов, правила именования.
Опишите «контракт генерации»: что ИИ имеет право создавать, а что — только использовать.
Введите ревью‑правила: стили, зависимости, доступность (a11y) и перфоманс.
Сравните время и качество с ручной реализацией, затем масштабируйте.
Следующий шаг: оценить, какой формат подойдет вашей команде и бюджету — /pricing.