Scroll Area

A scrollable region with a slim custom scrollbar that fades in on hover and while scrolling.

tsx
import { ScrollArea } from "@/registry/seam/ui/scroll-area"

export default function ScrollAreaDemo() {
  return (
    <ScrollArea className="h-40 w-64 rounded-md border p-4">
      <div className="space-y-2">
        {Array.from({ length: 20 }).map((_, i) => (
          <div key={i} className="text-sm">
            springs preset #{i + 1}
          </div>
        ))}
      </div>
    </ScrollArea>
  )
}
bunx --bun @seamui/cli@latest add scroll-area

Notes

  • The scrollbar fades in on data-[hovering] and data-[scrolling] and fades back out after a short delay.
  • Native scrolling is preserved (keyboard, wheel, touch) — the custom scrollbar is a visual layer over it, not a replacement.

Press feedback, reduced motion, and haptics follow the global policy — see Motion and Haptics.