Сделать анимацию сайта проще всего средствами CSS: задайте начальное и конечное состояние, продолжительность и момент запуска. Для первого результата выберите один элемент, например кнопку или карточку, и не анимируйте весь экран. Рабочая анимация должна объяснять действие, не мешать чтению и отключаться при системной настройке уменьшения движения.
Когда анимация помогает, а когда мешает
Анимация оправдана, если показывает связь между действием и результатом: кнопка подтверждает нажатие, карточка раскрывается, сообщение появляется после отправки формы. Постоянное движение фона, текста и нескольких блоков одновременно не помогает выполнить задачу и отвлекает от содержания.
- Используйте короткое движение для обратной связи после действия.
- Показывайте появление блока там, где человек ожидает результат.
- Не прячьте обязательную информацию до завершения эффекта.
- Не запускайте звук или видео вместе с декоративной анимацией.
- Оставьте интерфейс рабочим, даже если анимация отключена.
Сначала проверьте действие без анимации. Если без движения непонятно, что произошло, исправьте текст, состояние кнопки или структуру, а эффект добавляйте после.
Минимальная CSS-анимация по шагам
CSS Animations связывает набор ключевых кадров с элементом через свойства animation-*. MDN описывает этот механизм и синтаксис @keyframes в официальном руководстве.
- Выберите один элемент и одно изменение, например мягкое появление карточки.
- Добавьте элементу отдельный класс, чтобы не затронуть остальные блоки.
- Опишите состояния в
@keyframes. - Задайте длительность, функцию скорости и число повторов.
- Откройте страницу, перезагрузите её и проверьте начало и конец эффекта.
- Повторите проверку на узком экране и при медленном устройстве.
.card-enter {
animation: card-in 320ms ease-out both;
}
@keyframes card-in {
from { opacity: 0; transform: translateY(12px); }
to { opacity: 1; transform: translateY(0); }
}
В примере меняются opacity и transform. Элемент остаётся в разметке, а эффект заканчивается в обычном состоянии. Не ставьте бесконечное повторение для карточек и текста. Если вы только собираете структуру страницы, сначала настройте шапку и адаптивное меню, затем добавляйте движение.
Теория понятна, дальше нужен ваш сайт, а не пример из статьи. На бесплатном вебинаре страницу собирают с нуля и сразу публикуют в интернете.
Собрать свой сайтКак запускать эффект в нужный момент
Анимация может стартовать при загрузке, наведении, фокусе, нажатии или появлении элемента в области просмотра. Для кнопки наведение не должно быть единственным сигналом: на сенсорном экране его нет, а клавиатурному пользователю нужен стиль :focus-visible.
.button { transition: transform 160ms ease, background-color 160ms ease; }
.button:hover,
.button:focus-visible { transform: translateY(-2px); }
.button:active { transform: translateY(0); }
Для появления блоков при прокрутке сначала спросите, нужен ли эффект вообще. Уже опубликованная инструкция по прокрутке и якорям помогает отделить навигацию от декоративного движения. Не скрывайте содержимое навсегда, если JavaScript не запустился.
По теме: Как сделать сайт-каталог сайтов: структура и проверка в 2026
Учитываем настройку уменьшения движения
Медиавыражение prefers-reduced-motion сообщает, что человек включил уменьшение необязательного движения в системе. MDN указывает, что значение reduce следует использовать для удаления или замены несущественных эффектов. Поддержка и пример приведены в справке MDN.
@media (prefers-reduced-motion: reduce) {
.card-enter { animation: none; }
.button { transition: none; }
html { scroll-behavior: auto; }
}
Это не запасной дизайн, а обязательная ветка проверки. В ней информация должна оставаться видимой, кнопки работать, а раскрывающиеся панели доходить до конечного состояния без ожидания.
Проверяем результат перед публикацией
Приёмка должна охватывать смысл, управление и скорость. Пройдите страницу мышью, клавиатурой и пальцем. Затем включите в системе уменьшение движения и повторите тот же путь.
- Эффект связан с конкретным действием или появлением результата.
- После завершения элемент остаётся читаемым и кликабельным.
- Клавиша Tab показывает фокус, а Enter или пробел выполняют действие.
- На телефоне движение не вызывает горизонтальную прокрутку.
- При
prefers-reduced-motion: reduceнеобязательное движение исчезает. - При медленной загрузке контент не остаётся прозрачным.
- Несколько быстрых нажатий не запускают конфликтующие состояния.
Самое долгое в своём сайте это первый запуск: страницы, домен, публикация. На бесплатном вебинаре по вайбкодингу весь путь проходят вживую, от идеи, описанной словами, до работающего адреса. Опыт в программировании не нужен.
Пройти путь до сайтаДиагностика частых сбоев
Если анимация не запускается, сначала проверьте, назначен ли класс и совпадает ли имя @keyframes. Если элемент прыгает после эффекта, конечное состояние отличается от обычных CSS-правил. Если страница тормозит, временно отключите все эффекты и возвращайте их по одному, наблюдая за проблемным элементом.
- Элемент мигает при загрузке: задайте безопасное обычное состояние и не делайте контент зависимым от JavaScript.
- Анимация повторяется бесконечно: уберите
infinite, если повтор не несёт информации. - Кнопка уезжает: не меняйте размеры и отступы в активном состоянии, используйте небольшое преобразование.
- На мобильном эффект обрезан: проверьте
overflowу родительских блоков. - После возврата на вкладку всё проигрывается снова: запускайте эффект по явному состоянию, а не по каждому рендеру.
По теме: Как сделать женский сайт без стереотипов в 2026 году
Когда CSS-анимации недостаточно
Для простого появления, подсветки и изменения состояния CSS достаточно. Сложная интерактивная сцена, синхронизация со звуком или монтаж кадров потребуют JavaScript либо специализированного инструмента. Сначала зафиксируйте сценарий и ограничение производительности, иначе сложность вырастет быстрее пользы.
Если цель состоит в общей проверке удобства, используйте чек-лист хорошего сайта. Он помогает увидеть, не стала ли эффектная деталь важнее понятного текста, скорости и мобильной версии.
Частые вопросы
Можно ли сделать анимацию без JavaScript?
Да. CSS подходит для появления, переходов, наведения и многих циклических эффектов. JavaScript нужен, когда запуск зависит от сложного состояния или данных.
Почему анимация дёргается?
Проверьте одновременные изменения размеров, большие изображения и несколько эффектов на одном элементе. Упростите движение и возвращайте свойства по одному.
Нужно ли анимировать первый экран?
Нет. Первый экран должен сразу показать смысл и действие. Добавляйте эффект только если он не задерживает чтение и не скрывает основной элемент.
Как проверить уменьшение движения?
Включите соответствующую настройку доступности в операционной системе, перезагрузите страницу и повторите основной сценарий.
Анимация становится полезной, когда она встроена в понятный сценарий сайта. На воркшопе вы соберёте страницу с ИИ и проверите её на компьютере и телефоне.
Собрать страницу