How To Animate HTML Accordion Opening

CSS

19/08/2021


Animating an HTML Accordion is quite straightforward once you know how to target the pertinent elements.

CSS
details[open] summary ~ * {
animation: accordion .5s ease-in-out;
}

For the animation, we target the opened state and any elements inside details that follow the summary tag - hence ~ *.

CSS
@keyframes accordion {
from {
opacity: 0;
margin-top: -10px;
}
to {
opacity: 1;
margin-top: 15px;
}
}

The keyframes themselves are nothing special: some simple vertical movement and change in opacity. To see everything in action, check out my Codepen snippet.


WRITTEN BY

Code and stuff