Últimamente algunas de las dudas más recurrentes que se suceden en los cursos de diseño y maquetación web que participamos apuntan a CSS4: ¿Cuándo saldrá CSS4? ¿Cuál es la fecha de salida? ¿Qué novedades incorporará? La respuesta rápida desilusiona a algunos: «no habrá CSS4».
Pero con la respuesta larga recuperamos la esperanza: habrá actualizaciones, mejoras y nuevas características para CSS, pero no se llamarán CSS4 y no verán la luz siguiendo el mismo proceso que nos acostumbraron versiones como CSS1 o CSS2.
La web evoluciona de una forma no lineal y las nuevas especificaciones de CSS se trabajarán en función a esta evolución, mucho más natural, divididas por módulos, donde el nivel de cada módulo (nivel 1, 2, 3, 4 o 5) no se corresponde necesariamente con la versión de CSS donde se incluyeron por primera vez, sino que responde a un control de niveles propio. Veamos esto con más detalle.
CSS1 y CSS2: documento completo
Las primeras versiones de CSS estaban recogidas en una especificación en forma de documento único. Esto significa que toda la especificación (aunque dividido por secciones) entraba en consideración, revisión o recomendación a la vez, de forma monolítica.
Por lo tanto, hasta que todas las características no estuvieran listas, el documento no veía la luz. Si había algo que se retrasaba, se retrasaba la implementación de todas las funcionalidades.
Así por ejemplo, en CSS1, la propiedad background-color
va de la mano de padding
, aunque poco tengan que ver. Ambas forman parte del mismo documento y su implementación es coetánea.
Lo mismo con CSS2 y CSS2.1, un solo documento con todas las novedades en forma de de actualización completa y cerrada. Los tiempos de implementación se alargan. Todo tiene que estar listo para que estas versiones vea la luz.
Sin embargo, como hemos comentado, la web evoluciona de forma no lineal. Los navegadores se actualizan siguiendo sus propios ciclos de trabajo, añadiendo aquellas características que creen más convenientes o urgentes.
CSS3: el cambio a la modularización
Pero con CSS3 la forma de trabajo cambia. En lugar de un solo documento, cada grupo de características homogéneas se divide en módulos independientes, para que su implementación sea más sencilla y puedan evolucionar y ser actualizadas por separado.
Esto da lugar a muchos módulos llamados «de nivel 3», tales como el módulo de selectores de nivel 3 o el módulo de color de nivel 3, independientes unos de otros pero compartiendo el mismo nivel.
CSS4: la próxima no versión de CSS
Desde aquí, con toda la especificación dividida, cada módulo evoluciona de forma independiente. La línea temporal se difumina y no será posible establecer una fecha común para todos los módulos, pues ya hay algunos que están publicados y otros sobre los que todavía no se ha empezado a trabajar.
Esto unido a los diferentes estados posibles de cada documento (Working Draft, Candidate Recomendation, Recomendation….) hace que la evolución de cada módulo sea independiente y más acorde con la evolución de la web.
Sin embargo, parece que pudiésemos identificar todavía unos escalones comunes a todos los módulos (todo lo que lleva nivel 3 sería CSS3 y nivel 4 pudiera referirse a CSS4). Sin embargo esto no es así, pues también tendremos nuevos módulos, que comenzarán con su propio control de versiones y niveles. El ejemplo más claro CSS Grid, el nuevo módulo para crear layouts basadas en grid comienza con el nivel 1, que ya es Candidate Recomendation y ya tiene su actualización a nivel 2 en Working Draft.
¿Significa que CSS Grid es CSS1? Claramente no. Es un módulo cuyo nivel propio actual es 1, pero que no forma parte, al igual que el resto de módulos, de ningún documento único.
Conclusión: No habrá CSS4 pero si actualizaciones
El ejemplo de CSS Grid es quizás el más ilustrativo sobre cómo será el futuro de las próximas características y actualizaciones de CSS. Trabajar por módulos siempre es una buena idea, permite jugar con diferentes ciclos y velocidades de trabajo, según el nivel de uso o dificultad de implementar una u otra característica por parte de los navegadores.
Si te interesa conocer alguna de las características de los nuevos niveles, te recomiendo eches un vistazo a este artículo sobre formularios o este sobre tiempo de lectura con CSS, verás la de cosas que podremos hacer con CSS 🙂
Que interesante, he aprendido mucho guiandome por sus indicaciones. Muchas gracias.
Gracias por la información, es interesante. Saludos.
Muy interesante el resumen