Artem Lomonosov
Artem Lomonosov
3 мин. читать
1873 показа
769 открытий

Респонсивный дизайн, когда дизайнеры и фронтендеры заодно

Последнее обновление Фигмы мотивирует дизайнера думать, как фронтендер. Теперь понимание принципов вёрстки – навык, который особенно влияет на качество макетов.

Когда говорим про респонсив, скорее всего представляем набор макетов под разные брейкпоинты – разрешения экранов. В CSS правила поведения в каждом брейкпоинте описываются медиазапросом. Он содержит условия срабатывания и набор правил поведения компонентов и лэйаутов. Подробнее про медиазапросы

У такого подхода есть проблемы. Во-первых, вы не особо контролируете то, что происходит между брейкпоинтами. Во-вторых, медиазапросы могут быть очень большими, так как для некоторых размеров экранов приходится переназначать много свойств. К счастью в CSS появляются возможности, которые решают эти проблемы. Ниже мы познакомимся с этими возможностями и посмотрим, как они ложатся на функции Фигмы.

Flexbox

С помощью флексбоксов мы можем задавать правила респонсива для конкретного компонента или блока. Достаточно один раз прописать эти правила и компонент будет меняться в зависимости от размера родительского контейнера. Подробнее про CSS Flexbox

В Фигме флексбоксам соответствуют автолэйауты. В последнем обновлении у них появился параметр Wrap, который переносит блоки на следующую строку, если им не хватает места в контейнере. Точно так, как во флексбоксах. Например, теперь можно превращать горизонтальную карточку в вертикальную (см. картинку выше), просто сжимая макет. Если ещё не успели, обязательно посмотрите все функции автолейаутов в фигмовcком плейграунде.

Grid layout

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

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

Гибкие размеры

Относительные единицы и сравнительные функции позволяют создавать гибкие лэйауты без медиазапросов. Например, можно использовать rem вместо px. Разница в том, что px – это абсолютная и окончательная единица, а rem рассчитывается относительно размера шрифта элемента. Есть единицы, которые рассчитываются относительно размера экрана: vw, vh, vmi, vmax.Подробнее про относительные единицы и функции сравнения

В Фигме можно использовать условно относительные единицы. По умолчанию в ней нет rem или vh, но с помощью переменных и алиасов возможно менять размерную сетку, изменив только один параметр. Подробнее расскажу об этом в следующих статьях. 

Size Container Queries

В CSS с помощью запросов к размеру контейнера можно изменять свойства компонента. Например, в сайд-баре есть плитка с карточками статей. Чем больше размер экрана, тем шире сайд-бар и карточки в нём. Если в карточки уже заложены правила поведения относительно размера, то они будут автоматически менять внешний вид при увеличении ширины.Подробнее про контейнерные запросы

В Фигме мы можем задать поведение компонента относительно размера контейнера с помощью автолейаутов с функцией Wrap и его минимальными/максимальными размерами. К сожалению, так мы влияем только на перенос блоков на следующую строку. Для более глобальных изменений компонента придётся использовать варианты. 

Size Container Queries Units

В дополнение к теме контейнерных запросов. В CSS можно гибко настраивать размеры содержимого компонента относительно размеров самого компонента. Для этого используют относительные единицы cqw, cqh и так далее.Видео про эти единицы измерения

В Фигме аналогов таким единицам пока нет. Но можно попробовать использовать переменные.

В статье постарался обзорно познакомить вас с современными возможностями CSS для создания респонсива. В следующих статьях посмотрим, как можно применять эти знания в макетах.

Если хотите больше узнать о возможностях CSS для создания респонсива, то советую прочитать эту статью (на английском).

1873
1

Подпишитесь на еженедельный
дайджест

Редакция отбирает лучший контент за неделю и отправляет его на вашу почту

Cпасибо за подписку!

Письмо с подтверждением отправлено на адрес . Если вы не можете найти письмо во входящих, проверьте папку спама

  • Новые
  • Старые
  • Популярные

Рекомендации

только для зарегистрированных
только для зарегистрированных
Подтвердите действие
Точно?
Сообщение
Текст
Подтвердите действие