Scroll Area

Themed, cross-browser scroll containers.

Installation

npm install @aspyn-io/kit @aspyn-io/tokens
import { ScrollArea, ScrollBar } from "@aspyn-io/kit";

Vertical list

Styled, cross-browser scrollbars that match the theme.

Releases

v0.30.0
v0.29.0
v0.28.0
v0.27.0
v0.26.0
v0.25.0
v0.24.0
v0.23.0
v0.22.0
v0.21.0
v0.20.0
v0.19.0
v0.18.0
v0.17.0
v0.16.0
v0.15.0
v0.14.0
v0.13.0
v0.12.0
v0.11.0
v0.10.0
v0.9.0
v0.8.0
v0.7.0
v0.6.0
v0.5.0
v0.4.0
v0.3.0
v0.2.0
v0.1.0
<ScrollArea className="h-64 w-56 rounded-md border">
  <div className="p-4">
    {versions.map((v) => (
      <React.Fragment key={v}>
        <div className="text-sm">{v}</div>
        <Separator className="my-2" />
      </React.Fragment>
    ))}
  </div>
</ScrollArea>

Horizontal

Card 1
Card 2
Card 3
Card 4
Card 5
Card 6
Card 7
Card 8
Card 9
Card 10
Card 11
Card 12
<ScrollArea className="w-80 whitespace-nowrap rounded-md border">
  <div className="flex gap-3 p-4">…wide content…</div>
  <ScrollBar orientation="horizontal" />
</ScrollArea>

Notes

  • For scrollable dialog content, prefer DialogBody — it pins the header/footer and adds border separation automatically.