OnomaUI

petan motion

petan has 2 kinds of motion.

ぺたん2 motionsOfficial

Motion by meaning

Stamp it

Approved

Slams in from 170% scale and shakes 4% before settling.

Duration
0.5s
Repeats
No
Easing
ease-out
Animates
Position · Scale · Opacity translate scale opacity
Show CSS
@keyframes onoma-petan {
  0% { transform: translate(0%, 0%) scale(1.7, 1.7); opacity: 0; animation-timing-function: cubic-bezier(.55,0,1,.45); }
  30% { transform: translate(0%, 0%) scale(1, 1); opacity: 1; }
  42% { transform: translate(-4%, 0%) scale(1, 1); opacity: 1; }
  54% { transform: translate(2.8%, 0%) scale(1, 1); opacity: 1; }
  66% { transform: translate(-1.6%, 0%) scale(1, 1); opacity: 1; }
  78% { transform: translate(0.6%, 0%) scale(1, 1); opacity: 1; }
  100% { transform: translate(0%, 0%) scale(1, 1); opacity: 1; }
}

.onoma-petan {
  animation: onoma-petan 0.5s ease-out both;
}

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

Plop down to sit

Tired character

Sinks 20% heavily, stays a while, then rises back.

Duration
1s
Repeats
No
Easing
ease-in-out
Animates
Position · Scale translate scale
Show CSS
@keyframes onoma-petan-2 {
  0% { transform: translate(0%, 0%) scale(1, 1); animation-timing-function: ease-out; }
  35% { transform: translate(0%, 20%) scale(1.04, 0.9); }
  75% { transform: translate(0%, 20%) scale(1.04, 0.9); }
  100% { transform: translate(0%, 0%) scale(1, 1); }
}

.onoma-petan-2 {
  animation: onoma-petan-2 1s ease-in-out both;
  transform-origin: 50% 100%;
}

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

Compare with similar motions