CSS Keyframes Builder

bounce-e
Playing: 0.0% (0.00s / 1.2s)
1x
0%
100%0.0%
Timeline Keyframes (6 Steps)
0%
25%
50%
75%
100%

Keyframe Properties at0%

Position:%
Translate (Position)
X Offset0px
Y Offset (Bounce height)0px
Scale (Squash & Stretch)
Scale X1.00x
Scale Y1.00x
Rotation & 3D Tilt
Rotate 2D (Z)0°
Rotate X0°
Rotate Y0°
Skew (Fluid & Wobble)
Skew X0°
Skew Y0°
Color, Opacity & Radius
Opacity100%
Color
#6366f1
Radius16px
Filters & Box Shadow
Blur Filter0px
Shadow Preset
Custom CSS Property Overrides for this Stepe.g. filter: contrast(120%);

Animation CSS Properties

animation: ...
duration1.2s
delay0s

Preset Library

10 Presets

Generated Code

/* @keyframes Definition */
@keyframes bounce-effect {
  0% {
    transform: none;
    background-color: #6366f1;
    border-radius: 16px;
    box-shadow: 0 10px 25px -5px rgba(99, 102, 241, 0.4);
  }

  20% {
    transform: scale(1.15, 0.85);
    background-color: #6366f1;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(99, 102, 241, 0.6);
  }

  45% {
    transform: translate(0px, -65px) scale(0.92, 1.08);
    background-color: #818cf8;
    border-radius: 20px;
    box-shadow: 0 35px 35px -10px rgba(99, 102, 241, 0.25);
  }

  70% {
    transform: scale(1.08, 0.92);
    background-color: #6366f1;
    border-radius: 16px;
    box-shadow: 0 8px 16px rgba(99, 102, 241, 0.5);
  }

  85% {
    transform: translate(0px, -20px) scale(0.98, 1.02);
    background-color: #6366f1;
    border-radius: 16px;
    box-shadow: 0 20px 25px -5px rgba(99, 102, 241, 0.3);
  }

  100% {
    transform: none;
    background-color: #6366f1;
    border-radius: 16px;
    box-shadow: 0 10px 25px -5px rgba(99, 102, 241, 0.4);
  }
}

/* Element Animation Class */
.animated-element {
  animation: bounce-effect 1.20s cubic-bezier(0.28, 0.84, 0.42, 1) 0.00s infinite normal both;
  transform-origin: bottom center;
  will-change: transform, opacity;
}

Deep Dive: Mastering CSS @keyframes & Hardware-Accelerated Animations

Build high-performance 60fps web animations with browser GPU compositing, timeline scrubbing, and cubic-bezier physics.

1. Why GPU Transforms Outperform Top/Left

Animating CSS properties like top, left, width, or margin triggers browser reflows and repaints on every single frame, taxing the CPU and causing jank.

In contrast, CSS transform (translate, scale, rotate) and opacity are offloaded directly to the GPU Compositor Thread. The browser transforms elements on dedicated layers with zero layout calculation overhead.

2. Keyframe Percentage Scrubbing Mechanics

How does our visual timeline scrubber preview exact intermediate frames without glitching?

animation-play-state: paused; animation-delay: -0.6s;

According to the W3C CSS Animations specification, assigning a negative animation-delay immediately offsets the playhead into the animation lifecycle. By synchronizing the scrub slider with negative duration offsets, the browser natively renders the exact interpolated state.

3. Squash, Stretch & Natural Elasticity

Classic Disney animation principles state that organic objects deform under acceleration and impact.

When an object hits the floor at 0% or 100%, expand scaleX: 1.15 while compressing scaleY: 0.85. At the peak of a leap, invert it to scaleX: 0.92, scaleY: 1.08 for a convincing bounce effect!

Frequently Asked Questions

What is the CSS animation shorthand order?

The standard order is: animation: [name] [duration] [timing-function] [delay] [iteration-count] [direction] [fill-mode]. For instance, animation: bounce 1.2s ease-in-out infinite both;

How do I import these keyframes into Tailwind CSS?

Navigate to the Tailwind Config tab above! Copy the keyframes block into your tailwind.config.js under theme.extend.keyframes, and declare the animation class under theme.extend.animation.

Does transform-origin change where the element scales or rotates?

Yes! By default, CSS uses 50% 50% (center). For jumping or bouncing balls on the ground, setting transform-origin: bottom center ensures the squash occurs against the floor plane. For hanging pendulums, use top center.

Are my animation sequences stored or sent to a server?

Never. ToolsAA executes 100% in-browser on the client side. Your custom animation values, keyframe coordinates, and timing functions remain strictly confidential on your local device.