web embed
Вступ для початківців
Анімація в CSS
Як змусити елементи вебсторінки рухатися. Починаємо з нуля.
© 2026 Андрій Когут
Навіщо анімувати
Рух пояснює, що змінилося.
Орієнтує
Показує, звідки з’явилася панель і куди вона зникла.
Підтверджує
Дає знати, що натискання, збереження чи помилку помічено.
Скеровує
Привертає погляд до того, що зараз найважливіше.
Основи
Кожне правило CSS має три частини
.box {   background: orange;   width: 200px; }
Селектор: .box
Які елементи сторінки оформлюємо. Тут це всі елементи з класом box.
Властивість: background
Що саме в них змінюємо: колір, розмір, розташування.
Значення: orange
Яким воно має стати.
Основи
Анімація змінює значення поступово
web embed
Без анімації
Положення й колір змінюються миттєво, одним стрибком.
З анімацією
Та сама зміна, розтягнута на 0,8 секунди.
Основи
Два способи оживити елемент
transition
Перехід: плавно змінює стиль з одного значення на інше. Його щось має запустити: наведення чи клік.
@keyframes
Ключові кадри: послідовність кроків, описана наперед. Запускається сама й може повторюватися без кінця.
web embed
web embed
Складники
Перехід веде з точки А в точку Б
.button {   background: #4FA8FF;   transition: transform 300ms ease,               background 300ms ease; } .button:hover {   background: #FF8A3D;   transform: scale(1.1); }
Читаємо: яка властивість, як довго, з якою плавністю. :hover — курсор над елементом.
web embed
Складники
Ключові кадри — це розклад руху
@keyframes bounce {   0%, 100% { transform: translateY(0) }   50% { transform: translateY(-160px) } } .ball {   animation: bounce 1s ease-in-out              infinite; }
translateY(-160px) — це на 160 пікселів угору. Проміжні кадри браузер домальовує сам.
web embed
Складники
Один рядок, сім налаштувань
animation: bounce 1s ease-in-out 200ms infinite alternate both;
Значення
Окрема властивість
Що задає
bounce
animation-name
Який блок @keyframes відтворити
1s
animation-duration
Скільки триває один цикл
ease-in-out
animation-timing-function
Як змінюється швидкість у циклі
200ms
animation-delay
Скільки чекати перед стартом
infinite
animation-iteration-count
Скільки разів повторити
alternate
animation-direction
Вперед, назад чи по черзі
both
animation-fill-mode
Які стилі діють до і після
Складники
Плавність надає рухові характеру
web embed
Плавність (easing) — це темп руху: де він пришвидшується, а де сповільнюється. Та сама відстань, той самий час, інше відчуття.
Складники
Одна анімація, різні затримки
.bar {   animation: wave 1.2s ease-in-out              infinite; } .bar-2 { animation-delay: 80ms; } .bar-3 { animation-delay: 160ms; } .bar-4 { animation-delay: 240ms; }
Усі смужки відтворюють ту саму анімацію. Кожна наступна стартує на 80 мілісекунд пізніше.
web embed
Приклади
Чотири індикатори завантаження
web embed
web embed
web embed
web embed
Кільце
rotate(360deg), linear
Крапки
scale + затримки
Каркас
background-position
Пульс
scale + opacity, ease-out
Приклади
Три складніші ефекти
web embed
web embed
web embed
3D-куб
transform-style: preserve-3d
Рух уздовж кривої
offset-path + offset-distance
Сяйлива рамка
@property + conic-gradient
Перед релізом
Не всі властивості анімуються плавно
Плавно
transform opacity
Браузер рухає, масштабує або робить прозорішою вже намальовану картинку. Це швидко, тож рух лишається плавним.
Може смикатися
width, height top, left, margin
Ці властивості змінюють місце, яке займає елемент, тож браузер у кожному кадрі заново розставляє сторінку довкола нього.
Рухаємо через translate, масштабуємо через scale, проявляємо й ховаємо через opacity.
Перед релізом
Не всім рух на користь
@media (prefers-reduced-motion: reduce) {   .badge {     animation: none;   } }
Декому від руху на екрані паморочиться в голові, тож у системах є налаштування «Зменшення руху». Це правило діє, лише коли його ввімкнено.
Згасання й зміну кольору можна лишити. Великі переміщення й нескінченні цикли краще прибрати.
web embed
Підсумок
З чого почати
01
Спершу пробуйте transition
Для наведення, фокуса та станів «відкрито — закрито» більшого не треба.
02
@keyframes — для циклів і кроків
Усе, що повторюється, стартує саме чи має понад два стани.
03
Плавно й тактовно
Анімуйте transform і opacity. Зважайте на prefers-reduced-motion.
Для практики: скопіюйте будь-який приклад із презентації і змінюйте по одному числу: тривалість, затримку, відстань.