src/docs/scroll-snap-align.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-align"; export const description = "Utilities for controlling the scroll snap alignment of an element.";
<ApiTable rows={[ ["snap-start", "scroll-snap-align: start;"], ["snap-end", "scroll-snap-align: end;"], ["snap-center", "scroll-snap-align: center;"], ["snap-align-none", "scroll-snap-align: none;"], ]} />
Use the snap-center utility to snap an element to its center when being scrolled inside a snap container:
</div>
<div className="shrink-0 snap-center">
</div>
<div className="shrink-0 snap-center">
</div>
<div className="shrink-0 snap-center">
</div>
<div className="shrink-0 snap-center">
</div>
<div className="shrink-0 snap-center">
</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-center] -->
<div class="snap-x ...">
<div class="snap-center ...">
</div>
<div class="snap-center ...">
</div>
<div class="snap-center ...">
</div>
<div class="snap-center ...">
</div>
<div class="snap-center ...">
</div>
<div class="snap-center ...">
</div>
</div>
Use the snap-start utility to snap an element to its start when being scrolled inside a snap container:
</div>
<div className="shrink-0 snap-start scroll-mx-6">
</div>
<div className="shrink-0 snap-start scroll-mx-6">
</div>
<div className="shrink-0 snap-start scroll-mx-6">
</div>
<div className="shrink-0 snap-start scroll-mx-6">
</div>
<div className="shrink-0 snap-start scroll-mx-6">
<div className="h-40 w-3 shrink-0 sm:-ml-[2px] sm:w-96"></div>
</div>
</div>
</div>
} </Example>
<!-- [!code classes:snap-x,snap-start] -->
<div class="snap-x ...">
<div class="snap-start ...">
</div>
<div class="snap-start ...">
</div>
<div class="snap-start ...">
</div>
<div class="snap-start ...">
</div>
<div class="snap-start ...">
</div>
<div class="snap-start ...">
</div>
</div>
Use the snap-end utility to snap an element to its end when being scrolled inside a snap container:
</div>
<div className="shrink-0 snap-end scroll-mx-6">
</div>
<div className="shrink-0 snap-end scroll-mx-6">
</div>
<div className="shrink-0 snap-end scroll-mx-6">
</div>
<div className="shrink-0 snap-end scroll-mx-6">
</div>
<div className="shrink-0 snap-end scroll-mx-6 pr-6">
</div>
</div>
</div>
} </Example>
<!-- [!code classes:snap-x,snap-end] -->
<div class="snap-x ...">
<div class="snap-end ...">
</div>
<div class="snap-end ...">
</div>
<div class="snap-end ...">
</div>
<div class="snap-end ...">
</div>
<div class="snap-end ...">
</div>
<div class="snap-end ...">
</div>
</div>