08
การเคลื่อนไหว
โทเค็นระยะเวลา การผ่อนคลายแบบ Apple และสัญญาการลดการเคลื่อนไหว
ระยะเวลา
| Token | Value | Use | Anchor |
|---|---|---|---|
| duration-fast | 200ms | hover color and transform | bg:motion:duration-fast |
| duration-normal | 300ms | card hover, FAQ answer collapse | bg:motion:duration-normal |
| duration-slow | 600ms | scroll-reveal transitions | bg:motion:duration-slow |
| duration-colors | 150ms | quick color flips | bg:motion:duration-colors |
เส้นโค้งผ่อนคลาย
ease-out
ease-out
bg:motion:ease-out
ease-apple
cubic-bezier(0.32, 0.72, 0, 1)
bg:motion:ease-apple
การยกการ์ด
| card-lift-sm | translateY(-2px) | bg:motion:card-lift-sm |
| card-lift-md | translateY(-4px) | bg:motion:card-lift-md |
ลดการเคลื่อนไหว
กฎตายตัว ทุกแอนิเมชันต้องมี override
@media (prefers-reduced-motion: reduce) ที่ปิดหรือแทนที่ด้วยสถานะคงที่ การรีเซ็ตพื้นฐานใน base.css ได้ทำให้ transition เป็นกลางสำหรับผู้ใช้ลดการเคลื่อนไหวแล้ว แอนิเมชันแต่ละส่วนประกอบต้องลบ transform เพิ่มเติมเมื่อ hover @media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}