Le développement du troisième niveau des feuilles de styles en cascade commence dès 1999, parallèlement à celui de CSS 2.1. CSS3 devient « modulaire », afin de faciliter ses mises à jour, mais aussi son implémentation par des agents utilisateurs aux capacités et aux besoins de plus en plus variés (navigateurs graphiques, navigateurs pour mobiles, navigateurs vocaux). Les navigateurs peuvent ainsi implémenter des sous-ensembles de CSS325. Dès lors, le degré d'avancement de CSS3 varie selon les modules et le degré de priorité qui leur a été donné par le groupe de travail CSS26. En 2007, les modules les plus avancés (recommandations candidates) concernent la mise en forme des annotations ruby, la négociation de style entre serveurs et agents utilisateurs (« Media Queries »), le rendu web TV, la gestion des couleurs ou encore la prise en compte de la configuration de l'interface utilisateur. Dans d'autres cas, des modules peuvent atteindre le stade de recommandation candidate, mais être par la suite ramené au stade de document de travail en raison des difficultés mises à jour à la suite de l'appel à implémentation. C'est par exemple le cas du module de typographie « CSS Text ». De même, les implémentations varient selon les stratégies et les besoins des différents navigateurs. Opera implémente par exemple les « Media Queries », qui répondent à ses besoins spécifiques de navigateur multiplate-forme embarqué sur des clients ayant des capacités d'affichage très variées. Firefox, davantage orienté vers le navigateur exploité en tant que plateforme, privilégie en revanche des modules appropriés à cet usage comme le module sélecteurs avancés. Certains membres du groupe de travail CSS, ainsi que des développeurs web, ont soulevé le problème de la lenteur de l'avancement de CSS3 : Pour Ian Hickson, « le groupe de travail CSS est aujourd'hui atteint de dysfonctionnements chroniques » : son caractère trop fermé le prive des contributeurs nécessaires pour l'édition des spécifications, leur relecture ou encore la rédaction des suites de test27 ; Pour Daniel Glazman, cette lenteur s'explique par 3 erreurs originelles : le choix de développer CSS par niveau et non pas par versions successives, la priorité accordée à la révision CSS 2.1 au détriment de CSS3, le nombre excessif de modules CSS3 et la complexité des propriétés qui y sont développées28. En 2008, aucun module n'est considéré comme terminé par le W3C, et l'implémentation dans les navigateurs est donc marginale, souvent à titre de test, comme les fonctions -moz-xxx du moteur Gecko, dont le préfixe limite l'utilisation aux seuls navigateurs basés sur Gecko.