{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "sf-scroll-area",
"title": "SF Scroll Area",
"description": "Scroll area with flat square scrollbar thumb",
"registryDependencies": [
"scroll-area"
],
"files": [
{
"path": "components/sf/sf-scroll-area.tsx",
"content": "\"use client\";\n\nimport { ScrollArea, ScrollBar } from \"@/components/ui/scroll-area\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Custom scroll container — FRAME layer overflow primitive.\n *\n * Radix ScrollArea with SF-styled thumb: sharp corners and\n * foreground/30 color replacing the default rounded thumb.\n * Use when content overflows a constrained height and native\n * scrollbar styling conflicts with the SF aesthetic.\n *\n * @param className - Merged via cn() after base classes\n *\n * @example\n * \n * {longContent}
\n * \n */\nfunction SFScrollArea({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFScrollArea — scrollbar track with sharp corners, composable with SFScrollArea. */\nfunction SFScrollBar({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nexport { SFScrollArea, SFScrollBar };\n",
"type": "registry:ui"
}
],
"meta": {
"layer": "frame",
"pattern": "A"
},
"type": "registry:ui"
}