Тип анимации
Класс animation проявляет элемент из прозрачности, когда браузер его
отрисовывает. Классы направления добавляют к проявлению короткий сдвиг слева,
справа или снизу, а infinite повторяет анимацию без остановки. Берите их для
появления карточек, уведомлений и других блоков, которые приходят на страницу.
Пример
Направление
Каждый образец повторяется по кругу, чтобы движение было видно. Подпись — класс, который задаёт направление.
Один раз и по кругу
Без infinite анимация идёт один раз — при отрисовке элемента. Кнопка
«Повторить» снимает и снова ставит класс animation на левом образце.
Классы
| Класс | CSS | Значения |
|---|---|---|
animation |
animation-name: sf-animation-fade; animation-duration: var(--sf-duration-normal); animation-timing-function: var(--sf-animation); animation-fill-mode: both |
— |
infinite |
animation-iteration-count: infinite |
— |
animation-from-left |
animation-name: sf-animation-from-left |
— |
animation-from-right |
animation-name: sf-animation-from-right |
— |
animation-from-bottom |
animation-name: sf-animation-from-bottom |
— |
Условия (что это): ширина экрана — нет; состояния — нет.
Классы и переменные собраны из CSS выпуска и обновляются вместе с ним.
Переменные
Классы читают эти токены темы. Изменённый токен меняет все места, где он используется, — классы, компоненты и тему; задайте его в теме проекта, а не на отдельном элементе. Все токены — на странице Все токены.
| Переменная | Значение по умолчанию |
|---|---|
--sf-duration-normal |
0.3S |
--sf-animation |
cubic-bezier(.25, .8, .25, 1) |
--sf-b0 |
0.625rem |
Применение
Базовый класс и направление
animation задаёт имя, длительность, кривую и заполнение анимации; классы
animation-from-* меняют только её имя. Поэтому направление всегда ставят
вместе с базовым классом: без него длительность анимации нулевая и движения нет.
<div class="animation">Проявляется</div>
<div class="animation animation-from-bottom">Поднимается снизу</div>
Сдвиг небольшой — 10px при 1rem = 16px (токен --sf-b0); элемент
приходит на своё место из прозрачности.
Длительность
По умолчанию анимация длится --sf-duration-normal (0,3 с). Другую
длительность задают классы
продолжительности анимации:
<div class="animation animation-from-left animation-duration-slow">Медленно</div>
Повтор
infinite повторяет анимацию бесконечно. Он подходит для индикаторов и
образцов, но не для содержимого, которое человек читает: постоянное
движение отвлекает.
<div class="animation infinite">Повторяется</div>
Запуск позже
Анимация начинается, когда элемент с классом попадает в документ или когда класс появляется на элементе. Чтобы показать блок по действию, добавьте класс скриптом; чтобы повторить анимацию, снимите класс и поставьте его снова.
Ограничения
- Анимация не ждёт, пока элемент окажется в области просмотра: блок ниже первого экрана проявляется сразу при загрузке, и человек этого не видит.
- Направления физические:
animation-from-leftприходит слева и при письме справа налево. - Классы не учитывают системную настройку уменьшения движения
(
prefers-reduced-motion). Если движение не несёт смысла, отключите его в стилях проекта по медиазапросуprefers-reduced-motion: reduce. - У семейства нет префиксов ширины экрана и состояния.