11 · Scroll state
Scroll state
CSS reacciona al estado de snap/stuck del scroll
container-type: scroll-state
Habilita queries sobre el estado de scroll del contenedor: snapped, stuck, etc.
container-type: scroll-state
@container scroll-state(snapped: x)
Cada card es su propio contenedor. Al hacer snap, su opacidad sube a 1. Scrolleá abajo.
@container not scroll-state(snapped: x)
Sin JS
Antes necesitabas IntersectionObserver para saber qué card estaba activa. Ahora CSS lo sabe solo.
Carrusel scroll-snap — scrolleá horizontalmente
Cada card se atenúa cuando no está snapped. Scrolleá con drag, flechas o swipe.
01Intro
02container-type
03snapped: x
04opacity 1
05state query
06sin JS
/* cada item es su propio contenedor scroll-state */
.ss-item {
container-type: scroll-state;
scroll-snap-align: center;
}
/* cuando NO está snapped, se atenúa */
@container not scroll-state(snapped: x) {
.ss-item-inner {
opacity: .25;
}
}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.