Animate in CSS without @keyframes using @starting-style

A cube infinitely animated without keyframes

Did you know you can animate without @keyframes?

The new @starting-style makes it possible.

It lets you define an element’s initial state. CSS handles the transition from there.

  • Simpler syntax
  • Cleaner code
  • Perfect for quick UI effects

But here’s the real magic: You can now animate elements as they enter the DOM. Think modals, tooltips, or anything that appears dynamically.

Before, CSS couldn’t animate them, it didn’t know their “before” state. @starting-style changes that.

No more hacks. No more JS for basic transitions. It’s supported in ~88% of browsers, so not production-ready yet.

Already tried it? I’d love to hear how you’d use it.


I’m working on an ebook called “You Don’t Need JavaScript”. To get notified when it launches 👉 see the ebook

Related Articles

Explore more articles on front-end development, covering HTML, CSS and JavaScript for building high-performance websites.

    No strings attached, unsubscribe anytime!