OnomaUI

poroporo motion

poroporo has 2 kinds of motion.

ぽろぽろ2 motionsOfficial

Motion by meaning

Tears roll down

Sad or moved

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

Duration
1.2s
Repeats
Yes
Easing
ease-in
Animates
Position · Scale · Opacity translate scale opacity
Show CSS
@keyframes onoma-poroporo {
  0% { transform: translate(0%, -70%) scale(0.9, 1.1); opacity: 0; }
  12% { transform: translate(0%, -58%) 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-poroporo {
  animation: onoma-poroporo 1.2s ease-in infinite both;
  transform-origin: 50% 100%;
}

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

Crumble away

Break an item away

Trembles, then crumbles 140% downward and disappears.

Duration
0.8s
Repeats
No
Easing
ease-in
Animates
Position · Rotation · Opacity translate rotate opacity
Show CSS
@keyframes onoma-poroporo-2 {
  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%, 98.82%) rotate(12.71deg); opacity: 1; }
  100% { transform: translate(0%, 140%) rotate(18deg); opacity: 0; }
}

.onoma-poroporo-2 {
  animation: onoma-poroporo-2 0.8s ease-in both;
}

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

Compare with similar motions