Video · CSS is becoming a programming language — 6Pd6B0ZmT6s

Features de CSS moderno que ya no necesitan JavaScript

Todo lo que ves en esta página es Astro + CSS puro. Carousels con botones nativos, scroll-driven animations, anchor positioning, accordions animados, textareas que crecen solos, valores aleatorios, selectores lógicos, tipografía fluida, el HTML Invoker API, <select> customizable, scroll-state queries, sibling functions, attr() tipado, transiciones de entrada, container queries, corner-shape y oklch + color-mix — sin una línea de JS.

Stack: Astro 7 · HTML + CSSPaleta: amber / black0 KB de JS · a11y nativa
01Carousel nativo
Scroll snap + markers y botones en CSS
Carousel con scroll markers y scroll buttons
Ver demo
02Scroll-driven
animation-timeline: scroll() / view()
Barra de progreso y reveals al entrar en viewport
Ver demo
03Anchor
position-anchor + position-try fallbacks
Popovers que no se salen de la pantalla
Ver demo
04Accordion
details + ::details-content animado
details / summary con transición suave
Ver demo
05Forms
field-sizing: content
Textarea que crece y se achica solo
Ver demo
06Random
random() en CSS
Variación sin JS con random()
Ver demo
07Selectors
:has() · :is() · :where() · :not()
Selectores lógicos que reemplazan JS de estado
Ver demo
08Clamp
clamp() — tipografía y layout fluido
Valores responsive sin media queries
Ver demo
09Invoker
commandfor + invoketarget (HTML Invoker API)
Botones que controlan elementos sin JS
Ver demo
10Select customizable
::picker(select) + selectedcontent
Estilá el dropdown del <select> con pseudo-elementos
Ver demo
11Scroll state
container-type: scroll-state + @container scroll-state()
CSS reacciona al estado de snap/stuck del scroll
Ver demo
12Sibling functions
sibling-index() + sibling-count()
Posición y total de hermanos en CSS puro
Ver demo
13Typed attr()
attr() tipado — leer atributos como color/número
Un atributo HTML alimenta el CSS, sin clases dedicadas
Ver demo
14@starting-style
@starting-style — transiciones de entrada
Animá popovers y diálogos al aparecer, sin JS
Ver demo
15Container queries
container-type + @container
Elementos que responden al tamaño de su contenedor, no del viewport
Ver demo
16Corner shape
corner-shape + superellipse()
Esquinas scoop, bevel, notch y squircle nativos
Ver demo
17OKLCH + color-mix
oklch() + color-mix()
Color perceptualmente uniforme y mezclas en cualquier espacio
Ver demo
18Show more
:has() + checkbox para revelar lista
Ver más elementos sin slice() ni JS
Ver demo

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.