soy Kseso y esto EsCSS

CSS4: El nuevo especimen de la CriptoCSSlogía

CSS4: El nuevo especimen de la CriptoCSSlogía

·Por Kseso ✎ 3

¿Cómo? ¿Que no sabes qué es la criptoCSSlogía? La criptocsslogía es a CSS lo mismo que la criptoZOOlogía a la zoología. Que de ella dice la wiki:

La criptozoología (del griego κρυπτος cryptos, 'oculto', ζωος zoos, 'animal' y λογος logos, 'estudio'; literalmente: 'el estudio de los animales ocultos') es la disciplina que realiza el estudio y búsqueda de hipotéticos animales actuales denominados "críptidos".

Sustituye animales y zoología por módulos (propiedades) y niveles (versiones) de CSS y ahí lo tienes. Desde hace un tiempo, exactamente desde Noviembre de 2011, han aparecidos los profetas de CSS4 anunciando que ya habita entre nosotros. ¡Ainss!

Actualizado 05/09/2012 para ahorrarte mi opinión

¿Sabes quién es @tabatkins?. En su página se presenta como:

I'm Tab Atkins Jr, and I wear many hats. I work for Google on the Chrome browser as a Web Standards Hacker. I'm also a member of the CSS Working Group, and am either a member or contributor to several other working groups in the W3C. You can contact me here.

Bien, te voy a ahorrar el trabajo, si quieres, de leer mi opinión al respecto. Si quieres saber cuál es el estado de Css4 sólo tienes que leer su breve artículo:

A Word About CSS4

I regularly get people asking about when "CSS4" will be available.
I'd like to clear things up with something unequivocal:
THERE IS NO SUCH THING AS CSS4

Fin actualización

Historia del falso alumbramiento de CSS4

Allá por Septiembre de 2011, un grupo de trabajo del consorcio W3C publicó el borrador de su trabajo cuyo título era: ""Selectors level 4"* que en un primer momento pasó bastante desapercibido. Tan ignorado fue durante Octubre como otros documentos con la mágica expresión "level 4" lo fueron antes o después:
"CSS Image Values and Replaced Content Module Level 4".
"CSS Backgrounds and Borders Module Level 4".
"CSS Text Level 4".

* Etiquetado como "W3C Working Draft". Posteriormente (Enero 2012) ha sido publicado el "Editor's Draft" del mismo.

Pero en Noviembre de ese mismo año toda la red se inundó con alabanzas de bienvenida al nonato Css4. Corrieron, y aun siguen, ríos de tinta alabando a los nuevos selectores que nos traía la versión 4 de Css. En especial al selector de ancestro, algo hasta la fecha imposible de hacer con Css.

¿Dónde surge el malentendido?

Desde hace un tiempo, el consorcio de la W3C, viene utilizando en sus documentos la expresión "nivel" para referirse tanto al desarrollo de alguna parte de las especificaciones de css (módulos) como a todo el corpus de css. Lo que tradicionalmente se han llamado versiones de css: 1, 2, 2.1 y la actual en desarrollo, la 3 ahora es "css level 3"
Así podemos leer en algunos documentos, por ejemplo:

This module contains the features of CSS level 3 relating to positioning and stacking of elements. It includes and extends the functionality of CSS level 2 [CSS21], which builds on CSS level 1 [CSS1].

Otro cambio en los usos del consorcio es el actual desarrollo de cada uno de los módulos (partes) de css de forma independiente unos de otros. Cada grupo de trabajo va quemando etapas en el desarrollo de una parte con independencia del ritmo de otros grupos.

En cuanto a la nomenclatura de los distintos módulos, partes o documentos, hay cierta tendencia a una normalización en su titulación que consiste en el añadido final de "nivel X". En este caso, el numeral que sustituye a la X dependerá de las veces que ese módulo haya sido desarrollado anteriormente.

Así tenemos, por ejemplo, que la parte correspondiente a los selectores ha venido siendo desarrollada desde el principio de los tiempos, y por lo tanto en el borrador actual se le añade el numeral 4. Sin embargo en módulos que son de reciente inclusión en css como "CSS Variables Module Level 1" (Febrero 2012) el numerito en cuestión es el 1.

La paradoja de los niveles:

Si hacemos caso a quienes defienden que porque en el título del documento de trabajo más reciente de un módulo de css (o de dos o de tres) aparezca un numeral significa por sí mismo que el consorcio de la W3C está desarrollando esa versión (módulo) de css nos encontraríamos que en la actualidad no sólo se está desarrollando el nivel 3 y 4 de css, sino que el consorcio ha vuelto a abrir la versión 1 de css (ahí tenemos las variables css).

Un documento esclarecedor del consorcio W3c

Todo aquellos que pregonaron la buena nueva lo hacen desconociendo documentos previos del consorcio.
Ya en Mayo de 2011 publicaba el titulado "Cascading Style Sheets (CSS) Snapshot 2010" con estatus "Editor's Draft". Mira el punto 2: Niveles de CSS: 1-2 y 3. No busques más. No hay mas.
Pero aún más importante, mira el punto 4.2: tabla con el índice de los selectores. Busca al principio de ella E:root y en la columna derecha el nivel se Css donde fue definido por primera vez: 3.
Si no fuese suficientemente aclaratorio, sigue el enlace donde indica la sección donde se describe (Structural pseudo-classes) y mira el título.

Desfaciendo entuertos y malentendidos:

Ya hace un tiempo que el desarrollo de CSS es modular. Y cada módulo tiene su propio ritmo de evolución, así como el nombre que se le asigna.
Así tenemos campos muy específicos que vienen desarrollandose desde el inicio de css y otros que se han comenzado recientehente.
Por ello ahora la nomenclatura habla del nivel. En algunos, como los selectores o el texto, el documento de trabajo más novedoso es el que lleva el epígrafe 4. En otros más recientes, como el mencionado sobre las variables es el 1 y en otros como las @media-query, transform 2D y 3D, @keyframes, modelo de caja, etc, la titulación ha día de hoy es diferente.

Hasta fechas recientes, a medida que evolucionaban esos documentos se integraban en la versión correspondiente de css conformando su corpus de especificaciones que iban superando estadios hasta llegar al último. Esto llevaba a situaciones tan anacrónicas como que la ver. 2.1 de css haya alcanzado el estatus de recomendada este verano pasado.

Sin embargo, fruto de la nueva concepción modular del desarrollo de css parece que ya no habrá clasificación global de todo el corpus, sino que cada módulo irá evolucionando a su ritmo estando en un determinado momento en un estadio dado. Repito, todo indica a día de hoy que será cada una de las partes la que alcance los distintos estadios o clasificación (borrador... candidata... recomendación) y no el todo.

Es por esto último por lo que el propio consorcio recomienda referirse no al desarrollo del todo (nivel de css) sino al estado de desarrollo en concreto del módulo de css en el momento de referirse a él.
Esto es, que si alguien menciona a los selectores en particular en un momento dado, debería no referirse a los selectores de css2.1 o css3, sino, en puridad, al documento y su nivel que los desarrolla.

Por cierto, en el último "estado de css" (snapshot) publicado por la w3c, y hablo de memoria al fecharlo en 2011, menciona las distintas "versiones" como niveles. Siendo el último que recoge -css level 3-
Tendremos que esperar al próximo que publique para ver cuál es la notación oficial.

Resumiendo:

Un sólo documento no hace corpus.
Porque un módulo alcance un nivel dado no todo el corpus asciende a su nivel.
Y no, hoy por hoy no existe CSS4 más que en la imaginación/deseo de algunos.

avatar del Editor del blog

Ramajero Argonauta, Enredique Amanuense de CSS.
#impoCSSible inside
Dicen que, en español, EsCss es el mejor blog de CSS. Posíblemente exageren.
@Kseso EsCss Don Kseso Kseso