OnomaUI

horohoro motion

horohoro has 2 kinds of motion.

ほろほろ2 motionsOfficial

Motion by meaning

Crumble softly

Crumble away a card

Trembles, then crumbles 120% downward and disappears.

Duration
1.2s
Repeats
No
Easing
ease-in
Animates
Position · Rotation · Opacity translate rotate opacity
Show CSS
@keyframes onoma-horohoro {
  0% { transform: translate(0%, 0%) rotate(0deg); opacity: 1; }
  8% { transform: translate(-2%, 0%) rotate(0deg); opacity: 1; }
  16% { transform: translate(2%, 0%) rotate(0deg); opacity: 1; }
  24% { transform: translate(-1.5%, 0%) rotate(0deg); opacity: 1; }
  32% { transform: translate(0%, 0%) rotate(0deg); opacity: 1; }
  80% { transform: translate(0%, 84.71%) rotate(7.06deg); opacity: 1; }
  100% { transform: translate(0%, 120%) rotate(10deg); opacity: 0; }
}

.onoma-horohoro {
  animation: onoma-horohoro 1.2s ease-in both;
}

/* Reduced motion: only fade out */
@keyframes onoma-horohoro-fade { from { opacity: 1; } to { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .onoma-horohoro { animation: onoma-horohoro-fade 0.2s ease-out both; }
}

Tears fall quietly

Sadness

Falls 60%, splats on landing and vanishes, forever.

Duration
1.6s
Repeats
Yes
Easing
ease-in
Animates
Position · Scale · Opacity translate scale opacity
Show CSS
@keyframes onoma-horohoro-2 {
  0% { transform: translate(0%, -60%) scale(0.9, 1.1); opacity: 0; }
  12% { transform: translate(0%, -49.71%) scale(0.9, 1.1); opacity: 1; }
  70% { transform: translate(0%, 0%) scale(0.9, 1.1); opacity: 1; animation-timing-function: ease-out; }
  80% { transform: translate(0%, 0%) scale(1.3, 0.6); opacity: 1; }
  92% { transform: translate(0%, 0%) scale(1.4, 0.3); opacity: 0; }
  100% { transform: translate(0%, 0%) scale(1.4, 0.3); opacity: 0; }
}

.onoma-horohoro-2 {
  animation: onoma-horohoro-2 1.6s ease-in infinite both;
  transform-origin: 50% 100%;
}

/* Reduced motion: no motion */
@media (prefers-reduced-motion: reduce) {
  .onoma-horohoro-2 { animation: none; }
}

Compare with similar motions