Motion by meaning
Deflate, feel down
Show disappointmentSinks 28% heavily, stays a while, then rises back.
- Duration
- 1.6s
- Repeats
- No
- Easing
- ease-in-out
- Animates
- Position · Scale translate scale
Show CSS
@keyframes onoma-shuun {
0% { transform: translate(0%, 0%) scale(1, 1); animation-timing-function: ease-out; }
35% { transform: translate(0%, 28%) scale(1.04, 0.9); }
75% { transform: translate(0%, 28%) scale(1.04, 0.9); }
100% { transform: translate(0%, 0%) scale(1, 1); }
}
.onoma-shuun {
animation: onoma-shuun 1.6s ease-in-out both;
transform-origin: 50% 100%;
}
/* Reduced motion: no motion */
@media (prefers-reduced-motion: reduce) {
.onoma-shuun { animation: none; }
}Whoosh away
Message sentCrouches, then shoots 300% upward and vanishes.
- Duration
- 0.6s
- Repeats
- No
- Easing
- cubic-bezier(.6,0,.9,.4)
- Animates
- Position · Scale · Opacity translate scale opacity
Show CSS
@keyframes onoma-shuun-2 {
0% { transform: translate(0%, 0%) scale(1, 1); opacity: 1; animation-timing-function: ease-out; }
20% { transform: translate(0%, 8%) scale(1.08, 0.9); opacity: 1; }
100% { transform: translate(0%, -300%) scale(0.92, 1.12); opacity: 0; }
}
.onoma-shuun-2 {
animation: onoma-shuun-2 0.6s cubic-bezier(.6,0,.9,.4) both;
}
/* Reduced motion: only fade out */
@keyframes onoma-shuun-2-fade { from { opacity: 1; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
.onoma-shuun-2 { animation: onoma-shuun-2-fade 0.2s ease-out both; }
}Compare with similar motions