All components
Scroll Area
miscOrigin UI component.
834px · 480px
Install
Same command in any shadcn project — React (Vite/CRA), Next.js, Remix, Astro, and more:
$
npx shadcn@latest add https://your-domain/r/scroll-area.jsonUsage
import { ScrollArea } from "@/registry/origin-ui/scroll-area";
const tags = Array.from({ length: 30 }, (_, i) => `v1.2.0-beta.${30 - i}`);
export default function Demo() {
return (
<ScrollArea className="h-72 w-64 rounded-md border border-border">
<div className="p-4">
<h4 className="mb-3 text-sm font-medium leading-none text-foreground">
Releases
</h4>
{tags.map((tag) => (
<div
key={tag}
className="border-b border-border py-2 text-sm text-muted-foreground last:border-0"
>
{tag}
</div>
))}
</div>
</ScrollArea>
);
}Component source
"use client";
import { ScrollArea as ScrollAreaPrimitive } from "radix-ui";
import type * as React from "react";
import { cn } from "@/lib/utils";
function ScrollArea({
className,
children,
...props
}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {
return (
<ScrollAreaPrimitive.Root
className={cn("relative", className)}
data-slot="scroll-area"
{...props}
>
<ScrollAreaPrimitive.Viewport
className="size-full rounded-[inherit]"
data-slot="scroll-area-viewport"
>
{children}
</ScrollAreaPrimitive.Viewport>
<ScrollBar />
<ScrollAreaPrimitive.Corner />
</ScrollAreaPrimitive.Root>
);
}
function ScrollBar({
className,
orientation = "vertical",
...props
}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {
return (
<ScrollAreaPrimitive.ScrollAreaScrollbar
className={cn(
"flex touch-none select-none",
orientation === "vertical" &&
"h-full w-2.5 border-l border-l-transparent p-px",
orientation === "horizontal" &&
"h-2.5 flex-col border-t border-t-transparent p-px",
className,
)}
data-slot="scroll-area-scrollbar"
orientation={orientation}
{...props}
>
<ScrollAreaPrimitive.ScrollAreaThumb
className="relative flex-1 rounded-full bg-border"
data-slot="scroll-area-thumb"
/>
</ScrollAreaPrimitive.ScrollAreaScrollbar>
);
}
export { ScrollArea, ScrollBar };Dependencies
radix-ui
Source: Origin UI