Движение
Длительности и кривые для того немногого, что движется. Большинство переходов длится 160ms по кривой по умолчанию.
<tk-switch>Notifications</tk-switch> <tk-skeleton shape="text" lines="2" style="inline-size: 160px"></tk-skeleton>
Переключатель движется на duration-160 и ease-default; скелетон пульсирует на
duration-2000 и ease-in-out.
Длительность
Имя — это значение в миллисекундах.
| Токен | CSS-переменная | Значение | Для чего |
|---|---|---|---|
duration-60 |
--duration-60 |
60ms | совсем малое изменение, например полоса диапазона |
duration-120 |
--duration-120 |
120ms | эффект нажатия |
duration-160 |
--duration-160 |
160ms | по умолчанию: hover, нажатие, цвет, открытие и закрытие, повороты |
duration-200 |
--duration-200 |
200ms | появление диалога, выезд шторки |
duration-300 |
--duration-300 |
300ms | заполнение индикатора прогресса |
duration-800 |
--duration-800 |
800ms | один оборот спиннера |
duration-1000 |
--duration-1000 |
1000ms | мигание каретки |
duration-1400 |
--duration-1400 |
1400ms | бегущая полоса неопределённого прогресса |
duration-2000 |
--duration-2000 |
2000ms | пульс скелетона |
Кривые
| Токен | CSS-переменная | Значение | Для чего |
|---|---|---|---|
ease-default |
--ease-default |
ease |
по умолчанию для разовых переходов |
ease-emphasized |
--ease-emphasized |
cubic-bezier(0.32, 0.72, 0, 1) |
крупная поверхность встаёт на место: диалог, шторка |
ease-in-out |
--ease-in-out |
ease-in-out |
зацикленные анимации, которые плавно «дышат» |
Как использовать
.my-panel {
transition: opacity var(--duration-160) var(--ease-default);
}
@media (prefers-reduced-motion: reduce) {
.my-panel { transition: none; }
}- Учитывайте настройку «уменьшить движение». Компоненты Thykes при
prefers-reduced-motionдвигаются спокойнее; в своём CSS делайте так же. - Длительности — для движения, а не для ожидания. Задержка перед событием, например перед появлением подсказки, — это не токен движения.