Motion by meaning
Float in
Card appearsRises 22% from below at 94% scale while fading in.
- Duration
- 0.52s
- Repeats
- No
- Easing
- cubic-bezier(.2,.8,.2,1)
- Animates
- Position · Scale · Opacity translate scale opacity
Show CSS
@keyframes onoma-fuwa {
0% { transform: translate(0%, 22%) scale(0.94, 0.94); opacity: 0; }
100% { transform: translate(0%, 0%) scale(1, 1); opacity: 1; }
}
.onoma-fuwa {
animation: onoma-fuwa 0.52s cubic-bezier(.2,.8,.2,1) both;
}
/* Reduced motion: only fade in */
@keyframes onoma-fuwa-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
.onoma-fuwa { animation: onoma-fuwa-fade 0.2s ease-out both; }
}Float
IdleFloats up and down 12% with a slight tilt, forever.
- Duration
- 2.4s
- Repeats
- Yes
- Easing
- ease-in-out
- Animates
- Position · Rotation translate rotate
Show CSS
@keyframes onoma-fuwa-float {
0% { transform: translate(0%, 12%) rotate(-2deg); }
100% { transform: translate(0%, -12%) rotate(2deg); }
}
.onoma-fuwa-float {
animation: onoma-fuwa-float 2.4s ease-in-out infinite alternate both;
}
/* Reduced motion: no motion */
@media (prefers-reduced-motion: reduce) {
.onoma-fuwa-float { animation: none; }
}Swell
SelectedSwells softly to 112% and back.
- Duration
- 0.7s
- Repeats
- No
- Easing
- ease-in-out
- Animates
- Scale scale
Show CSS
@keyframes onoma-fuwa-swell {
0% { transform: scale(1, 1); }
50% { transform: scale(1.12, 1.12); }
100% { transform: scale(1, 1); }
}
.onoma-fuwa-swell {
animation: onoma-fuwa-swell 0.7s ease-in-out both;
}
/* Reduced motion: no motion */
@media (prefers-reduced-motion: reduce) {
.onoma-fuwa-swell { animation: none; }
}Compare with similar motions
Words for the same motion