01 · Carousel nativo

Carousel nativo

Carousel con scroll markers y scroll buttons

scroll-snap hoy · ::scroll-button/::scroll-marker experimental (Chrome 135+ flag)
← Índice

Arrastrá o usá las flechas/dots. En navegadores sin soporte ves el scroll horizontal igualmente usable.

css
.carousel {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scroll-marker-group: after;   /* dots nativos */
}

.carousel .card {
  scroll-snap-align: start;     /* cada card hace snap */
  width: 280px;
}

/* flechas nativas — el navegador las deshabilita solo */
.carousel::scroll-button(left)  { content: "‹"; }
.carousel::scroll-button(right) { content: "›"; }

/* dots nativos — :target-current marca el activo */
.carousel::scroll-marker { width: 10px; height: 10px; }
.carousel::scroll-marker:target-current {
  background: var(--amber-500);
  transform: scale(1.3);
}

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.