Как верстать с figma

Как верстать с figma

Верстка по макетам из Figma — это ключевой этап превращения дизайна в рабочий сайт или приложение. Основная задача разработчика — точно перенести визуальные решения дизайнера в код, сохранив внешний вид, поведение и адаптивность интерфейса. Для этого нужно уметь читать макеты, понимать параметры элементов (цвета, отступы, шрифты, эффекты) и эффективно взаимодействовать с командой.

Чтобы верстать по Figma, научитесь использовать режим «Dev Mode», экспортируйте точные значения стилей и размеров, проверяйте адаптивность и используйте инструменты автоматизации. Главное — внимательность к деталям и четкая коммуникация с дизайнером.

Как использовать Dev Mode в Figma

Figma предлагает встроенный режим для разработчиков — Dev Mode. Он позволяет быстро получать доступ к техническим данным каждого элемента: размерам, отступам, цветам, теням, бордерам, типографике и другим CSS-свойствам. Чтобы активировать его, достаточно нажать правой кнопкой мыши на нужный объект и выбрать «Show in Developer Mode» или просто переключиться во вкладку «Design / Dev» в правой панели.

В Dev Mode вы увидите все необходимые параметры в удобном формате. Например, при наведении на текстовый блок отобразятся font-family, font-size, line-height, letter-spacing и color. Для кнопки или контейнера можно посмотреть padding, border-radius, box-shadow и background. Это значительно ускоряет процесс сверки и снижает количество ошибок.

Особенно полезна функция измерения расстояний между элементами. Достаточно зажать Shift и провести курсором между двумя объектами — Figma покажет точное расстояние по горизонтали или вертикали. Это критически важно при верстке плотных интерфейсов, где каждый пиксель имеет значение.

Полезно знать: Включите в настройках Figma опцию «Snap to pixel grid», чтобы все элементы автоматически выравнивались по целым пикселям. Это предотвратит проблемы с размытыми границами на экранах с низким DPI.

Также стоит использовать плагины, такие как CSS Prettier, Tokens Studio или Stylify, которые преобразуют свойства из Figma в готовый CSS-код. Некоторые из них поддерживают темы, переменные и даже генерацию SCSS или Tailwind-классов. Это особенно актуально в проектах с дизайн-системами.

Шаги для работы в Dev Mode

  1. Откройте макет в Figma и перейдите во вкладку «Dev» справа.
  2. Выберите нужный слой или компонент с помощью инструмента выбора.
  3. Проверьте все CSS-свойства: размеры, цвета, тени, радиусы скругления.
  4. Измерьте расстояния до соседних элементов с помощью Shift + клик и протягивание.
  5. Экспортируйте растровые ассеты в нужных размерах (1x, 2x, 3x).
  6. Используйте плагины для автоматической генерации стилей.

Извлечение стилей: цвета, шрифты, отступы

Один из самых важных этапов перед началом верстки — систематизация стилей. Дизайн-система в Figma должна содержать глобальные стили для цветов, типографики, интервалов и эффектов. Если их нет, разработчику приходится вручную вычислять и стандартизировать значения, что увеличивает время и риск ошибок.

Цвета в Figma лучше всего хранить в виде Color Styles. Они позволяют задать единые названия (например, «Primary Blue», «Error Red») и применять их к любым элементам. При верстке эти стили можно экспортировать в CSS-переменные:

Название стиля (Figma)
HEX-значение
CSS-переменная
Primary/500
#3B82F6
—color-primary: #3b82f6;
Neutral/900
#111827
—color-text: #111827;
Surface/100
#F9FAFB
—color-bg: #f9fafb;

Шрифты также должны быть унифицированы через Text Styles. Убедитесь, что указаны не только font-size и font-weight, но и line-height, letter-spacing и font-family. Современные браузеры чувствительны к малейшим расхождениям в высоте строки, поэтому важно использовать те же значения, что и в макете.

Отступы и интервалы — ещё одна частая причина расхождений. Хорошая практика — использование spacing tokens: 4px, 8px, 12px, 16px, 24px, 32px и т.д. Такие значения легко преобразовать в CSS-переменные или классы утилитарной системы (например, Tailwind).

«Всегда проверяйте line-height в Figma: он может быть задан в пикселях или em. Переводите его в относительные единицы (em/rem), чтобы обеспечить масштабируемость текста.» — Алексей Петров, senior frontend developer, 8 лет опыта

Если в макете используются иконки, уточните у дизайнера формат: SVG, Icon Font или спрайт. SVG предпочтительнее — они масштабируются без потерь и легко стилизуются через CSS.

Верстка макетов: сетки, фреймы и слои

Figma строится на принципах фреймов (frames), аналогичных flex-контейнерам или grid-обёрткам в CSS. Понимание структуры фреймов помогает быстрее воссоздать макет в HTML. Каждый фрейм может иметь направление (horizontal/vertical), выравнивание и распределение отступов — всё это напрямую соответствует Flexbox.

Например, если в Figma есть фрейм с Auto Layout по вертикали и gap = 16px, его логично сверстать как:

.container {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

Для сеточных макетов (например, карточки товаров) используйте CSS Grid. Figma поддерживает layout grids, которые можно включить для любого фрейма. Они помогают визуализировать колонки, отступы и брейкройнты.

Полезно знать: Figma позволяет задавать несколько типов сеток одновременно — например, 12-колоночную для десктопа и 4-колоночную для мобильного. Используйте это при верстке адаптивных интерфейсов.

При анализе слоёв обращайте внимание на порядок: в Figma верхние слои отображаются выше, а в DOM — то же самое. Однако z-index в CSS может отличаться, особенно если используются position: relative/absolute. Проверяйте, не перекрывают ли элементы друг друга.

Компоненты и экземпляры (instances) в Figma — это аналог React-компонентов или миксинов. Если вы видите повторяющиеся кнопки, карточки или навигацию, верстайте их как переиспользуемые блоки с модификаторами (BEM) или компоненты в фреймворке.

Пример анализа фрейма

  • Фрейм «Header»: Auto Layout, horizontal, gap=24px, padding=16px.
  • Дочерние элементы: логотип, навигация, кнопка входа.
  • Выравнивание: space between (justify-content: space-between).
  • Вывод: использовать flexbox с justify-content: space-between и gap: 24px.

Адаптивная верстка по Figma: best practices

Многие дизайнеры предоставляют макеты только для одного разрешения, но современная верстка требует поддержки множества устройств. Хороший подход — наличие нескольких фреймов под разные брейкройнты: mobile (375px), tablet (768px), desktop (1440px). Figma позволяет организовать их в одном файле с помощью страниц и вариантов компонентов.

Перед началом верстки определите точки перехода (breakpoints). Стандартные значения:

  • Mobile: до 767px
  • Tablet: 768–1023px
  • Desktop: от 1024px

На каждом брейкройнте проверяйте:

  • Изменение структуры (например, вертикальное меню на мобильном).
  • Размеры шрифтов и отступов (часто уменьшаются на мобильных).
  • Скрытие или замена элементов (иконки вместо текста, гамбургер-меню).

Используйте медиа-запросы и relative units (rem, em, %, vw/vh). Избегайте фиксированных ширин, если только это не обусловлено дизайном (например, логотип).

«Не копируйте значения пикселей один к одному. Адаптируйте интервалы: 24px на десктопе → 16px на мобильном. Это делает интерфейс более комфортным.» — Марина Козлова, UX/UI lead, 10 лет в продуктовых командах

Также полезно использовать современные методы:

  • Container Queries — для компонентов, реагирующих на ширину контейнера.
  • Clamp() — для создания fluid typography и spacing.
  • Aspect Ratio — чтобы сохранить пропорции карточек и изображений.

Распространённые ошибки и как их избежать

Даже опытные верстальщики допускают ошибки при работе с Figma. Ниже — самые частые проблемы и способы их устранения.

Ошибка 1: Расхождение в высоте строк

Дизайн: line-height = 24px; Верстка: line-height = 1.5 при font-size = 16px → 24px, но результат отличается.

Причина: в Figma line-height может быть «auto» или «from font». Уточняйте у дизайнера, как рассчитано значение.

Решение: используйте абсолютные значения в пикселях, если требуется точное соответствие.

Ошибка 2: Размытые изображения и иконки

Элементы выглядят нечётко на экране.

Причина: позиционирование по дробным координатам (например, left: 10.3px).

Решение: включите snapping в Figma и используйте transform: translateZ(0) или backface-visibility для принудительного GPU-рендеринга.

Ошибка 3: Несоответствие цветов

Цвет в браузере отличается от Figma.

Причина: разница в цветовых профилях (sRGB vs. P3).

Решение: работайте в sRGB, отключите HDR, используйте стандартные мониторы для сверки.

Ошибка 4: Проблемы с Auto Layout и overflow

Текст выходит за границы блока или фрейм не растягивается.

Причина: в Figma Auto Layout может быть ограничен по высоте.

Решение: проверяйте свойства «Fixed Size» и «Fill Container». В CSS используйте min-height и overflow-wrap.

Полезно знать: Figma показывает размеры в px, но на Retina-экранах 1px в макете = 2 CSS-пикселя. Экспортируйте ассеты в 2x и 3x для поддержки HiDPI.

Экспертное мнение

«Самая большая ошибка — начинать верстку без согласования с дизайнером. Обсудите цветовые переменные, типографическую шкалу, брейкройнты и поведение интерактивных элементов. Это экономит часы правок.» — Дмитрий Смирнов, tech lead в дизайн-системе крупной финтех-компании, 12 лет опыта

По словам эксперта, идеальный workflow включает:

  • Регулярные встречи «handoff» между дизайнером и разработчиком.
  • Использование shared libraries и design tokens.
  • Автоматическую синхронизацию стилей через Figmagic или Style Dictionary.

Также Дмитрий рекомендует внедрять инструменты вроде Chromatic для визуального тестирования: они сравнивают сверстанный интерфейс с макетом и находят расхождения на уровне пикселей.

Вопросы и ответы

Можно ли верстать без доступа к Figma?
Да, но крайне неэффективно. Без Dev Mode приходится полагаться на PNG/PDF-макеты, где невозможно измерить расстояния или проверить цвет. Риск ошибок возрастает на 60–70%. Лучше запросить доступ к Figma-файлу или хотя бы экспортированные ассеты и спецификации.
Как быть, если в Figma нет Auto Layout?
Если макет собран вручную, используйте инструмент измерения (Shift + drag) и создайте структуру самостоятельно. Попросите дизайнера добавить Auto Layout — это улучшит качество передачи макетов в будущем.
Нужно ли верстать все состояния (hover, active, disabled)?
Да, если они есть в макете. Figma позволяет создавать variants компонентов с разными состояниями. Их нужно отразить в коде через псевдоклассы (:hover, :focus) или классы (btn—disabled).
Как экспортировать иконки из Figma?
Выберите иконку, перейдите в Dev Mode, нажмите «Export», выберите формат SVG. Убедитесь, что убраны лишние группы и атрибуты fill (чтобы можно было управлять цветом через CSS).
Что делать, если макет устарел?
Сверяйте версию файла с дизайнером. Figma сохраняет историю изменений — можно посмотреть, что изменилось. При массовых правках лучше запросить актуальную версию.

Заключение

Верстка по Figma — это не просто копирование пикселей, а осмысленный процесс трансляции дизайна в живой интерфейс. Успешная реализация требует технических навыков, внимания к деталям и слаженной работы с дизайнерами. Использование Dev Mode, правильная работа со стилями и адаптивностью позволяют достичь максимального соответствия макету.

Главное — не торопиться. Каждый элемент должен быть проверен, каждый отступ — осмыслен. Инвестиции в точность окупаются стабильностью, скоростью правок и удовлетворённостью заказчика.
  • Всегда используйте Dev Mode для получения точных значений.
  • Стандартизируйте цвета, шрифты и отступы через переменные.
  • Учитывайте адаптивность и все брейкройнты.
  • Проверяйте line-height, цветовые профили и рендеринг на разных устройствах.
  • Поддерживайте связь с дизайнером — это ключ к качественному handoff.
⚠️ Дисклеймер — нажмите, чтобы развернуть

Материалы, опубликованные в разделе «Блог» на сайте RU DESIGN SHOP (rudesignshop.ru), носят исключительно информационный и ознакомительный характер и не являются руководством к действию, финансовой рекомендацией, медицинской услугой, ветеринарным назначением либо рекламой товаров и услуг, включая азартные игры. Публикации не содержат призывов к участию в азартных играх и не направлены на продвижение соответствующих операторов.

Безопасность применения товаров и веществ: при использовании строительных материалов, бытовой химии, пестицидов и агрохимикатов необходимо строго следовать инструкциям производителя и действующему законодательству Российской Федерации, включая Федеральный закон РФ от 19.07.1997 № 109-ФЗ «О безопасном обращении с пестицидами и агрохимикатами».

Упоминание товарных знаков, брендов и организаций носит исключительно информационный характер и не означает наличие партнёрских отношений или одобрения со стороны правообладателей.

Материалы, содержащие сведения о медицинских, ветеринарных или косметических средствах, представлены в справочных целях и не являются медицинской консультацией или назначением. Перед применением рекомендуется обратиться к врачу, ветеринарному специалисту или иному сертифицированному профессионалу.

Возрастные ограничения: материалы, содержащие сведения о продукции категории 18+, включая алкоголь или азартные игры, предназначены исключительно для совершеннолетней аудитории и публикуются в информационных целях.

Правовая ответственность: решения, принятые на основе опубликованной информации, пользователь принимает самостоятельно и на свой риск; редакция и авторы несут ответственность в пределах, установленных законодательством Российской Федерации.

Редакция не допускает публикаций, содержащих пропаганду экстремизма, терроризма, наркотических средств или суицида; подобные материалы подлежат немедленному удалению.

Упоминание организаций с ограниченным статусом: компания Meta Platforms Inc. (социальные сети Facebook и Instagram) признана экстремистской организацией решением суда РФ, её деятельность запрещена на территории Российской Федерации; любые упоминания приводятся исключительно в информационных целях.

Авторские права и источники: информация собирается из открытых источников; её актуальность указывается на дату публикации и может изменяться.

Изображения и иллюстрации используются на условиях, разрешённых правообладателями. При возникновении претензий редакция готова оперативно рассмотреть обращение и внести необходимые изменения.

Персональные данные и cookies: сайт использует cookies и обрабатывает персональные данные пользователей в соответствии с Федеральным законом № 152-ФЗ «О персональных данных» и Политикой конфиденциальности RU DESIGN SHOP.

Мнения авторов могут не совпадать с позицией государственных органов или коммерческих организаций, упомянутых в материалах.