TGViewer
WebDev+ | Веб-разработка WebDev+ | Веб-разработка @webdev_plus · 7.9K subscribers
Post #1310 1.12K
Одно CSS-свойство только что избавило от необходимости писать JavaScript для каждого FAQ-аккордеона, который вы когда-либо делали.

Серьёзно.

Это свойство — interpolate-size: allow-keywords.

Годами в CSS нельзя было анимировать переход от height: 0 к height: auto.

Браузер просто не мог вычислить переход между числовым значением и ключевым словом.

Поэтому разработчики писали JavaScript, измеряли scrollHeight, использовали requestAnimationFrame и подобные вещи.

Теперь это можно сделать одной строкой:

interpolate-size: allow-keywords;


Что оно делает

Сообщает браузеру, что ему разрешено интерполировать между числовыми значениями и ключевыми словами вроде auto, min-content, max-content и т.д.

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

Добавьте это свойство к элементу (часто к :root). Затем используйте обычные CSS-transition для height, и браузер сам обработает остальное.

Контент будет плавно раскрываться от 0 до своей фактической высоты.

И всё. Без JavaScript.

:root {
interpolate-size: allow-keywords;
}

.content {
height: 0;
overflow: clip;
transition: height 0.3s ease;
}

.content.is-open {
height: auto;
}


Небольшое замечание про аккордеоны

Да, я знаю, что accordion-компоненты имеют довольно спорную репутацию в кругах UX и accessibility.

Но это отличный пример, чтобы показать, как работает interpolate-size.

Поддержка браузерами

Пока поддержка не идеальная — около 70%.

- Chrome 129+
- Edge 129+
- Opera 115+ ✅

Firefox и Safari — пока нет.

Отдельная благодарность команде Chrome за внедрение этой возможности. Она решает проблему, которая существовала с момента появления CSS transitions.

@WebDev_Plus
More from @webdev_plus
  1. Oct 7, 2026Разработчики Next.js: добавьте эти 4 строки в ваш .vscode/settings.json, чтобы сразу прока…
  2. Oct 7, 2026Полезное расширение для Chrome «Responsive Viewer» Помогает веб-разработчикам и дизайнерам…
  3. Oct 6, 2026Laravel / PHP: как предпочитаете отправлять письма — описывать их прямо в месте вызова или…
  4. Oct 6, 2026Этот HTML-косяк непростителен. Не использовать атрибут inputmode в элементах input — серьё…
  5. Oct 5, 2026Работает!? Не трогай 🎯
  6. Oct 5, 2026Фронтендер психанул и написал крестики-нолики без HTML и JavaScript Вся игра работает прак…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →