OnomaUI

fuwa motion

fuwa has 3 kinds of motion.

ふわっ3 motionsOfficial

Motion by meaning

Float in

Card appears

Rises 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

Idle

Floats 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

Selected

Swells 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