Skip to main content
CheckTown
Генератори

Генератор кубічних кривих Безьє: візуальний easing CSS-анімацій

Опубліковано 5 хв читання
У цій статті

Що таке кубічні криві Безьє?

Кубічна крива Безьє — це математична функція, яка використовується в CSS для визначення часу анімацій і переходів. Записана як cubic-bezier(x1, y1, x2, y2), вона описує, як анімація просувається від початку до кінця, відображаючи час на прогрес вздовж плавної кривої, визначеної чотирма контрольними точками.

У CSS функція cubic-bezier() контролює easing властивостей transition-timing-function та animation-timing-function. Замість лінійного руху вона дозволяє створювати природні прискорення та сповільнення, що імітують фізику реального світу, роблячи анімації інтерфейсу витонченими та цілеспрямованими.

Розуміння чотирьох контрольних значень

Функція cubic-bezier() приймає чотири значення, що визначають дві контрольні точки на кривій. Ці контрольні точки формують те, як анімація прискорюється та сповільнюється.

  • X1 (0-1) — горизонтальна позиція першої контрольної точки, що визначає, коли закінчується фаза початкового прискорення
  • Y1 (будь-яке значення) — вертикальна позиція першої контрольної точки, що контролює швидкість початку анімації. Значення більше 1 створюють ефект перевищення
  • X2 (0-1) — горизонтальна позиція другої контрольної точки, що визначає, коли починається фаза сповільнення
  • Y2 (будь-яке значення) — вертикальна позиція другої контрольної точки, що контролює завершення анімації. Значення більше 1 створюють ефект відскоку

Спробуйте безкоштовно — реєстрація не потрібна

Створити криву Безьє →

Поширені пресети easing та коли їх використовувати

CSS надає кілька вбудованих ключових слів easing, які відповідають конкретним значенням cubic-bezier. Розуміння цих пресетів допомагає вибрати правильне відчуття для ваших анімацій.

  • ease (0.25, 0.1, 0.25, 1.0) — стандарт CSS, починається швидко, потім плавно сповільнюється. Підходить для більшості загальних переходів
  • ease-in (0.42, 0, 1.0, 1.0) — починається повільно і прискорюється. Найкраще для елементів, що залишають екран або зникають
  • ease-out (0, 0, 0.58, 1.0) — починається швидко і сповільнюється. Ідеально для елементів, що з'являються на екрані
  • ease-in-out (0.42, 0, 0.58, 1.0) — повільний початок і кінець з швидшою серединою. Підходить для циклічних анімацій або елементів, що залишаються на екрані
  • linear (0, 0, 1, 1) — постійна швидкість від початку до кінця. Використовуйте для індикаторів прогресу, спінерів завантаження або колірних переходів

Часті запитання

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

Так. Функція cubic-bezier() підтримується всіма основними браузерами з IE 10 (2012). Вона є частиною специфікацій CSS Transitions і CSS Animations, які повністю підтримуються в Chrome, Firefox, Safari, Edge та всіх сучасних мобільних браузерах.

Чи можна створити пружинні або відскокові анімації з cubic-bezier()?

Кубічні криві Безьє можуть апроксимувати прості ефекти відскоку, використовуючи значення Y більше 1 (перевищення). Наприклад, cubic-bezier(0.34, 1.56, 0.64, 1) створює легке перевищення. Однак справжня фізика пружини з кількома відскоками потребує CSS spring() (поки не підтримується широко) або JavaScript-бібліотек анімації, таких як GSAP або Framer Motion.

Яка різниця між CSS-переходами та CSS-анімаціями?

CSS-переходи анімують між двома станами при зміні властивості (наприклад, при наведенні). CSS-анімації використовують ключові кадри для визначення багатокрокових послідовностей, які можуть повторюватися та виконуватися незалежно. Обидва використовують ті самі функції часу, включаючи cubic-bezier(), для контролю easing між станами або ключовими кадрами.

Пов'язані інструменти