OnomaUI

sakusaku motion

sakusaku has 2 kinds of motion.

さくさく2 motionsOfficial

Motion by meaning

Move along briskly

Snappy progress

Hops 8 steps (18% high) across 80%, repeating.

Duration
0.9s
Repeats
Yes
Easing
linear
Animates
Position · Opacity translate opacity
Show CSS
@keyframes onoma-sakusaku {
  0% { transform: translate(-40%, 0%); opacity: 0; animation-timing-function: ease-out; }
  6.25% { transform: translate(-35%, -18%); opacity: 1; animation-timing-function: ease-in; }
  12.5% { transform: translate(-30%, 0%); opacity: 1; animation-timing-function: ease-out; }
  18.75% { transform: translate(-25%, -18%); opacity: 1; animation-timing-function: ease-in; }
  25% { transform: translate(-20%, 0%); opacity: 1; animation-timing-function: ease-out; }
  31.25% { transform: translate(-15%, -18%); opacity: 1; animation-timing-function: ease-in; }
  37.5% { transform: translate(-10%, 0%); opacity: 1; animation-timing-function: ease-out; }
  43.75% { transform: translate(-5%, -18%); opacity: 1; animation-timing-function: ease-in; }
  50% { transform: translate(0%, 0%); opacity: 1; animation-timing-function: ease-out; }
  56.25% { transform: translate(5%, -18%); opacity: 1; animation-timing-function: ease-in; }
  62.5% { transform: translate(10%, 0%); opacity: 1; animation-timing-function: ease-out; }
  68.75% { transform: translate(15%, -18%); opacity: 1; animation-timing-function: ease-in; }
  75% { transform: translate(20%, 0%); opacity: 1; animation-timing-function: ease-out; }
  81.25% { transform: translate(25%, -18%); opacity: 1; animation-timing-function: ease-in; }
  87.5% { transform: translate(30%, 0%); opacity: 1; animation-timing-function: ease-out; }
  93.75% { transform: translate(35%, -18%); opacity: 1; animation-timing-function: ease-in; }
  100% { transform: translate(40%, 0%); opacity: 0; }
}

.onoma-sakusaku {
  animation: onoma-sakusaku 0.9s linear infinite both;
}

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

Light and crisp

Light tap feedback

Shrinks by 6% on press, overshoots by 2%, then settles.

Duration
0.24s
Repeats
No
Easing
ease-out
Animates
Scale scale
Show CSS
@keyframes onoma-sakusaku-2 {
  0% { transform: scale(1, 1); }
  35% { transform: scale(0.94, 0.94); animation-timing-function: ease-out; }
  70% { transform: scale(1.02, 1.02); animation-timing-function: ease-in-out; }
  100% { transform: scale(1, 1); }
}

.onoma-sakusaku-2 {
  animation: onoma-sakusaku-2 0.24s ease-out both;
}

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

Compare with similar motions