Animationer
I och med CSS3 fick vi möjlighet att animera HTML-element med CSS keyframes-animationer och transitions. Trots detta har JavaScript i stor utsträckning använts för att skapa animationer. För mer avancerad animering är det en god idé att använda bibliotek som GSAP eller Anime.js men för enklare animationer är det ofta onödigt att ladda in ett stort JavaScript-bibliotek.
Det finns anledningar till att JavaScript använts för animationer istället för CSS, några av dessa är:
- Det har endast varit möjligt att animera med fasta värden som 100px.
- Det har inte varit möjligt att animera dolda element till synliga (om de varit dolda med display: none).
- Det har varit svårt att kombinera animationer.
Alla dessa går dock att göra med CSS idag.
Animera till auto-höjd eller bredd
Att animera ett HTML-elements storlek har länge varit möjligt med CSS-animationer, så länge storleken på elementet är känd. Men om innehållets bredd eller höjd inte är känd eller varierar har det tidigare inte varit möjligt att exempelvis animera en utfällbar sektion från dold till utfälld. Det är lätt att tro att det fungerar att ange height: 0 och sedan animera till height: auto men detta har inte fungerat eftersom CSS endast tillåtit animeringar med exakta värden. Lösningen har då ofta varit att använda JavaScript för att animera.
Nu går det att animera ett elements storlek utifrån innehållets storlek genom att använda CSS-egenskapen interpolate-size: allow-keywords. Detta instruerar webbläsaren att det ska vara tillåtet att animera nyckelord, inte bara värden. Webbläsaren kan nu animera med värden som auto eller max-content.

