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

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

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

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

Попередній перегляд

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

Змінюйте розміри та ширину екрана, щоб налаштувати значення.

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

Поширені запитання

Як калькулятор будує значення clamp()?

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

Чому результат розраховується в rem та vw замість пікселів?

Межі задаються в rem, а динамічна середня частина містить компонент rem, тому текст продовжує масштабуватися, коли користувач збільшує масштаб сторінки або змінює стандартний розмір шрифту в браузері (використання лише пікселів або vw може завадити цьому). Ви вводите розміри в пікселях для зручності, а інструмент конвертує їх у rem на основі базового розміру шрифту.

Чи можна використовувати це для відступів, а не лише для шрифтів?

Так. Це ж значення підходить для padding, margin, gap, width або height — будь-де, де використовуються одиниці довжини. Перемкніть режим попереднього перегляду на «Блок» (Box), щоб спостерігати за зміною відступів замість тексту. Якщо ваші мінімальний та максимальний розміри однакові, результат перетвориться на звичайне фіксоване значення, оскільки масштабувати нічого.

Чи всі браузери підтримують clamp()?

Так, усі сучасні браузери підтримують clamp() ще з 2020 року, тому ви можете використовувати отримане значення без додаткових фолбеків. За дуже великих максимальних розмірів або високої швидкості масштабування варто перевірити при масштабі 200%, чи збільшується текст для користувачів, яким це необхідно.

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

Функція clamp() у CSS дозволяє задавати динамічні розміри, які плавно масштабуються між визначеними мінімальним та максимальним значеннями залежно від ширини екрана. Замість використання жорстких медіа-запитів (media queries) для ступінчастої зміни стилів, цей підхід забезпечує безперервну зміну величини.

Калькулятор розраховує математичну формулу, яка пов'язує розмір елемента із шириною в'юпорту. Ви вказуєте бажані розміри для двох контрольних точок — малого та великого екрана. Інструмент обчислює лінійну інтерполяцію між цими точками та генерує готовий CSS-код. Отримане значення гарантує, що розмір ніколи не впаде нижче встановленого мінімуму на малих екранах і не перевищить максимум на великих дисплеях, адаптивно змінюючись у проміжку між ними.

Цей метод застосовується для будь-яких властивостей CSS, що приймають одиниці довжини:

  • Адаптивна типографіка (font-size);
  • Внутрішні та зовнішні відступи (padding, margin);
  • Міжрядкові інтервали та проміжки у сітках (gap);
  • Розміри елементів (width, height).

Параметри обчислення та конвертація одиниць

Для розрахунку адаптивного значення калькулятор використовує п'ять основних параметрів, які ви вводите у пікселях (px):

  1. Мінімум / Розмір: бажана величина елемента на малому екрані.
  2. Мінімум / Ширина екрана: ширина в'юпорту, нижче якої розмір елемента перестає зменшуватися і фіксується на мінімальному значенні.
  3. Максимум / Розмір: бажана величина елемента на великому екрані.
  4. Максимум / Ширина екрана: ширина в'юпорту, вище якої розмір елемента перестає збільшуватися і фіксується на максимальному значенні.
  5. Базовий розмір шрифту (root): значення в пікселях (зазвичай 16px), яке використовується для конвертації введених піксельних величин у відносні одиниці rem.

Калькулятор автоматично переводить пікселі у rem. Це необхідно для збереження доступності інтерфейсу. Якщо задати межі або середню частину формули виключно у відносних одиницях ширини екрана (vw), текст втратить здатність реагувати на зміну налаштувань масштабування у браузері користувача. Використання rem гарантує, що текст буде коректно збільшуватися, коли читач змінює системний розмір шрифту або масштабує сторінку.

Правила розрахунку та обробка помилок

Під час обчислення математичної моделі діють такі правила та обмеження:

  • Валідація даних: Усі поля введення мають містити коректні числові значення. Якщо якесь поле порожнє або містить некоректні символи, калькулятор покаже повідомлення про помилку: "Будь ласка, введіть коректні числа в кожне поле.".
  • Співвідношення ширини екранів: Ширина малого екрана обов'язково має бути меншою за ширину великого екрана і бути додатним числом. Якщо це правило порушено, розрахунок зупиняється, замість формули відображається символ , а користувач бачить повідомлення: "Ширина малого екрана має бути меншим додатним числом, ніж ширина великого.".
  • Рівність розмірів: Якщо мінімальний та максимальний розміри збігаються, адаптивне масштабування втрачає сенс. У цьому випадку результат спрощується до звичайного фіксованого значення довжини, а статус сигналізує: "Обидва розміри однакові, тому це фіксоване значення, а не адаптивне.".
  • Зворотне масштабування: Якщо розмір для малого екрана вказано більшим, ніж для великого, калькулятор розрахує формулу, за якої елемент стискатиметься в міру розширення екрана. Статус при цьому зміниться на: "Зворотне масштабування — розмір зменшується зі збільшенням екрана.".

Коли параметри вказано коректно, за замовчуванням відображається статус: "Змінюйте розміри та ширину екрана, щоб налаштувати значення.".

Інтерактивний аналіз та тестування результату

Калькулятор надає інструменти для миттєвої візуальної оцінки поведінки згенерованого коду. Область попереднього перегляду дозволяє перемикатися між двома режимами демонстрації:

  • Текст: відображає рядок "Адаптивний текст ідеального розміру.", змінюючи розмір шрифту.
  • Блок: демонструє роботу формули на прикладі зміни внутрішніх відступів або габаритів графічного контейнера.

Змінюючи ширину області перегляду, ви можете спостерігати за поточною шириною у пікселях та поведінкою формули в реальному часі. Інструмент динамічно показує поточний стан масштабування:

  • "обмежено мінімумом" — коли поточна ширина менша або дорівнює ширині малого екрана;
  • "обмежено максимумом" — коли поточна ширина більша або дорівнює ширині великого екрана;
  • "плавне масштабування" — коли значення знаходиться в активній фазі лінійної інтерполяції між контрольними точками.

Конфіденційність обробки даних

Усі математичні операції, конвертація одиниць та рендеринг попереднього перегляду відбуваються безпосередньо на вашому пристрої. Обчислення виконуються повністю у вашому браузері. Введені дані не надсилаються на BroBroGo, що виключає передачу технічних параметрів вашого макета на сторонні сервери.


FAQ

Як калькулятор будує значення clamp()?

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

Чому результат розраховується в rem та vw замість пікселів?

Межі задаються в rem, а динамічна середня частина містить компонент rem, тому текст продовжує масштабуватися, коли користувач збільшує масштаб сторінки або змінює стандартний розмір шрифту в браузері (використання лише пікселів або vw цього б не дозволило). Ви вводите розміри в пікселях для зручності, а інструмент конвертує їх у rem на основі базового розміру шрифту.

Чи можна використовувати це для відступів, а не лише для шрифтів?

Так. Це ж значення підходить для padding, margin, gap, width або height — будь-де, де використовуються одиниці довжини. Перемкніть режим попереднього перегляду на «Блок» (Box), щоб спостерігати за зміною відступів замість тексту. Якщо ваші мінімальний та максимальний розміри однакові, результат перетвориться на звичайне фіксоване значення, оскільки масштабувати нічого.

Чи всі браузери підтримують clamp()?

Так, усі сучасні браузери підтримують clamp() ще з 2020 року, тому ви можете використовувати отримане значення без додаткових фолбеків. За дуже великих максимальних розмірів або високої швидкості масштабування варто перевірити при масштабі 200%, чи збільшується текст для користувачів, яким це необхідно.