@supports · if() · random()
Tres utilidades chicas que no necesitaban página propia… hasta ahora. Cada tarjeta detecta en vivo si tu navegador las soporta.
Tres utilidades chicas que no necesitaban página propia… hasta ahora. Cada tarjeta detecta en vivo si tu navegador las soporta, sin una línea de JS.
@supports
Soporte amplioLa base de toda mejora progresiva del sitio: cada feature experimental está envuelta en una guarda que activa el fallback cuando no hay soporte.
/* mejora progresiva: cada feature experimental del sitio
vive dentro de una guarda como esta */
@supports (corner-shape: superellipse(2)) {
.panel { corner-shape: superellipse(.75); }
}
/* sin soporte -> queda el border-radius clasico */if()
Experimental · Chrome 137+Condicionales inline en cualquier propiedad. El tagline del showcase resuelve su ancho así:
.tagline {
max-width: 52ch; /* fallback declarativo */
}
@supports (width: if(media(width > 100px): 1px; else: 2px)) {
.tagline {
max-width: if(media(max-width: 480px): none; else: 52ch);
}
}random()
Experimental · Chrome 125+ con flagAzar nativo en cualquier propiedad: posición, tamaño, rotación o delay, distinto en cada carga. La chispa verde del árbol usa exactamente esto:
/* la chispa del arbol se rota y desplaza sola */
@supports (width: random(1px, 5px)) {
.spark {
rotate: random(-25deg, 25deg);
translate: random(-2px, 2px) random(-2px, 2px);
}
}Nota honesta sobre soporte
Muchas de estas APIs son recientes y aún no están en todos los navegadores (ver pill de cada sección). La gracia es que todas degradan bien: el carousel sigue scrolleando, el accordion abre/cierra, el textarea funciona — solo sin el "plus" animado.