Scroll Area
nswds-ui/scroll-areaFreeComponent
A custom scrollable region with styled scrollbars, built on the Base UI scroll-area primitive.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/digitalnsw/nswds-ui/main/apps/registry/public/r/scroll-area.jsonSource
1'use client'23import { ScrollArea as ScrollAreaPrimitive } from '@base-ui/react/scroll-area'45import { cn } from '@/lib/utils'67function ScrollArea({ className, children, ...props }: ScrollAreaPrimitive.Root.Props) {8 return (9 <ScrollAreaPrimitive.Root10 data-slot='scroll-area'11 className={cn('relative', className)}12 {...props}13 >14 <ScrollAreaPrimitive.Viewport15 data-slot='scroll-area-viewport'16 className='size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1'17 >18 {children}19 </ScrollAreaPrimitive.Viewport>20 <ScrollBar />21 <ScrollAreaPrimitive.Corner />22 </ScrollAreaPrimitive.Root>23 )24}2526function ScrollBar({27 className,28 orientation = 'vertical',29 ...props30}: ScrollAreaPrimitive.Scrollbar.Props) {31 return (32 <ScrollAreaPrimitive.Scrollbar33 data-slot='scroll-area-scrollbar'34 data-orientation={orientation}35 orientation={orientation}36 className={cn(37 'flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-s data-vertical:border-s-transparent',38 className,39 )}40 {...props}41 >42 <ScrollAreaPrimitive.Thumb43 data-slot='scroll-area-thumb'44 className='relative flex-1 rounded-full bg-border'45 />46 </ScrollAreaPrimitive.Scrollbar>47 )48}4950export { ScrollArea, ScrollBar }
What it pulls in
npm packages
Other registry items
Files it writes
More from @nswds/ui
All 46 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Aspect Ratioaspect-ratio | @nswds/ui | Components | Free | 2 deps · 2 files | |
| Badgebadge | @nswds/ui | Components | Free | 4 deps · 2 files | |
| Buttonbutton | @nswds/ui | Components | Free | 4 deps · 2 files | |
| Cardcard | @nswds/ui | Components | Free | 2 deps · 2 files | |
| Collapsiblecollapsible | @nswds/ui | Components | Free | 1 dep | |
| Drawerdrawer | @nswds/ui | Components | Free | 3 deps · 2 files | |
| Expandable Searchexpandable-search | @nswds/ui | Components | Free | 3 deps · 2 files | |
| Fieldfield | @nswds/ui | Components | Free | 4 deps · 2 files |
