Roll In Bottom is a roll in CSS keyframe animation with 2 keyframe steps (0% → 100%). It animates transform (translateY, rotate) and opacity. The element starts invisible and fades in to full opacity.
Roll In animations spin the element into place from outside the viewport. They give entrances a playful, rolling motion that draws attention without being aggressive.
Animation shorthand
.element {
animation: roll-in-bottom 1s ease 0s 1 normal forwards;
}@keyframes code
@keyframes roll-in-bottom {
0% { opacity: 0; transform: translateY(400px) rotate(-180deg); }
100% { opacity: 1; transform: translateY(0) rotate(0); }
}HTML
<div class="element">Animated content</div>Keyframe steps
| Step | Styles |
|---|---|
| 0% | opacity: 0; transform: translateY(400px) rotate(-180deg); |
| 100% | opacity: 1; transform: translateY(0) rotate(0); |
Respect reduced motion
@media (prefers-reduced-motion: reduce) {
.element {
animation: none;
}
}More Roll In animations
Frequently Asked Questions
Copy the @keyframes roll-in-bottom block and the animation shorthand into your stylesheet, then add the class to any element. The shorthand reads name, duration, timing function, delay, iteration count, direction and fill mode.
Yes. Change the second value in the shorthand, for example 2s for a slower animation, or use the settings above the code to try duration, timing, delay, repeat count, direction and fill mode and copy the updated CSS.
Keep the iteration count at 1 and add the animation class to the element in your HTML. It plays once as soon as the element is rendered; use forwards or both to keep the end state.
Yes. It only animates transform and opacity, which browsers can hand to the GPU, so it stays smooth even on mobile devices.
