Начните с подходящего пресета
Для появления элемента попробуйте ease-out, для смены состояния сравните ease и стандарт Material. Пресет устанавливает все четыре числа; после ручной правки в списке появляется свой вариант.
HTML, CSS и фронтенд-код
Перетащите точки или задайте четыре числа, затем посмотрите движение и скопируйте CSS.
Перетащите точки или двигайте их стрелками; Shift увеличивает шаг.
cubic-bezier(0.25, 0.1, 0.25, 1)Кривая обрабатывается только в браузере и не отправляется на сервер.
Пунктирная диагональ означает постоянную скорость.
Кривая обновлена.
Если переход кажется резким или медленным, изменять одну лишь длительность недостаточно. Генератор cubic-bezier показывает начало и конец ускорения через две контрольные точки. Выберите близкий пресет и подстройте кривую под свой элемент.
Можно вставить имеющуюся функцию cubic-bezier() и сохранить точность набранных чисел. Редактор кривых плавности показывает, как кривая Безье CSS отличается от линии постоянной скорости, и помогает заметить выход за цель до копирования.
Точки, числа и движение в браузере можно проверить вместе.
Две контрольные точки и поля X1, Y1, X2, Y2 описывают одну кривую. Генератор cubic-bezier принимает готовую функцию из стилей и не обрезает введённые десятичные знаки до двух без вашего ведома.
По правилу CSS координаты X1 и X2 лежат в пределах 0–1, а Y может выйти за них. Генератор cubic-bezier останавливает перетаскивание X на границе, но сохраняет ошибочное набранное число для исправления. Y больше 1 остаётся допустимым.
Для появления элемента попробуйте ease-out, для смены состояния сравните ease и стандарт Material. Пресет устанавливает все четыре числа; после ручной правки в списке появляется свой вариант.
Первая точка сильнее влияет на старт, вторая — на остановку. При перетаскивании X упирается в границу; неверный X в поле остаётся и вызывает ошибку. Y может быть отрицательным или больше 1.
Изначально предпросмотр рассчитан на 1000 мс и запускается только по кнопке. Длительность не добавляется в скопированную функцию. При отключённом автообновлении результат также создаётся по Ctrl/Cmd+Enter.
Перетаскивание, стрелки клавиатуры, числовые поля и импорт функции обновляют общие координаты. Дополнительная линейная линия показывает разницу между выбранным easing и равномерным движением.
Демонстрация использует полученный cubic-bezier() как CSS-функцию времени. Она не выдаёт внутренний параметр кривой за прошедшее время и не запускается бесконечно сама.
Можно взять одну функцию или полное объявление transition-timing-function. После изменения поля либо опции старый результат считается устаревшим, и копирование выключается до обновления.
Это координаты X1, Y1, X2 и Y2 двух контрольных точек. Начало (0,0) и конец (1,1) закреплены. X соответствует времени, а Y — достигнутому прогрессу.
X выражает ход времени внутри сегмента. Синтаксис CSS ограничивает обе X-координаты этим интервалом. Ошибочное введённое значение будет показано, а не автоматически обрезано.
Поднимите Y2 выше 1 либо выберите пресет разового превышения. Движение пройдёт мимо цели и вернётся. Для повторных отскоков нужны keyframes или модель пружины.
ease меняет скорость в начале и конце несимметрично. ease-in-out даёт более сбалансированное ускорение и замедление, полезное для движения туда и обратно. Сравните их при одной длительности.
Да. Вставьте функцию в animation-timing-function или сокращённую запись animation. Кадры, длительность и повторения вы задаёте отдельно в своём CSS.
Остался вопрос?
Загрузите имеющуюся функцию, воспроизведите её с нужной длительностью и скопируйте корректный CSS. Генератор cubic-bezier показывает точки и числа на каждом шаге настройки.