Редактор cubic-bezier
Створюйте криві плавності CSS перетягуванням точок cubic-bezier, порівнюйте їх із linear у живій анімації й копіюйте cubic-bezier() або варіант linear().
Перетягуйте два маркери (P1 і P2). Час іде зліва направо, прогрес – знизу вгору; маркери можуть виходити вище 1 або нижче 0 для ефекту відскоку. Коли маркер у фокусі, користуйтеся стрілками (Shift – 0,1).
Перегляд анімації
Анімацію призупинено, бо ваша система просить зменшити рух. Натисніть «Відтворити», щоб усе одно запустити її.
Та сама крива, дискретизована як функція плавності CSS linear() (Chrome 113+, Firefox 112+, Safari 17.2+). Що більше точок, то точніше вона повторює криву.
Як користуватися редактором cubic-bezier
- Перетягуйте два маркери на графіку. P1 (перша опорна точка) формує початок руху, P2 – кінець. Час іде зліва направо, а прогрес – знизу вгору.
- Або введіть значення в поле Значення cubic-bezier(): повний запис
cubic-bezier(0.4, 0, 0.2, 1), чотири числа чи ключове слово, наприкладease-in-out. Поля x1, y1, x2 і y2 редагують по одній координаті. - Почніть із меню Шаблони (ключові слова CSS, родини від sine до back і криві Material Design) або з кнопок ключових слів. Коли ваша крива збігається з шаблоном, його назву показано поруч із кнопками.
- Дивіться Перегляд анімації: точка на Ваша крива і точка на linear долають однакову відстань за однакову Тривалість. Кнопки Пауза/Відтворити та Спочатку допомагають їх порівняти.
- Скопіюйте результат із Функція часу CSS або скопіюйте Наближення linear() і виберіть кількість Сегменти.
Клавіатура: наведіть фокус на маркер і стрілками переміщуйте його на 0,01, а із Shift – на 0,1.
Якщо ваша система налаштована на зменшення руху, анімація починається в паузі. Натисніть Відтворити, якщо хочете все одно запустити її.
Інструмент працює у вашому браузері. Нічого з того, що ви вводите, не надсилається на сервер.
Що означає cubic-bezier()
Функція плавності CSS зіставляє час, що минув від початку переходу (від 0 до 1), з його прогресом (від 0 до 1). cubic-bezier(x1, y1, x2, y2) описує це зіставлення кубічною кривою Безьє, яка починається в (0, 0), закінчується в (1, 1) і відтягується двома опорними точками P1 = (x1, y1) та P2 = (x2, y2).
- Значення x – це час, і вони мають лишатися між 0 і 1, інакше функція не була б коректною кривою часу. Редактор тримає їх у межах діапазону.
- Значення y – це прогрес, і вони можуть бути нижче 0 або вище 1. Значення y вище 1 змушує анімацію «перелетіти» ціль і повернутися, як у кривих Back; нижче 0 – спершу рухатися назад.
- Крутий нахил означає швидкий рух, пологий – повільний.
ease-outпочинається швидко й закінчується повільно, що виглядає природно для елементів, які з’являються на екрані.ease-inробить навпаки й пасує елементам, що зникають.
Ключові слова CSS – це скорочення: ease = cubic-bezier(0.25, 0.1, 0.25, 1), ease-in = (0.42, 0, 1, 1), ease-out = (0, 0, 0.58, 1), ease-in-out = (0.42, 0, 0.58, 1) і linear = (0, 0, 1, 1).
Наближення linear()
Новіша функція linear() перелічує значення прогресу в рівновіддалені моменти часу, наприклад linear(0, 0.25, 0.5, 0.75, 1), і з’єднує їх прямими лініями. Інструмент дискретизує вашу криву (розв’язує Безьє для кожного кроку часу) і записує ці значення з трьома знаками після коми. За 20–40 сегментів результат візуально не відрізняється від кривої. Справжня користь linear() – для кривих, які Безьє намалювати не може, як-от відскоки й пружини, але він також дає змогу користуватися єдиним синтаксисом. Він працює в Chrome і Edge 113+, Firefox 112+ та Safari 17.2+, тож залиште значення cubic-bezier() як запасне.
Поширені запитання
Де використовувати це значення?
У transition-timing-function, animation-timing-function або в скороченому записі: transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);. Web Animations API приймає його як easing.
Яка тривалість вважається доброю?
Невеликі зміни інтерфейсу зазвичай тривають 150–300 мс, великі переміщення екраном – 300–500 мс. Довші анімації швидко здаються повільними.
Чому я не можу перетягнути маркер за лівий чи правий край?
Тому що x – це час, а час не може йти назад: CSS відхиляє значення x поза межами 0–1.
Які криві використовує Material Design?
Класична стандартна крива – cubic-bezier(0.4, 0, 0.2, 1), з варіантами уповільнення, прискорення й різкого руху. Material 3 додає виразні криві; усі вони є в меню Шаблони.
Як обробляти зменшення руху?
Враховуйте @media (prefers-reduced-motion: reduce) у вашому CSS: скорочуйте або прибирайте великі переміщення й залишайте прості плавні появи.
Схожі інструменти
- Генератор box-shadow Створюйте багатошарові тіні CSS box-shadow з живим переглядом. Зсув, розмиття, колір, непрозорість, inset, шаблони неоморфізму та готовий код.
- Генератор Flexbox і Grid Будуйте макети flexbox і CSS grid візуально. Задавайте властивості контейнера й елементів, називайте області сітки та копіюйте чистий CSS і HTML.
- Генератор CSS-градієнтів Створюйте лінійні, радіальні й конічні CSS-градієнти з живим переглядом. Додавайте та перетягуйте опорні кольори, задавайте кут і копіюйте чистий код.