1️⃣ No agrupes selectores en la misma línea, separa.
2️⃣ Aunque tengas canal alfa, usa RGB() y no RGBA(). Incluso ya puedes usar hexadecimal con canal alfa.
3️⃣ Si tienes propiedades con valores múltiples, separa en múltiples líneas.
4️⃣ Usa variables CSS. Se colocan al inicio, separados por una línea en blanco del resto de props. ¡Y tienen ámbitos locales!
5️⃣ Se pueden guardar todo tipo de datos: medidas, gradientes, colores, funciones css, keywords, etc...
6️⃣ Con `var()` puedes usarlas y añadir un fallback.
7️⃣ Cuidado al usar @Imports (son peticiones adicionales desde el cliente). Considera:
- Usar <link>
- Añadir resource hints para precargar
- Usar `@font-face` para tipografías
8️⃣ ¡Ojo, que ya tenemos capas en CSS!
9️⃣ Existen múltiples criterios de ordenación de propiedades: alfabéticos, por longitud, etc...
Mi preferida: Separar por tipo/categoría. Es fácil de mantener e intuitivo para predecir si existe algo.
1️⃣0️⃣ Aprende a dominar la especificidad CSS. Cuando usas `!important` frecuentemente es porque no conoces la especificidad.
Tómate un tiempo en aprender como funciona. Si no es suficiente para ti, investiga BEM, CSS Modules o Shadow DOM (WebComponents) y metodologías CSS.
1️⃣1️⃣ El nesting (anidar CSS) es una característica genial para mantener código CSS y tenerlo mucho más organizado.
Se basa en colocar selectores dentro de otros. Aún no está disponible en CSS vanilla (lo estará) pero se puede usar con:
- Sass
- PostCSS
- ParcelCSS
1️⃣2️⃣ Quizás el más importante de todos: Usa Stylelint (linter CSS). Al igual que utilizas ESLint para Javascript, Stylelint te revisa el código CSS y te aconseja como solucionar problemas, formas de corregir errores y mejorar tu estilo de código CSS.
✨Ruta de aprendizaje recomendada
✨No tienes que profundizar, pero si conocer bases
✨Especialízate cuando encuentres lo que te interesa
✨Es subjetiva (es mi opinión)
La explico en siguientes tweets👇
Si estás empezando, enfócate en aprender las bases:
📘En 2023... ¡La forma de escribir CSS está CAMBIANDO! ¡Y mucho!
✨Se avecinan muchos cambios (y muy potentes)
✨Mejor soporte en navegadores
✨Escribimos menos código para hacer más cosas
✨¡Nativo! Sin preprocesadores, librerías o similar
🧵¡Te las voy explicando!👇
➡ Combinador `:is()`
La clásica agrupación de selectores, ahora puedes hacerla con el combinador lógico `:is()`, que permite incluso hacer combinaciones de múltiples selectores
✨Más expresivo
✨Más fácil de leer
🧨Puedes usar `:where()` para ser menos específico
➡ Colores RGB
La nueva sintaxis de escribir colores RGB en CSS.
✨Valores porcentuales en vez de 0...255
✨Separado por espacios, sin necesidad de comas
✨Canal alfa separado por slash `/`
🧨Transparencia o no... ¡No hace falta `rgba()`!
✨Corrige al guardar en VSCode con CTRL+S
✨Reorganiza propiedades por género o categoría
✨Revisa y corrige erratas o valores incorrectos
✨Adapta a formato adecuado en líneas largas
✨Fusiona en propiedades de atajo si es posible
🔽
Para activarlo en un proyecto, simplemente escribimos en una terminal:
Mediante CSS podemos crear trayectos y animarlos de forma muy rápida y sencilla.
✨Trayectos con la función `ray()`
✨Trayectos SVG con la función `path()`
✨Trayectos desde un .svg con la función `url()`
¡Te explico como funcionan!
🔽
Con este sencillo código (no te olvides del tamaño de alto del contenedor), obtenemos este resultado. ¿Qué es lo que ha ocurrido?
✨Hemos creado 3 trayectos
✨Los hemos animado para ir de inicio a fin
✨La magia está en la función `ray()` aunque se pueden usar otras
Por ejemplo, podemos crear trayectos con la función `path()` creando paths SVG para animar elementos y moverlos a través del trayecto (rectas, curvas, etc...)
La etiqueta `<datalist>` nos permite ampliar y potenciar con datos otras etiquetas de formulario.
✨Por ejemplo, podemos convertir un <input> de texto en un híbrido con <select>, abierto a nuevas opciones, con filtro de autocompletado:
🧵
✨Utilizada junto a un <input> de fechas, podemos predefinir varias fechas como si fuera un <select>, y dar la opción de escoger "Otras..." para mostrar el selector de fechas tradicional.
✨ Utilizada junto a un <input> de colores, podemos predefinir colores específicos, de modo que el usuario pueda escoger el color concreto, o mostrar el color picker del sistema.
1️⃣ El primer paso es actualizar nuestro `/etc/apt/sources.list` (repositorio de paquetes). Donde pone bullseye (debian 11) debemos cambiarlo por bookworm: