Базовый пример

При создании компонента я предпочитаю придерживаться гибкого мышления во время работы над ним. Давайте рассмотрим пример.

Современный CSS даёт нам возможность писать адаптивные стили, не полагаясь полностью на медиа-запросы. Например, свойство flex-wrap помогает переносить элементы на другую строку при нехватке места.

.reaction-button {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

Здесь есть три приятные детали:

  • Перенос на новую строку происходит согласно условиям. Нет места? Отлично, тогда переносим элементы.
  • Он остаётся по центру как в горизонтальном, так и в вертикальном стилях.
  • Свойство gap работает по запросу. Если расположение горизонтальное, то активен только межколоночный интервал. Если элементы сложены в стопку, то работает межстрочный интервал.

Интересно, что всё вышеперечисленное было сделано без использования медиа-запросов. Давайте применим те же идеи к большому компоненту.

Автор: Ахмад Шадид
Последнее изменение: 22.02.2024