Skip to the content.

← Индекс руу буцах

Motion / Animation

Duration — богино байх тусмаа мэргэжлийн

Хэрэглээ Хугацаа
Hover, color/opacity шилжилт --duration-fast 120ms
Dropdown, tooltip, popover --duration-base 160ms
Modal, drawer, panel --duration-slow 240ms (overlay 160–240)
Хуудасны шилжилт (View Transition) ≤300ms

Easing

Юуг хөдөлгөх вэ — performance

Хаана хөдөлгөөн хэрэгтэй вэ

Хаана хэрэггүй: scroll-д автоматаар олон юм үсэрч орж ирэх, autoplay carousel, хуудас болгонд орох animation. Хөдөлгөөн нь мэдээлэл дамжуулахгүй бол чимээ.

prefers-reduced-motion

Заавал хүндэтгэх — vestibular эмгэгтэй хүнд том хөдөлгөөн бодит өвчин үүсгэдэг:

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important; /* infinite spinner/pulse-ийг зогсооно */
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;        /* smooth scroll-ийг унтраана */
  }
}

Эсвэл нарийн хандвал: том шилжилтүүдийг fade-ээр орлуулж, жижиг feedback-ийг үлдээж болно.

Практик дүрэм

Эргэлзвэл: 160ms (--duration-base), ease-out, transform+opacity, нэг зүйл л хөдөлнө. Хоёр ба түүнээс олон зүйл зэрэг анимэйшнтэй бол ихэнхдээ нэгийг нь хасах хэрэгтэй.

Нэмэлт техникүүд

[popover] {
  opacity: 0; transform: translateY(-4px);
  transition: opacity 160ms, transform 160ms, display 160ms allow-discrete, overlay 160ms allow-discrete;
}
[popover]:popover-open { opacity: 1; transform: none; }
@starting-style { [popover]:popover-open { opacity: 0; transform: translateY(-4px); } }

@starting-style = орох үеийн эхлэх утга; transition-behavior: allow-discrete (товчлолоор display ... allow-discrete) = гарахдаа transition дуустал display-г хойшлуулна. overlay<dialog>/popover-д давхар бич.

Эх сурвалж