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

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

Верстка сайта по макету из Figma — это процесс преобразования дизайнерского прототипа в рабочий, интерактивный и адаптивный веб-интерфейс с использованием HTML, CSS и JavaScript. Ключевая задача — точно передать визуальные элементы, анимации, отступы и поведение компонентов, не теряя при этом производительность и доступность.

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

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

Подготовка к верстке: что нужно получить от дизайнера

Перед началом верстки важно убедиться, что макет в Figma подготовлен корректно. Некоторые дизайнеры оставляют «сырые» файлы, где нет четкой структуры, названий слоев или брейкпоинтов. Это увеличивает время на согласование и приводит к ошибкам.
Убедитесь, что у вас есть доступ к полному Figma-файлу, а не только к скриншотам. В идеале проект должен быть организован в виде фреймов (frames) с понятными названиями: Desktop, Tablet, Mobile. Каждый экран должен соответствовать определенному состоянию страницы — главная, каталог, форма обратной связи и т.д.
Проверьте наличие следующих элементов:

  • Цветовая палитра, вынесенная в стиль (color styles).
  • Шрифтовые стили (text styles) для заголовков, основного текста, кнопок.
  • Гайды и сетка (layout grid), указывающие отступы и колонки.
  • Прототип с переходами между экранами (для понимания логики интерфейса).
  • Ассеты: иконки, логотипы, иллюстрации, которые нужно экспортировать.

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

Полезно знать: Используйте режим «Dev Mode» в Figma — он позволяет разработчику просматривать параметры слоев без необходимости изменять макет.

Проверка макета на полноту

Перед тем как начать верстать, пройдитесь по каждому экрану и проверьте:

  • Все ли состояния интерактивных элементов учтены (например, hover, active, disabled)?
  • Есть ли макеты для всех брейкпоинтов (1920px, 1024px, 768px, 375px)?
  • Указаны ли отступы между блоками (внутренние и внешние)?
  • Определены ли Z-индексы для слоев (например, модальные окна, подсказки)?

Если дизайнер не предусмотрел какие-то состояния, предложите стандартные решения — например, использовать серую рамку для disabled-кнопки или затемнение фона для модального окна.

Инструменты для точной передачи данных из Figma в код

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

  • Выделите любой элемент — справа откроется панель с его свойствами.
  • Нажмите на значение цвета, чтобы скопировать HEX, RGB или HSL.
  • Используйте инструмент «Inspect», чтобы увидеть расстояние до соседних объектов (offset).
  • Щелкните правой кнопкой по тексту, чтобы получить font-family, font-size, line-height, letter-spacing.

Современные плагины значительно упрощают процесс:

  • WhatFont — определяет шрифт на макете, если он не указан явно.
  • Autoresize — помогает проверить, как элементы ведут себя при изменении размера.
  • CSS Peeper — экспортирует CSS-стили прямо из Figma.
  • Tokens Studio — синхронизирует дизайн-токены (цвета, отступы, радиусы) между Figma и кодом.
«Не полагайтесь только на глазомер. Всегда проверяйте значения через Dev Mode — даже 1px может повлиять на восприятие интерфейса.» — Алексей Миронов, senior frontend developer, 10 лет опыта

Как копировать стили правильно

Figma показывает line-height в пикселях, но в CSS часто удобнее использовать единицы без измерения (unitless). Например, если в Figma указан line-height = 24px при font-size = 16px, в CSS лучше записать как 1.5.
Также обратите внимание на:

  • Letter-spacing — в Figma может быть в пикселях, а в CSS — в em или px.
  • Box-shadow — копируйте строку целиком, но проверьте, поддерживается ли она в целевых браузерах.
  • Border-radius — если используется несколько значений (например, 8/4), это означает эллипс; в CSS придется прописывать border-radius: 8px / 4px.
Параметр
В Figma
В CSS
Line height
24 px
1.5 (если font-size: 16px)
Letter spacing
0.5 px
0.5px или 0.03em
Shadow
0px 2px 4px rgba(0,0,0,0.1)
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
Radius
8/4
border-radius: 8px / 4px;

Как верстать: структура, сетка и адаптивность

После сбора данных можно переходить к верстке. Начните с создания базовой HTML-структуры. Используйте семантические теги: <header>, <main>, <section>, <article>, <footer>. Это улучшит SEO и доступность.
Сетка — один из ключевых аспектов. Если в Figma используется 12-колоночная сетка с отступами 24px, воспроизведите её с помощью CSS Grid или Flexbox. Например:

.container {
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: 24px;
padding: 0 24px;
}

Для адаптивности задайте брейкпоинты на основе макетов. Обычно используют:

  • Desktop: 1200–1920px
  • Tablet: 768–1024px
  • Mobile: 320–480px

Применяйте медиа-запросы, чтобы менять сетку и размеры элементов:

@media (max-width: 1024px) {
.container { grid-template-columns: repeat(8, 1fr); }
}
@media (max-width: 768px) {
.container { grid-template-columns: 1fr; }
}

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

Пиксель-перфект: как добиться точного соответствия

Чтобы сверить верстку с макетом, используйте режим наложения (overlay) в Figma. Активируйте его в Dev Mode — картинка макета накладывается поверх сайта с 50% прозрачностью.
Проверяйте:

  • Соответствие отступов (padding/margin).
  • Выравнивание текста и иконок.
  • Размеры кнопок и полей ввода.
  • Высоту строк и межбуквенных интервалов.

Если есть расхождения — не меняйте макет, а анализируйте причину: возможно, шрифт не загрузился, или сработал user-agent стиль. Сбросьте CSS с помощью normalize.css или reset.css.

Работа со шрифтами и текстом

Шрифты — важнейший элемент дизайна. Если в Figma используется Google Fonts (например, Inter, Roboto), подключите их через <link> в head или @import в CSS.
Для кастомных шрифтов (WOFF, WOFF2) используйте @font-face:

@font-face {
font-family: 'CustomFont';
src: url('fonts/custom.woff2') format('woff2');
font-weight: 400;
font-display: swap;
}

Обратите внимание на font-display: swap — это обеспечит отображение текста даже до загрузки шрифта, предотвращая FOIT (Flash of Invisible Text).
Создайте CSS-классы для текстовых стилей:

.text-h1 { font-size: 32px; line-height: 1.2; font-weight: 700; }
.text-body { font-size: 16px; line-height: 1.5; color: #333; }

«Используйте CSS-переменные для типографики. Это позволит быстро менять стили на разных темах или брейкпоинтах.» — Анна Ковалёва, UI/UX engineer, дизайн-системы

Компоненты и повторяющиеся элементы

Figma позволяет создавать компоненты (Components) — переиспользуемые блоки, такие как кнопки, карточки, навигация. Эти же принципы применяйте в верстке: создавайте переиспользуемые CSS-классы и, при использовании фреймворков, React/Vue-компоненты.
Например, кнопка с разными состояниями:

.button { padding: 12px 24px; border-radius: 8px; }
.button--primary { background: #0066cc; color: white; }
.button--secondary { background: #f0f0f0; color: #333; }
.button:hover { opacity: 0.9; }

Если в проекте много однотипных карточек, используйте миксины (в Sass) или CSS-классы с модификаторами по БЭМ.

Работа с состояниями

Убедитесь, что все интерактивные состояния реализованы:

  • :hover — при наведении
  • :focus — для доступности (через Tab)
  • :active — при клике
  • :disabled — для неактивных элементов

Не забывайте про touch-устройства — используйте @media (hover: none) для оптимизации.

Экспорт ресурсов: иконки, изображения, SVG

Из Figma можно экспортировать изображения в PNG, JPG, SVG. Для иконок и логотипов всегда выбирайте SVG — они масштабируются без потерь и легче в управлении.
Чтобы экспортировать:

  1. Выделите слой или фрейм.
  2. В правой панели найдите раздел «Export».
  3. Выберите формат (SVG, PNG @1x, @2x) и нажмите «Export».

Для retina-экранов экспортируйте изображения в @2x и @3x. В HTML указывайте через srcset:

Описание

SVG можно встраивать напрямую в HTML для управления через CSS/JS:

Полезно знать: Оптимизируйте SVG через SVGO или онлайн-инструменты — удалите лишние метаданные, комментарии и скрытые слои.

Тестирование и сверка с макетом

После завершения верстки проведите тщательное тестирование:

  • Откройте сайт в разных браузерах (Chrome, Firefox, Safari, Edge).
  • Проверьте адаптивность на реальных устройствах или через DevTools.
  • Используйте Figma Overlay для пиксель-перфекта.
  • Протестируйте доступность: контраст текста, клавиатурная навигация, ARIA-атрибуты.

Автоматизируйте проверку с помощью инструментов:

  • Lighthouse — для аудита производительности, доступности, SEO.
  • Pa11y — для тестирования доступности.
  • Chromatic — для визуального тестирования компонентов.

Чек-лист перед сдачей

  • Соответствие макету по всем брейкпоинтам ✅
  • Корректная работа анимаций и hover-эффектов ✅
  • Подключены правильные шрифты и fallback-шрифты ✅
  • Изображения оптимизированы и имеют alt-атрибуты ✅
  • Код валиден (HTML, CSS) и соответствует стайлгайду ✅

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

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

По его словам, важно мыслить системно: использовать дизайн-токены, создавать компоненты, а не просто копировать пиксели. «Когда вы верстаете, вы не просто переводите макет в код — вы строите цифровую среду. И она должна быть живой, масштабируемой и удобной.»

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

Что делать, если в Figma используется шрифт, которого нет в сети?
Запросите у дизайнера файл шрифта или замените его на аналог из Google Fonts. Убедитесь, что у вас есть лицензия на использование.
Как быть, если макет не адаптивный?
Обсудите с дизайнером брейкпоинты и поведение элементов на мобильных. При необходимости предложите свои решения — например, свайп-меню или упрощенную форму.
Можно ли автоматически генерировать код из Figma?
Существуют плагины (например, Anima, Figma to Code), но их код часто требует доработки. Лучше использовать их как помощника, а не основной инструмент.
Как согласовать z-index в команде?
Создайте шкалу z-index в CSS-переменных: —z-modal: 1000; —z-header: 900; —z-tooltip: 800. Это предотвратит конфликты.
Нужно ли сверять каждый пиксель?
Стремитесь к точности, но помните: 1–2px расхождения допустимы, особенно если они не влияют на UX. Главное — общее впечатление и функциональность.

Заключение

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

Чтобы верстка была точной и эффективной, работайте в тесном контакте с дизайнером, используйте Dev Mode в Figma, применяйте современные методы верстки и тестируйте на всех уровнях. Помните: хороший код — это не только соответствие макету, но и качество, масштабируемость и удобство поддержки.
  • Всегда проверяйте макет на полноту перед началом верстки.
  • Используйте Dev Mode в Figma для получения точных значений.
  • Применяйте семантическую разметку и адаптивные единицы измерения.
  • Экспортируйте ресурсы в правильных форматах (SVG для иконок).
  • Тестируйте верстку в разных условиях и браузерах.
⚠️ Дисклеймер — нажмите, чтобы развернуть

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

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

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

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

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

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

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

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

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

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

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

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