Инструменты для Motion-дизайнеров и фронтенд-разработчиков

Калькулятор CSS-анимаций

Визуализируйте easing-функции, генерируйте @keyframes, рассчитывайте тайминг анимаций и создавайте motion-токены для дизайн-системы. Проверяйте CSS-единицы и cubic-bezier кривые прямо здесь.

16.67ms
Бюджет кадра (60fps)
Максимальное время на один кадр
6
Инструментов
Easing, keyframes, тайминг, спрайты, FPS, токены
10+
Easing-пресетов
Готовые функции плавности для CSS
CSS/JS
Форматы вывода
Копируйте код прямо в проект

Анимации в веб-разработке

CSS-анимации и переходы придают интерфейсу живость и помогают пользователю понять, что происходит на экране. Правильно подобранные тайминги и кривые плавности делают взаимодействие интуитивным, а ошибки в них приводят к ощущению «тормозов» и раздражению.

~

CSS Transitions

Простейший способ анимации: задайте свойство, длительность и функцию плавности (easing). Браузер автоматически интерполирует значения при изменении состояния (hover, focus, класс). Подходит для кнопок, карточек, меню.

@

CSS @keyframes

Мощный механизм для сложных анимаций: определите промежуточные состояния (кадры) в процентах от 0% до 100%. Поддерживает несколько свойств одновременно, повторение, направление и задержку. Для лоадеров, появлений, сложных переходов.

!

Web Animations API

JavaScript API для программного управления анимациями. Позволяет ставить на паузу, менять скорость, реверсировать и синхронизировать анимации в реальном времени. Используется в сложных интерактивных сценах и играх.

Применение анимаций в интерфейсах

Продуманные анимации улучшают UX, помогают навигации и делают интерфейс запоминающимся.

~

Микровзаимодействия

Hover-эффекты кнопок, переключатели, чекбоксы, анимация иконок. Мгновенная обратная связь пользователю через визуальное изменение элемента при взаимодействии.

@

Появление контента

Fade-in при скролле, slide-in карточек, stagger-анимации списков. Плавное появление элементов создаёт ощущение скорости загрузки и направляет внимание.

#

Навигация и переходы

Переходы между страницами (View Transitions API), анимация модальных окон, раскрытие аккордеонов. Сохранение контекста при смене экрана.

%

Загрузка и ожидание

Скелетоны, спиннеры, прогресс-бары, пульсирующие placeholder. Анимации загрузки снижают воспринимаемое время ожидания на 20-40%.

!

Геймификация

Спрайтовые анимации персонажей, эффекты частиц при достижениях, анимированные бейджи. Игровые элементы повышают вовлечённость пользователей.

*

Дизайн-системы

Унифицированные motion-токены обеспечивают согласованность анимаций во всём продукте. Единые длительности, easing и задержки для всей команды.

Производительность анимаций/ 60fps руководство

Каждый кадр при 60fps должен укладываться в 16.67ms. Анимация CSS-свойств запускает разные этапы рендеринга: Layout (пересчёт геометрии), Paint (перерисовка пикселей) или Composite (GPU-композиция). Чем «легче» этап, тем плавнее анимация.

Composite (GPU) — самый быстрый

Свойства transform и opacity обрабатываются на GPU без пересчёта layout и paint. Это самые дешёвые анимации.

/* Предпочитайте transform и opacity */
.element { transition: transform 300ms ease-out, opacity 300ms ease-out; }

Paint (перерисовка) — средний

Свойства background-color, box-shadow, color вызывают перерисовку пикселей, но не пересчёт геометрии. Используйте для несложных эффектов.

/* box-shadow лучше анимировать через псевдоэлемент + opacity */
.card::after { box-shadow: 0 8px 30px rgba(0,0,0,0.2); opacity: 0; transition: opacity 300ms; }

Layout (пересчёт) — самый дорогой

Свойства width, height, margin, padding, top/left запускают полный пересчёт layout всех элементов. Избегайте их анимации.

/* Вместо анимации width используйте transform: scaleX() */
.bar { transform-origin: left; transition: transform 300ms ease-out; }
.bar.full { transform: scaleX(1); }

will-change: подсказка браузеру о предстоящей анимации. Используйте will-change: transform перед анимацией, но убирайте после, чтобы не расходовать видеопамять.

contain: layout: ограничивает область пересчёта layout. Анимируемый элемент не будет влиять на соседние, что значительно снижает нагрузку.

Функции плавности (Easing)

Easing-функция определяет, как изменяется скорость анимации во времени. Правильный выбор easing делает движение естественным, а неправильный — механическим или раздражающим.

ease-out (замедление)

Элемент начинает движение быстро и постепенно замедляется. Идеален для входа элементов на экран: пользователь быстро видит начало анимации, а плавное замедление создаёт ощущение «мягкой посадки». Рекомендуется для большинства UI-анимаций.

ease-in (ускорение)

Элемент начинает медленно и набирает скорость. Применяется для выхода элементов с экрана: медленный старт даёт пользователю время заметить начало исчезновения, а быстрый финал не задерживает интерфейс.

ease-in-out (S-кривая)

Комбинация ускорения и замедления. Подходит для анимаций, где элемент остаётся на экране (перемещение, изменение размера). Создаёт ощущение плавного, «физичного» движения с разгоном и торможением.

cubic-bezier (кастомная)

Четыре числа (x1, y1, x2, y2) определяют форму кривой. Позволяет создавать эффекты «пружины» (overshoot), «упругости» (bounce) и любые нестандартные движения. Визуальный генератор помогает подобрать идеальную кривую.

Рекомендации по таймингу

Правильная длительность анимации зависит от контекста, расстояния перемещения и размера элемента.

1100-200ms: микровзаимодействия

Hover-эффекты, фокус-состояния, переключатели, чекбоксы. Короткие анимации воспринимаются мгновенно и не замедляют работу пользователя. Долгий hover раздражает при быстром перемещении мыши.

2200-400ms: стандартные переходы

Появление модальных окон, раскрытие меню, slide-in панелей. Золотая середина: достаточно быстро, чтобы не задерживать, и достаточно заметно, чтобы пользователь понял, что произошло.

3400-700ms: крупные анимации

Переходы между экранами, развёртывание карточек на весь экран, сложные трансформации. Чем больше расстояние перемещения, тем дольше должна быть анимация, чтобы глаз успел отследить движение.

4Stagger: 30-80ms между элементами

Каскадное появление списков и карточек. Задержка 50ms между элементами создаёт эффект «водопада». Слишком маленькая (менее 20ms) — незаметна, слишком большая (более 100ms) — затягивает загрузку.

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

Шесть инструментов покрывают весь цикл работы с анимациями — от проектирования до оптимизации.

1

Подберите easing

Откройте вкладку Easing-функций. Выберите и сравните пресеты, настройте custom cubic-bezier. Скопируйте CSS-код подходящей кривой.

2

Создайте keyframes

Определите ключевые кадры с CSS-свойствами на нужных процентах. Генератор выдаст готовый @keyframes и animation shorthand.

3

Рассчитайте тайминг

Укажите расстояние и размер элемента. Получите рекомендованные длительности и stagger-задержки для списков.

4

Настройте спрайты

Задайте параметры спрайт-листа: кадры, FPS, размеры. Получите CSS для покадровой анимации с steps().

5

Проверьте бюджет

Выберите анимируемые свойства и количество элементов. Увидите, укладывается ли анимация в бюджет 60fps.

6

Экспортируйте токены

Сгенерируйте набор motion-токенов (длительности, easing, задержки) для CSS Custom Properties или JS.

ЧАСТЫЕ ВОПРОСЫ

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

Easing-функция (функция плавности) определяет, как изменяется скорость анимации с течением времени. Без неё элемент движется равномерно (linear), что выглядит механически. Easing добавляет ускорение и замедление, делая движение более естественным и приятным для восприятия. В CSS это задаётся через transition-timing-function или animation-timing-function.
Зависит от трёх факторов: 1) Тип взаимодействия — hover и клик требуют 100-200ms, модальные окна 200-400ms, переходы между экранами 400-700ms. 2) Расстояние — чем дальше перемещается элемент, тем дольше должна быть анимация. 3) Размер элемента — маленькие элементы анимируются быстрее крупных. Наш калькулятор тайминга учитывает все эти параметры.
Jank возникает, когда браузер не успевает отрисовать кадр за 16.67ms (бюджет 60fps). Основные причины: 1) Анимация свойств, запускающих layout (width, height, margin) — используйте transform вместо них. 2) Слишком много анимируемых элементов. 3) Тяжёлые вычисления в JavaScript во время анимации. Наш бюджет производительности помогает оценить нагрузку заранее.
Самые производительные: transform (translate, scale, rotate) и opacity — они обрабатываются на GPU. Средние: background-color, color, box-shadow (paint, без layout). Избегайте: width, height, margin, padding, top, left, font-size — они запускают layout всего документа. Подробнее — во вкладке «Бюджет FPS».
Stagger — каскадное появление элементов списка с нарастающей задержкой. Первый элемент появляется сразу, второй — через 50ms, третий — через 100ms и т.д. Оптимальный интервал: 30-80ms. Слишком маленький (менее 20ms) — элементы сливаются, слишком большой (более 100ms) — анимация затягивается. В CSS реализуется через nth-child и transition-delay.
Motion-токены (design tokens для анимаций) обеспечивают согласованность: все кнопки анимируются с одинаковой длительностью, все модальные окна используют одну easing-функцию. Это снижает когнитивную нагрузку на пользователя и упрощает работу разработчиков — вместо подбора значений каждый раз, они используют готовые переменные из токенов.
Спрайтовая анимация использует один PNG/WebP файл со всеми кадрами. CSS steps() функция переключает background-position между кадрами без интерполяции. Задайте: 1) размер одного кадра (width, height), 2) background-size по размеру всего листа, 3) animation с steps(N), где N — количество кадров. Наш калькулятор генерирует весь CSS-код автоматически.
cubic-bezier(x1, y1, x2, y2) задаёт кривую Безье третьего порядка с двумя контрольными точками. Начальная точка (0,0) и конечная (1,1) фиксированы. x1,y1 и x2,y2 — координаты «ручек», которые формируют изгиб кривой. Ось X — время (0 = начало, 1 = конец), ось Y — прогресс анимации. Значения y за пределами 0-1 создают эффект overshoot (выход за границы).
1) Уменьшите количество кадров — часто 8-12 кадров достаточно вместо 24. 2) Уменьшите размер каждого кадра. 3) Используйте WebP вместо PNG — экономия до 50%. 4) Оптимизируйте через TinyPNG или Squoosh. 5) Для простых анимаций используйте CSS-анимации вместо спрайтов — они весят 0 байт.
Обязательно. Медиа-запрос @media (prefers-reduced-motion: reduce) отключает или минимизирует анимации для пользователей с вестибулярными расстройствами. Рекомендуется: заменять движение на fade, убирать parallax и бесконечные анимации, оставлять только функциональные переходы. Это требование WCAG 2.1 уровня AAA.
СМЕЖНЫЕ ИНСТРУМЕНТЫ

Похожие калькуляторы

15

Генератор Cubic Bezier (CSS transition)

Интерактивный генератор кривых Безье для CSS анимаций. Визуальная настройка плавности переходов, пресеты (ease, linear) и копирование кода.

/cubic-bezier

Калькулятор теории цвета: гармония, конвертер, палитры, смешивание, дальтонизм

Комплексный инструмент для работы с цветом: цветовые гармонии (комплементарная, аналогичная, триадная, тетрадная), конвертер HEX/RGB/HSL/HSV/CMYK, генератор палитр (монохроматическая, shades, tints, tones), смешивание цветов (аддитивное/субтрактивное), симулятор дальтонизма и анализ цветовой температуры.

/color-theory-calculator

Калькулятор градиентов и интерполяции цветов

Генератор плавных переходов между цветами. Создайте CSS градиент онлайн, получите коды цветов (HEX/RGB) и настройте количество шагов.

/color-gradient

Калькулятор контрастности (WCAG), шрифтов и сетки

Инструменты UI/UX дизайнера. Проверка контрастности цветов (WCAG AA/AAA), расчет модульной сетки и подбор типографической шкалы.

/contrast-grid

Калькулятор Responsive Margin/Padding (Clamp generator)

Генератор CSS функции clamp() для адаптивных отступов и шрифтов. Создайте отзывчивый дизайн (fluid spacing) от мобильных до десктопа онлайн.

/responsive-helper

Калькулятор типографики: Type Scale, межстрочный, Fluid Typography

Комплексный типографический калькулятор. Модульная шкала (Type Scale), расчёт межстрочного интервала (line-height), оптимальная длина строки, вертикальный ритм (baseline grid), подбор пар шрифтов и Fluid Typography с CSS clamp().

/typography-calculator

Калькулятор PPI и DPI (плотность пикселей)

Рассчитайте PPI экрана, размер пикселя и физические размеры монитора/телефона. Конвертер пикселей в сантиметры.

/ppi-calculator

Калькулятор UX-метрик: SUS, NPS, HEART, A/B-тест, эвристики Нильсена

Комплексный калькулятор UX-метрик: System Usability Scale (SUS), Net Promoter Score (NPS), HEART framework Google, статистическая значимость A/B-тестов, эвристическая оценка Нильсена (10 эвристик), метрики выполнения задач (Task Success Rate, Efficiency).

/ux-metrics-calculator

Калькулятор CSS единиц (PX, REM, EM, %)

Конвертер пикселей в rem/em и генератор calc(). Удобный инструмент для верстки и адаптивного дизайна.

/css-unit-converter

Калькулятор пропорций золотого сечения

Расчёт пропорций по золотому сечению (φ = 1.618). Визуализация золотого прямоугольника и спирали Фибоначчи.

/zolotoe-sechenie

Конвертер типографских единиц

Конвертация между пунктами, мм, пикселями, em/rem. Типографская шкала, пика, цицеро, дюймы.

/konverter-tipografskih-edinic

Конвертер цветовых пространств

Конвертация цветов между CMYK, RGB, HEX, HSL, HSV с визуальным предпросмотром. Цветовые гармонии и контрастность WCAG.

/konverter-cvetov-cmyk-rgb-hex

Калькулятор соотношения сторон

Расчёт и пересчёт соотношения сторон изображения/видео. Определение ratio, пересчёт размеров, кроп.

/sootnoshenie-storon

Калькулятор DPI и размера печати

Пересчёт пикселей в размер печати при заданном DPI. Форматы A4-A0, фотопечать, полиграфия.

/kalkulyator-dpi-pechat

Генератор цветовых палитр

Подбор гармоничных цветовых сочетаний: комплементарные, аналогичные, триадные. Экспорт в CSS, Tailwind, SCSS.

/generator-cvetovyh-palitr
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.