QuicklyCSS v2 · Docs
Scroll
Versión v2.0 alpha.2
MÓDULO•UTILIDADES

Utilidades · Desplazamiento

Scroll (desplazamiento y anclaje)

Controla el desbordamiento, la animación del desplazamiento, los puntos de anclaje, los offsets y la propagación del scroll.

v2.0

Comportamiento

.scroll-smooth anima los saltos; .scroll-auto conserva el comportamiento nativo.

Anclaje preciso

El contenedor define el eje y cada elemento decide si se alinea al inicio, centro o final.

Propagación controlada

.overscroll-x-contain evita que el gesto continúe desplazando el contenedor padre.

Primero debe existir desbordamiento

Las utilidades de scroll producen un efecto visible cuando el contenido supera una dimensión limitada. Para un carrusel horizontal combina .overflow-x-auto con un contenido más ancho que su contenedor.

Código + resultado

Dos composiciones de scroll

Cada pestaña muestra una responsabilidad distinta. El HTML contiene todos los elementos que aparecen en el resultado aplicado.

HTML
<section>
  <p>Arrastra la fila y suelta en cualquier posición.</p>
  <div class="overflow-x-auto scroll-smooth snap-x scroll-p-16 overscroll-x-contain">
    <article class="snap-start scroll-m-16"><strong>01</strong><small>Inicio</small></article>
    <article class="snap-start scroll-m-16"><strong>02</strong><small>Inicio</small></article>
    <article class="snap-start scroll-m-16"><strong>03</strong><small>Inicio</small></article>
    <article class="snap-start scroll-m-16"><strong>04</strong><small>Inicio</small></article>
    <article class="snap-start scroll-m-16"><strong>05</strong><small>Inicio</small></article>
    <article class="snap-start scroll-m-16"><strong>06</strong><small>Inicio</small></article>
    <article class="snap-start scroll-m-16"><strong>07</strong><small>Inicio</small></article>
    <article class="snap-start scroll-m-16"><strong>08</strong><small>Inicio</small></article>
  </div>
  <footer>Siempre termina con una tarjeta alineada a la guía.</footer>
</section>
Resultado aplicadoMANDATORY · AJUSTE OBLIGATORIO

Arrastra la fila y suelta en cualquier posición.

01Inicio
02Inicio
03Inicio
04Inicio
05Inicio
06Inicio
07Inicio
08Inicio
Siempre termina con una tarjeta alineada a la guía.

.snap-x obliga a terminar en un punto válido, aunque sueltes lejos. .snap-start alinea el borde inicial de la tarjeta con la guía azul.

Mapa del sistema

Cuatro decisiones independientes

Compón únicamente las familias que el patrón necesita.

01.scroll-smooth

Cómo se mueve

Define si el desplazamiento programático es suave o inmediato.

02.snap-x

Dónde se detiene

Activa puntos de anclaje en el contenedor y define su eje.

03.scroll-p-16

Distancia del borde

Reserva un offset interno al llevar un punto de snap a posición.

04.overscroll-x-contain

Cómo se propaga

Evita encadenar el gesto horizontal con el contenedor padre.

Scroll snap

El contenedor define la regla; el hijo, la alineación

El snap necesita una clase en ambos niveles. Si falta una de las dos partes, no hay un punto completo de anclaje.

CONTENEDOR.snap-x.snap-y.snap-both

Obligatorio

El navegador debe terminar en un punto de snap válido.

CONTENEDOR.snap-x-proximity.snap-y-proximity.snap-both-proximity

Por proximidad

Se ajusta sólo cuando el recorrido termina cerca del punto.

ELEMENTO.snap-start.snap-center.snap-end

Alineación

Indica qué parte del elemento coincide con el área visible.

Offsets

Dos espacios con responsabilidades distintas

Ambas escalas usan píxeles. Cambia de pestaña para ver qué borde toma como referencia cada familia.

Borde del contenedor Espacio reservado Elemento destino
Espacio del contenedor .scroll-p-{valor} mueve hacia dentro la línea donde deben alinearse los elementos.
A
.scroll-p-00px
La alineación comienza a 0px del borde.
A
.scroll-p-88px
La alineación comienza a 8px del borde.
A
.scroll-p-1616px
La alineación comienza a 16px del borde.
A
.scroll-p-2424px
La alineación comienza a 24px del borde.
A
.scroll-p-3232px
La alineación comienza a 32px del borde.
A
.scroll-p-4848px
La alineación comienza a 48px del borde.
A
.scroll-p-6464px
La alineación comienza a 64px del borde.
A
.scroll-p-9696px
La alineación comienza a 96px del borde.
Variantes específicas.scroll-mx-16 aplica margen horizontal y .scroll-my-16 aplica margen vertical.

Referencia

Clases disponibles

Resumen de las familias reales cargadas por el framework.

ClasesPropiedadValoresQué hacen
.scroll-auto / .scroll-smoothscroll-behaviorauto / smoothControlan la animación del desplazamiento programático.
.snap-x / .snap-y / .snap-bothscroll-snap-typemandatoryDefinen eje y ajuste obligatorio.
.snap-*-proximityscroll-snap-typeproximityAjustan sólo cerca de un punto.
.snap-start / .snap-center / .snap-endscroll-snap-alignstart / center / endAlinean cada elemento dentro del contenedor.
.scroll-p-{valor}scroll-padding0, 8, 16, 24, 32, 48, 64, 96pxReserva espacio dentro del área visible.
.scroll-m-{valor}scroll-margin0, 8, 16, 24, 32, 48, 64, 96pxAñade separación alrededor del destino.
.overscroll-{auto|contain|none}overscroll-behavior3 valoresControla la propagación al contenedor padre.
.overscroll-x-* / .overscroll-y-*overscroll por ejeauto / contain / noneLimita la regla a un eje.

Recomendaciones

Buenas prácticas de scroll

01

Define el desbordamiento

Usa .overflow-x-auto o .overflow-y-auto en el contenedor antes de aplicar comportamiento o snap.

02

Respeta movimiento reducido

.scroll-smooth vuelve automáticamente a desplazamiento inmediato cuando el usuario activa prefers-reduced-motion.

03

Combina ambos niveles

Snap requiere una regla en el contenedor y una alineación en cada elemento destino.

04

Contén paneles anidados

Usa overscroll contain cuando el gesto no deba continuar desplazando la página exterior.