src/docs/scroll-snap-stop.mdx
import { ApiTable } from "@/components/api-table.tsx"; import { Example } from "@/components/example.tsx"; import { Figure } from "@/components/figure.tsx"; import { ResponsiveDesign } from "@/components/content.tsx";
export const title = "scroll-snap-stop"; export const description = "Utilities for controlling whether you can skip past possible snap positions.";
<ApiTable rows={[ ["snap-normal", "scroll-snap-stop: normal;"], ["snap-always", "scroll-snap-stop: always;"], ]} />
Use the snap-always utility together with the snap-mandatory utility to force a snap container to always stop on an element before the user can continue scrolling to the next item:
</div>
<div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
</div>
<div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
</div>
<div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
</div>
<div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
</div>
<div className="shrink-0 snap-center snap-always first:pl-8 last:pr-8">
</div>
<div className="shrink-0 snap-center">
<div className="w-4 shrink-0 sm:w-37"></div>
</div>
</div>
</div>
} </Example>
<!-- [!code classes:snap-x,snap-mandatory,snap-always] -->
<div class="snap-x snap-mandatory ...">
<div class="snap-center snap-always ...">
</div>
<div class="snap-center snap-always ...">
</div>
<div class="snap-center snap-always ...">
</div>
<div class="snap-center snap-always ...">
</div>
<div class="snap-center snap-always ...">
</div>
<div class="snap-center snap-always ...">
</div>
</div>
Use the snap-normal utility to allow a snap container to skip past possible scroll snap positions:
</div>
<div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
</div>
<div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
</div>
<div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
</div>
<div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
</div>
<div className="shrink-0 snap-center snap-normal first:pl-8 last:pr-8">
</div>
<div className="shrink-0 snap-center">
<div className="w-4 shrink-0 sm:w-37"></div>
</div>
</div>
</div>
} </Example>
<!-- [!code classes:snap-x,snap-normal] -->
<div class="snap-x ...">
<div class="snap-center snap-normal ...">
</div>
<div class="snap-center snap-normal ...">
</div>
<div class="snap-center snap-normal ...">
</div>
<div class="snap-center snap-normal ...">
</div>
<div class="snap-center snap-normal ...">
</div>
<div class="snap-center snap-normal ...">
</div>
</div>