Starting Point
v0.25.0
Start typing to search...
Go to Page
escClose

Scrollbar

The scrollbar restyles the native scrollbar on any scrollable element, adapting to dark mode and themes automatically.

<div
  class="scrollbar h-48 w-full max-w-sm overflow-y-auto rounded-lg border p-4 text-sm/6 text-muted-foreground"
>
  <p class="mb-4">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    consequat.
  </p>
  <p class="mb-4">
    Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
    eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
    sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
  <p>
    Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
    doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore
    veritatis et quasi architecto beatae vitae dicta sunt explicabo.
  </p>
</div>

Usage

Add the scrollbar class to an element that scrolls and its scrollbars are styled, vertical and horizontal alike. Add scrollbar-sm for a thinner thumb in tighter spaces.

ClassDescription
scrollbarAdd to a scrollable element to style its scrollbar
scrollbar-smAdd to scrollbar for a thinner variant
scrollbar-noneAdd to hide the scrollbar entirely; the element still scrolls
<div class="scrollbar h-48 overflow-y-auto">Long content</div>

Examples

Small

The small variant suits panels and popups where the default width feels heavy.

<div
  class="scrollbar scrollbar-sm h-48 w-full max-w-sm overflow-y-auto rounded-lg border p-4 text-sm/6 text-muted-foreground"
>
  <p class="mb-4">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    consequat.
  </p>
  <p class="mb-4">
    Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
    eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
    sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p>
  <p>
    Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium
    doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore
    veritatis et quasi architecto beatae vitae dicta sunt explicabo.
  </p>
</div>

CSS variables

The scrollbar reads its colors and metrics from component-local variables. Override them per instance with an arbitrary property, or for the whole app with a plain CSS rule.

VariableDefaultDescription
--scrollbar-tracktransparentTrack color
--scrollbar-thumbvar(--border)Thumb color
--scrollbar-width0.625rem (0.375rem with scrollbar-sm)Scrollbar thickness
--scrollbar-radius9999pxThumb corner radius
<div class="scrollbar [--scrollbar-thumb:var(--primary)] h-48 overflow-y-auto">
  Long content
</div>