Калькулятор CSS clamp()

Задайте размеры для малых и больших экранов и получите адаптивное значение clamp() для плавного масштабирования шрифтов, отступов и полей.

Размеры
Минимум
Максимум
Значение clamp()
clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem)

Результат содержит компонент rem в среднем терме, благодаря чему текст масштабируется при изменении масштаба страницы до 200% (значение только в единицах вьюпорта не позволило бы этого сделать).

Предпросмотр

Адаптивный текст идеального размера.

Настройте размеры и ширину экрана для расчета значения.

Все вычисления выполняются полностью в вашем браузере. Никакие вводимые данные не отправляются на BroBroGo.

Частые вопросы

Как калькулятор рассчитывает значение clamp()?

Вы задаете две точки: размер на малом экране и размер на большом. Калькулятор строит прямую линию между ними, чтобы размер плавно увеличивался по мере расширения экрана, а затем оборачивает это в функцию clamp(), чтобы значение никогда не опускалось ниже минимума и не превышало максимум. Между этими границами размер масштабируется адаптивно, а за их пределами фиксируется на ближайшем лимите.

Почему результат выдается в rem и vw, а не в пикселях?

Границы задаются в rem, а изменяемая средняя часть также содержит rem-компонент. Благодаря этому текст масштабируется, когда пользователь увеличивает масштаб страницы или меняет размер шрифта по умолчанию в браузере (значения в пикселях или только во вьюпортах могут нарушить эту доступность). Вы вводите размеры в пикселях для удобства, а инструмент переводит их в rem на основе базового размера шрифта.

Можно ли использовать это для отступов, а не только для шрифтов?

Да. Полученное значение отлично подходит для padding, margin, gap, width или height — везде, где используются размеры. Переключите режим предпросмотра на «Блок», чтобы увидеть, как меняются отступы вместо текста. Если минимальный и максимальный размеры совпадают, результат превратится в обычное фиксированное значение, так как масштабировать нечего.

Все ли браузеры поддерживают clamp()?

Да, все современные браузеры поддерживают clamp() еще с 2020 года, так как это стандарт. При очень больших максимальных размерах или высокой скорости масштабирования стоит проверить доступность при масштабе 200%, чтобы убедиться, что текст увеличивается для пользователей, которым это необходимо.

Принцип работы CSS clamp() в адаптивном дизайне

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

Калькулятор рассчитывает математическую формулу, связывающую размер элемента с шириной вьюпорта. Вы указываете желаемые размеры для малого и большого экранов, а также границы ширины этих экранов. Инструмент вычисляет линейную интерполяцию между этими точками и генерирует готовую функцию clamp(), которая предотвращает выход размера за установленные рамки. Полученное значение можно использовать для любых свойств CSS, принимающих единицы длины: font-size, padding, margin, gap, width или height.

Входные параметры калькулятора

Для расчета корректного значения функции необходимо заполнить следующие поля в блоке Размеры:

  • Размер в группе Минимум: числовое значение в пикселях, определяющее размер элемента на малом экране.
  • Ширина экрана в группе Минимум: ширина малого экрана в пикселях, начиная с которой размер должен начать увеличиваться.
  • Размер в группе Максимум: числовое значение в пикселях, определяющее размер элемента на большом экране.
  • Ширина экрана в группе Максимум: ширина большого экрана в пикселях, при достижении которой рост размера прекращается.
  • Базовый размер шрифта: значение в пикселях (обычно 16), используемое для конвертации пикселей в относительные единицы rem.

Инструмент ожидает корректные числа в каждом поле. Если ввести некорректные данные, отобразится сообщение: «Введите корректное число в каждое поле.». Также существует строгое ограничение на соотношение ширины экранов: ширина малого экрана должна быть меньшим положительным числом, чем ширина большого. Если это условие нарушено, калькулятор выдаст ошибку «Ширина малого экрана должна быть меньшим положительным числом, чем ширина большого.», а в поле результата отобразится символ .

Выходные данные и интерактивный предпросмотр

После ввода корректных параметров калькулятор мгновенно выводит готовый код в поле Значение clamp(). Пример сгенерированной функции: clamp(1rem, 0.8333rem + 0.8333vw, 1.5rem).

Ниже под заголовком Предпросмотр находится интерактивная область, которая позволяет оценить поведение элемента при изменении ширины экрана. Доступны два режима отображения:

  • Текст: на экране выводится строка «Адаптивный текст идеального размера.».
  • Блок: визуализирует масштабирование в виде графического бокса.

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

  • «на минимуме» — ширина экрана меньше или равна минимальной границе;
  • «на максимуме» — ширина экрана больше или равна максимальной границе;
  • «плавное масштабирование» — размер находится в процессе изменения между лимитами.

При настройке параметров могут возникать особые случаи, о которых калькулятор информирует с помощью статусных сообщений:

  • «Настройте размеры и ширину экрана для расчета значения.» — исходное состояние до ввода параметров.
  • «Обратное масштабирование — размер уменьшается по мере роста экрана.» — если размер для малого экрана задан большим, чем для большого.
  • «Оба размера равны, поэтому значение фиксированное, а не адаптивное.» — если минимальный и максимальный размеры совпадают.

Доступность и использование rem и vw

Применение адаптивной типографики напрямую связано с доступностью интерфейсов (accessibility). Использование исключительно единиц вьюпорта (vw) для настройки шрифтов является плохой практикой, так как при масштабировании страницы пользователем (zoom) текст в vw не увеличивается.

Калькулятор решает эту проблему, комбинируя относительные единицы rem и vw. Границы функции clamp() всегда выражаются в rem, а изменяемая средняя часть обязательно сохраняет компонент rem. Благодаря этому текст гарантированно масштабируется при изменении масштаба страницы в браузере до 200%, что соответствует требованиям доступности. Перевод пикселей в rem выполняется автоматически на основе указанного базового размера шрифта.

Конфиденциальность вычислений

Все математические операции и преобразования единиц выполняются локально на вашем устройстве. Вычисления происходят полностью в вашем браузере, и вводимые данные не отправляются на BroBroGo.


Часто задаваемые вопросы

Как калькулятор рассчитывает значение clamp()?

Вы задаете две точки: размер на малом экране и размер на большом. Калькулятор строит прямую линию между ними, чтобы размер плавно увеличивался по мере расширения экрана, а затем оборачивает это в функцию clamp(), чтобы значение никогда не опускалось ниже минимума и не превышало максимум. Между этими границами размер масштабируется адаптивно, а за их пределами фиксируется на ближайшем лимите.

Почему результат выдается в rem и vw, а не в пикселях?

Границы задаются в rem, а изменяемая средняя часть также содержит rem-компонент. Благодаря этому текст масштабируется, когда пользователь увеличивает масштаб страницы или меняет размер шрифта по умолчанию в браузере (значения в пикселях или только во вьюпортах могут нарушить эту доступность). Вы вводите размеры в пикселях для удобства, а инструмент переводит их в rem на основе базового размера шрифта.

Можно ли использовать это для отступов, а не только для шрифтов?

Да. Полученное значение отлично подходит для padding, margin, gap, width или height — везде, где используются размеры. Переключите режим предпросмотра на «Блок», чтобы увидеть, как меняются отступы вместо текста. Если минимальный и максимальный размеры совпадают, результат превратится в обычное фиксированное значение, так как масштабировать нечего.

Все ли браузеры поддерживают clamp()?

Да, все современные браузеры поддерживают clamp() еще с 2020 года, так как это стандарт. При очень больших максимальных размерах или высокой скорости масштабирования стоит проверить доступность при масштабе 200%, чтобы убедиться, что текст увеличивается для пользователей, которым это необходимо.