Slide 1 — Scroll snap
The track is a real scroll container, so swipe and trackpad work with no code.
Every building block used across the template. Copy the markup straight out of this page.
Variants
Sizes
With icons and state
Status pills — always paired with a label, never colour alone
Badges
Avatars
Directory sync runs hourly
Changes made in Okta appear here within the hour, or immediately if you sync manually.
All admins have MFA enrolled
Policy has held at 100% for 94 consecutive days.
14 seats left on this plan
Adding beyond 1,200 seats bills at the overage rate.
6 admins are overdue recertification
Uncertified grants are revoked automatically when the review closes.
Toasts — click to fire
Total users
8,942
+4.9% vs. last month
With sparkline
8,942
A header row, body, and footer separated by hairlines. This is the shape most pages in the template use.
Skeleton
Native dialog
Disclosure menu
hidden class, so keep other display utilities off the panel element.border-primary becomes the initial tab.Built on native <details>, so it works with no JavaScript at all.
The chevron rotates through the group-open variant.
Add the name attribute to make a group exclusive.
CSS scroll-snap does the sliding; the JS only adds controls
<div data-carousel data-autoplay="6000">
<div data-carousel-track class="no-scrollbar flex snap-x snap-mandatory gap-4 overflow-x-auto">
<article data-carousel-slide class="shrink-0 snap-center">…</article>
</div>
<button data-carousel-prev>…</button>
<button data-carousel-next>…</button>
<div data-carousel-dots></div>
</div>
Click a thumbnail — a native <dialog> handles focus trapping and Escape
Arrow keys page through the set; the full library lives on Brand Assets.
Everyone you have invited has accepted. Invite someone new to get started.
Invite a userCheck the spelling, or clear the active filters — three are applied.