Scroll Snap Align

Set the snap alignment of an element.

Widely available

This feature is well established and works across many devices and browser versions.

Chrome
Edge
Firefox
Safari

Usage

Try scrolling through the image container to see how it behaves.

Center

Snap the element to the center of the scroll container.

<div class="o-h p-r pb-4">
<div class="d-f o-x-s g-6 pb-4 sst-x-m">
<div class="p-r fs-0 ssa-c">
<div class="h-40 w-80"></div>
</div>
<div class="p-r fs-0 ssa-c">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-c">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-c">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-c">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-c">
<div class="h-40 w-80"></div>
</div>
</div>
</div>

End

Snap the element to the end of the scroll container.

<div class="o-h p-r pb-4">
<div class="d-f o-x-s g-6 pb-4 sst-x-m">
<div class="p-r fs-0 ssa-e">
<div class="h-40 w-80"></div>
</div>
<div class="p-r fs-0 ssa-e">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-e">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-e">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-e">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-e">
<div class="h-40 w-80"></div>
</div>
</div>
</div>

Start

Snap the element to the start of the scroll container.

<div class="o-h p-r pb-4">
<div class="d-f o-x-s g-6 pb-4 sst-x-m">
<div class="p-r fs-0 ssa-s">
<div class="h-40 w-80"></div>
</div>
<div class="p-r fs-0 ssa-s">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-s">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-s">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-s">
<img class="h-40 w-80" src="/img/coast.jpg" />
</div>
<div class="p-r fs-0 ssa-s">
<div class="h-40 w-80"></div>
</div>
</div>
</div>

Responsiveness

Use breakpoint prefixes to target different screen sizes. Styles apply from the breakpoint & up.

Target viewport sizes with breakpoint prefixes.

sm:ssa-*
Small640px
md:ssa-*
Medium768px
lg:ssa-*
Large1024px
xxl:ssa-*
Extra Large1536px

Hover State

Apply styles conditionally on hover using the h: prefix.

Add the h: prefix to apply styles only when the user hovers over the element.

Syntax:h:ssa-*