registry:component

Scroll Area

v1.0.0ga

Custom scroll container primitive with styled scrollbars.

Registry Endpoint
Open JSON

https://registry.aavya.com/r/ui-scroll-area.json

npx shadcn@latest add https://registry.aavya.com/r/ui-scroll-area.json

Live Preview

Registry item 1

Registry item 2

Registry item 3

Registry item 4

Registry item 5

Registry item 6

Registry item 7

Registry item 8

Registry item 9

Registry item 10

Registry item 11

Registry item 12

Usage Snippet
import ScrollArea from '@/components/ui/scroll-area.tsx'

export default function Example() {
  return (
    <div className="p-6">
      <ScrollArea />
    </div>
  )
}
Source Preview
'use client'

import * as React from 'react'

import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'

import { cn } from '@/lib/utils'

function ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {
  return (
    <ScrollAreaPrimitive.Root data-slot='scroll-area' className={cn('relative', className)} {...props}>
      <ScrollAreaPrimitive.Viewport
        data-slot='scroll-area-viewport'
        className='focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1'
      >
        {children}
      </ScrollAreaPrimitive.Viewport>
      <ScrollBar />
      <ScrollAreaPrimitive.Corner />
    </ScrollAreaPrimitive.Root>
  )
}

function ScrollBar({
  className,
  orientation = 'vertical',
  ...props
}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {
  return (
    <ScrollAreaPrimitive.ScrollAreaScrollbar
      data-slot='scroll-area-scrollbar'
      orientation={orientation}
      className={cn(
        'flex touch-none p-px transition-colors select-none',
        orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent',
        orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent',
        className
      )}
      {...props}
    >
      <ScrollAreaPrimitive.ScrollAreaTh