PassFront
  1. PassFront
  2. База знаний
  3. Responsive дизайн (адаптивность)

Как работает функция clamp() и где её применять?

Responsive дизайн (адаптивность)

`clamp(min, preferred, max)` возвращает значение, которое растёт вместе с preferred, но не выходит за пределы min и max.

Адаптивная типографика

h1 {
  font-size: clamp(1.5rem, 2vw + 1rem, 3rem);
}
  • На узком экране заголовок не меньше 1.5rem.
  • Между границами плавно растёт вместе с шириной окна.
  • На широком экране не больше 3rem.

Где ещё

.container {
  width: clamp(320px, 90%, 1200px); /* ширина с границами */
  padding-inline: clamp(16px, 4vw, 48px);
}

Одно правило заменяет несколько media query, поэтому интерфейс масштабируется плавно, а не скачками.

Родственные функции

min() берёт наименьшее значение, max() наибольшее: width: min(100%, 600px).

Доступность

Размеры лучше задавать в rem или смешивать rem с vw, чтобы пользовательское увеличение шрифта продолжало работать.

Коротко для собеседования

clamp задаёт значение с нижней и верхней границей и плавным ростом между ними, что убирает много media query.

Другие вопросы раздела