Trots att CSS (Cascading Style Sheets) har funnits i nästan 30 år har språket länge saknat funktioner för mer avancerad logik – något som de flesta programmeringsspråk erbjuder. En förklaring är att CSS fungerar på ett helt annat sätt än traditionella programmeringsspråk och aldrig varit avsett att användas fristående, utan i kombination med andra webbtekniker som HTML och JavaScript.
I större webbprojekt har CSS därför ofta upplevts som begränsat, och det har blivit vanligt att använda verktyg som SASS, LESS eller PostCSS. Dessa gör det enklare att dela upp och återanvända kod, samtidigt som de minskar behovet av upprepningar.
Numera har dock CSS inbyggt stöd för variabler, villkor och funktioner. Därmed närmar sig språket en nivå där preprocessorer kanske inte längre behövs och gradvis kan fasas ut.