CSS Бесплатно, без регистрации

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

Введите наименьший и наибольший размер шрифта и ширины экрана, к которым они относятся — инструмент посчитает формулу clamp(), нарисует график зависимости размера от ширины и выдаст готовый CSS для font-size.

Результат
Готовый CSS-код
h1 {
  font-size: clamp(1rem, 0.6667rem + 1.6667vw, 2rem);
}

Как пользоваться

  1. Введите минимальный и максимальный размер шрифта в пикселях, например 16px на телефоне и 32px на широком экране.
  2. Укажите ширины экрана, между которыми шрифт должен расти: обычно 320px и 1280px.
  3. Выберите единицу результата: rem (рекомендуется) или px. Для rem проверьте базовый размер шрифта — обычно 16.
  4. Двигайте маркер на графике или ползунок «Ширина экрана для проверки» — пример заголовка покажется в размере для этой ширины. Нажмите «Копировать», чтобы взять код.

Как это работает

Как работает формула

Размер шрифта меняется по прямой, проходящей через две точки: (minVw, min) и (maxVw, max). Наклон считается как slope = (max − min) / (maxVw − minVw), смещение — как intercept = min − slope × minVw. В CSS наклон записывают в единицах vw: 1vw — это 1% ширины окна, поэтому берётся slope × 100. Получается clamp(min, intercept + slope×100vw, max): ниже минимальной ширины размер постоянен, между ширинами растёт, выше максимальной снова постоянен.

font-size: clamp(1rem, 0.6667rem + 1.6667vw, 2rem);

Почему в формуле нужен rem

Размер, записанный только в vw (font-size: 2vw), не увеличивается при масштабировании страницы: при зуме ширина окна в CSS-пикселях уменьшается, и физический размер текста остаётся прежним. Это нарушает критерий WCAG 1.4.4 Resize Text — текст должен увеличиваться до 200%. Часть в rem реагирует и на зум, и на размер шрифта в настройках браузера; границы в rem тоже масштабируются. Часто приводят правило: максимум не больше примерно 2,5 минимума.

min(), max() и clamp()

clamp(MIN, VAL, MAX) задаёт нижнюю и верхнюю границу сразу и равна max(MIN, min(VAL, MAX)). min() ограничивает только сверху, max() — только снизу.

font-size: min(5vw, 3rem);   /* не больше 3rem */
font-size: max(1rem, 2vw);   /* не меньше 1rem */

clamp() — не только для шрифтов

Функцию принимает любое свойство с длиной: padding, margin, gap, width. Плавные отступы сохраняют пропорции вместе с текстом. Для отступов часто хватает простого clamp(1rem, 5vw, 3rem), а средний член из калькулятора пригодится, когда нужен точный переход между двумя ширинами.

padding-inline: clamp(1rem, 5vw, 3rem);
gap: clamp(0.75rem, 2vw, 2rem);

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

Чем clamp() лучше медиазапросов для размера шрифта?

Медиазапросы меняют размер ступенями на брейкпоинтах, а clamp() — плавно на каждом пикселе ширины. Правил и брейкпоинтов нужно меньше. Если по макету нужны точные ступенчатые размеры, медиазапросы по-прежнему уместны.

Какие минимальную и максимальную ширину экрана выбрать?

Чаще всего берут 320px (маленький телефон) и 1280–1440px (ноутбук или максимальная ширина контейнера). Максимум лучше приблизить к ширине контента: дальше текст расти перестанет. Учтите, что vw включает ширину классической полосы прокрутки.

Что выбрать в результате: rem или px?

Лучше rem: он учитывает размер шрифта из настроек браузера, и текст остаётся масштабируемым. Значения в пикселях пользовательскую настройку не учитывают, поэтому px берите лишь осознанно.

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

Да, все современные браузеры с 2020 года (Chrome 79, Firefox 75, Safari 13.1). Для совсем старых сначала напишите обычный font-size: 1.25rem;, а следом строку с clamp() — непонятную строку старый браузер просто пропустит.

Эта тема в курсе HTML и CSS

Другие CSS-инструменты

Генератор CSS-градиента Linear, radial и conic градиенты: выберите цвета, угол и точки — скопируйте готовый код. Генератор и песочница Flexbox Пробуйте flex-свойства контейнера и элементов: направление, выравнивание, отступы и готовый CSS. Генератор CSS Grid Задайте колонки и строки, отступы и выравнивание — скопируйте готовый код сетки. Генератор CSS box-shadow Тени для блоков: смещение, размытие, цвет и слои — скопируйте готовый код box-shadow. Генератор cubic-bezier Перетащите точки кривой easing и скопируйте готовый CSS-код transition. Генератор SVG-анимации Выберите фигуру и эффект — получите SVG и CSS keyframes для вставки на страницу. Калькулятор специфичности CSS Впишите селекторы — увидите вес (a,b,c), цветной разбор и то, какое правило победит. Визуализатор блочной модели CSS Content, padding, border и margin в виде схемы как в DevTools — и готовый CSS-код. Генератор CSS transform Сдвиг, поворот, масштаб и наклон элемента с исходной позицией на превью — и готовый код. Проверка контраста цветов (WCAG) Проверьте контраст текста и фона по WCAG AA и AAA и исправьте неподходящую пару цветов. Генератор CSS clip-path Полигоны, срезанные углы, стрелки и круги: перетаскивайте точки на превью и копируйте готовый CSS. Генератор CSS Glassmorphism Эффект матового стекла: backdrop-filter blur, насыщенность, световая грань и готовый CSS. Генератор CSS border-radius (Blob) Органические формы и 8-значный border-radius: настраивайте горизонтальные и вертикальные радиусы. Визуализатор CSS Stacking Context и z-index Почему z-index: 9999 не работает? Наглядный 3D-разбор контекстов наложения, opacity, transform и isolation. Генератор CSS aspect-ratio и object-fit Конец сплющенным картинкам и прыжкам верстки (CLS): подбор пропорций aspect-ratio и точка фокуса object-fit. Студия CSS-фильтров Фотоэффекты без графических редакторов: blur, contrast, hue-rotate, sepia и трендовые Instagram-пресеты. Генератор OKLCH и палитр CSS Color 4 Идеально равномерная яркость для глаз и сочные цвета Display P3: подбор OKLCH, шкалы дизайн-систем и конвертация. Генератор CSS Scroll-driven Animations Анимации при скролле без JavaScript: свойства animation-timeline scroll() и view(), полоса чтения и плавное появление карточек. Генератор CSS Container Queries (@container) Конец привязке к экрану: компонент адаптируется к ширине своего родителя. Ресайз контейнера и правила @container вживую.
WhatsApp