Design System/Atoms/Scroll Area

Scroll Area

Scrollable container with a styled custom scrollbar.

When To Use

  • Use Scroll Area when you need a reusable atoms pattern instead of rebuilding the structure from primitives.
  • Start from the simplest example that fits the task, then add decoration only when it clarifies meaning or hierarchy.
  • Review the examples below to understand the tradeoffs between density, emphasis, and behavior.

When Not To Use

  • Do not use Scroll Area just because it already exists in the catalog; choose the pattern that matches the task, not the most decorative option.
  • Do not keep layering options onto the pattern when a simpler component or section would be easier to understand and maintain.

Accessibility Notes

  • Keep headings, labels, and supporting text in the DOM before decorative chrome so the page reads well without styles or scripts.
  • Test the pattern with keyboard navigation and a screen reader before treating the visual layout as complete.
  • Use status, selection, and disabled states that remain understandable without color alone.

Key Props / API

Composition surface

Scroll Area keeps the native HTML or Radix API surface, then layers in design-system styling and composition defaults.

Example Code

import { ScrollArea } from "@hilum/ui"

<ScrollArea className="h-48 w-64 rounded-xl border border-ground-100 p-4">
  {items.map((item) => (
    <div key={item} className="py-2 text-sm border-b border-ground-100 last:border-0">
      {item}
    </div>
  ))}
</ScrollArea>

Scroll Area

Default

Custom scrollbar with consistent ground styling

Instant speech
Audiobook creation
Image & Video dubbing
ElevenAgents
Music generation
Dubbed video
Voice cloning
Sound effects
Voice isolator
Speech to text