Las versiones de CSS 1 y 2 han sido construidas a partir de documentos unitarios. Se recogían las características que se necesitaban para una nueva versión y una vez todo estaba aprobado, la versión salía a la luz.
A partir de CSS 2.1 esto cambió y los desarrollos empezaron a hacerse de manera modular. Cada nueva funcionalidad se dividió en un grupo de trabajo independiente y a su vez la forma de aprobar las futuras mejoras cambió.
Se hace un borrador de las posibles propuestas en las que se quiere trabajar.
Se eligen las mejores propuestas del borrador y se empieza a trabajar en ellas.
Una vez el documento ha sido exhaustivamente revisado la W3C publica una recomendación con la experiencia de la revisión recogida.
Si todo ha ido correctamente se redacta un reporte maduro que despues de amplias revisiones técnicas y de implementación se envia al "W3C Advisory Committee" para su final aprobación.
Finalmente la especificación se aprueba por lo miembros y el director de la W3C. W3C ahora sí, recomendará el desarrollo de dicha especificación.
Para ver el estado de las especificaciones visita: https://www.w3.org/Style/CSS/current-work#translations
Un imprescindible a la hora de profundizar un poco en CSS. Con esta nueva funcionalidad podemos crear variables casi en cualquier navegador actual
Cuidado: var() no pueden se usado en media queries.
Ref: list.blocks.css, card.blocks.css
Además, permite crear fallbacks o incluso podemos acceder a ellas mediante javascript.
// Obtener la variable desde el estilo inline element.style.getPropertyValue("--my-var"); // Obtener variable desde cualquier lugar getComputedStyle(element).getPropertyValue("--my-var");
Teóricamente se ha creado para suplir los problemas del famoso Notch, teniendo 4 valores por defecto que te proporciona su tamaño:
A parte puede usarse como var() con la ventaja de poder usarse dentro de las media queries
Cuidado: Es una funcionalidad muy experimental (tanto que a niveles prácticos no la he podido probar a pesar de supuestamente ser soportada por Google Chrome)
Más info:
Si has usado SASS alguna vez seguro que conoces esta función. Ahora también podemos hacer operaciones sin necesidad de preprocesador.
Ref: list.blocks.css
Función utilizada para poder coger el valor de un atributo en el html y poner utilizarlo en el CSS (Actualmente solo funciona en la propiedad CSS "content").
Más info: https://developer.mozilla.org/en-US/docs/Web/CSS/attr
Ref: budget-icon.blocks.css
Permite aplicar estilos según la compatibilidad que el navegador usado tenga con específicas propiedades.
Más info: https://www.creativebloq.com/css3/how-use-supports-rule-your-css-11410545
Ref: gallery.blocks.css
Con esta regla podremos nombrar de manera única elementos dentro de un XML. Muy útil a la hora de modificar SVG dentro de un XHTML.
Más info: https://tympanus.net/codrops/css_reference/namespace/
Seguro que ya lo utilizas. Esta propiedad sirve para posicionar elementos de forma flexible. Cabe destacar que su compatibilidad actual con los navegadores es total. ¡¡Así que a usarlo!!
Más info: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Nuevo método de posicionamiento de elementos en un diseño de cuadricula. Con filas y columnas. En ocasiones en las que tengas que crear un tablero por ejemplo viene bastante útil.
Más info: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Sencillo. Agrega filtros a imágenes, fondos o bordes mediante CSS. Instagram ha llegado a tu navegador!
Más info: https://css-tricks.com/almanac/properties/f/filter/
Ref: gallery.blocks.css
Te permite cortar un elemento con diferentes formas geométricas o incluso mediante el patrón de un svg
Cuidado: en chrome hay que activar la opción "Experimental Web Platform Features" accediendo a chrome://flags/
Ref: gallery.blocks.css
Es otra técnica creada para recortar elementos basada en una mascara en escala de grises. Los tonos blancos mostrarán parte de la mascara y los negros del elemento recortado.
Esto tiene la ventaja de poder crear, por ejemplo, degradados.
Más info: https://css-tricks.com/masking-vs-clipping-use/
Valor que hace referencia al color heredado de componentes padre.
Más info: https://css-tricks.com/currentcolor/
Ref: budget-icon.blocks.css, card.blocks.css
Aplica estilos a un elemento por defecto. Como por ejemplo el estado por defecto de un checkbox.
Ref: checkbox.blocks.css
Agrupa elementos con padres comunes en un mismo selector.
Cuidado: en chrome hay que activar la opción "Experimental Web Platform Features" accediendo a chrome://flags/
Ref: gallery.blocks.css
Como su nombre indica aplica estilos a los elementos que no sean los que especifiquemos
Mediante formularios HTML5 podemos aplicar estilos automáticamente a partes del formulario que sean validas, invalidas o requeridas
Ref: input.blocks.css
Aplica estilos a un elemento solo de lectura con el atributo "readonly" / ni "readonly" ni "disabled".
Ref: input.blocks.css
Aplica estilos a un elemento cuando esta dentro de rango o fuera. Siempre teniendo en cuenta el atributo min y max.
Ref: input.blocks.css
Aplica estilos a un elemento que tenga la propiedad de HTML5 "required"
Ref: input.blocks.css
Aplica estilos a un elemento que coincida con los atributos especificados.
EJ: [b="xyz" i] coincide con <a b="xyz"> y <a b="XYZ">.
Ref: input.blocks.css
Aunque todos disfrutemos crear funciones en CSS. El último draft que hacia referencia a esta funcionalidad, llamada @apply, ha sido finalmente rechazado.
Incluso Google Chrome se habia puesto a trabajar en esta funcionalidad...
Más info:
Aunque todos queramos un anidado como el que nos proporciona SASS, lo cierto es que la tendencia oficial esta optando por incorporar alternativas como los seudo clases :matches y :any.
Tal vez en un futuro...esperemos :(
Más info: https://caniuse.com/#search=nesting
https://tabatkins.github.io/specs/css-nesting/
Sass es un lenguaje de hoja de estilos inicialmente diseñado por Hampton Catlin y desarrollado por Nathan Weizenbaum.Después de sus versiones iniciales, Nathan Weizenbaum y Chris Eppstein han continuado extendiendo Sass con SassScript, un lenguaje de script simple, usado en los ficheros Sass.
Tiene la ventaja de permitirnos crear variables, funciones, hacer cálculos y una de las funciones más utilizadas, la anidación (nesting).
Más info:
Es una herramienta que nos brinda la posibilidad de utilizar el CSS del futuro, hoy. Mediante javascript convierte el código CSS que escribamos, en un código entendible por la mayoría de navegadores.
Más info:
Sus principales funciones son:
Lo realmente potente de esta herramienta es que existen muchos plugins que expanden las posibilidades. Como la utilización de SASS o la inclusión de un sistema de Nesting.