{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "design-system", "type": "registry:block", "dependencies": [ "lucide-react", "sonner" ], "registryDependencies": [ "accordion", "avatar", "badge", "button", "card", "checkbox", "input", "label", "progress", "radio-group", "select", "separator", "skeleton", "slider", "sonner", "switch", "tabs", "textarea" ], "files": [ { "path": "registry/new-york/design-system/components/footer.tsx", "content": "export function Footer() {\n return (\n \n );\n}\n", "type": "registry:component" }, { "path": "registry/new-york/design-system/components/header.tsx", "content": "import { Button } from \"@/components/ui/button\";\nimport { ThemeToggle } from \"@/components/theme-toggle\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui/avatar\";\nimport { \n Bell, \n Settings, \n Moon\n} from \"lucide-react\";\n\nexport function Header() {\n return (\n
\n
\n
\n \n Design System\n \n \n
\n
\n \n \n \n \n \n JK\n \n
\n
\n
\n );\n}", "type": "registry:component" }, { "path": "registry/new-york/design-system/components/palettes.tsx", "content": "\"use client\"\n\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\n\nexport function TailwindColorPalettes() {\n // Helper to generate color scale from 50-950\n const generateColorScale = (colorName: string) => {\n const scales = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\n return scales.map(scale => ({\n scale,\n var: `--${colorName}-${scale}`,\n style: { backgroundColor: `var(--${colorName}-${scale})` }\n }));\n };\n\n // Neutral/Gray color families\n const neutralColors = {\n slate: generateColorScale('slate'),\n gray: generateColorScale('gray'),\n zinc: generateColorScale('zinc'),\n neutral: generateColorScale('neutral'),\n stone: generateColorScale('stone'),\n };\n\n // Color families\n const colorFamilies = {\n red: generateColorScale('red'),\n orange: generateColorScale('orange'),\n amber: generateColorScale('amber'),\n yellow: generateColorScale('yellow'),\n green: generateColorScale('green'),\n emerald: generateColorScale('emerald'),\n teal: generateColorScale('teal'),\n cyan: generateColorScale('cyan'),\n sky: generateColorScale('sky'),\n blue: generateColorScale('blue'),\n indigo: generateColorScale('indigo'),\n violet: generateColorScale('violet'),\n purple: generateColorScale('purple'),\n fuchsia: generateColorScale('fuchsia'),\n pink: generateColorScale('pink'),\n rose: generateColorScale('rose'),\n };\n\n const ColorScaleRow = ({ name, colors }: { name: string; colors: Array<{ scale: number; var: string; style: any }> }) => (\n
\n
\n {name}\n
\n {colors.map((color) => (\n \n \n
\n \n {color.scale}\n \n
\n
\n ))}\n
\n
\n \n );\n\n return (\n
\n
\n

Tailwind Color Palettes

\n

Complete default Tailwind CSS color system from 50-950

\n
\n\n \n \n Neutrals & Grays\n Colors\n \n\n {/* Neutrals Tab */}\n \n \n \n Neutral Color Scales\n \n Five neutral color palettes optimized for different use cases. Each scale ranges from 50 (lightest) to 950 (darkest).\n \n \n \n {Object.entries(neutralColors).map(([name, colors]) => (\n \n ))}\n \n
\n

Usage Guide

\n
    \n
  • Slate: Cool gray with subtle blue undertones
  • \n
  • Gray: True gray, perfectly neutral
  • \n
  • Zinc: Modern gray with slight cool tone
  • \n
  • Neutral: Warm gray with balanced warmth
  • \n
  • Stone: Warm gray with earthy undertones
  • \n
\n
\n
\n
\n
\n\n {/* Colors Tab */}\n \n \n \n Full Color Spectrum\n \n Complete Tailwind color palette with all hues. Perfect for UI elements, data visualization, and brand colors.\n \n \n \n {Object.entries(colorFamilies).map(([name, colors]) => (\n \n ))}\n \n
\n
\n

Color Temperature

\n
    \n
  • Warm: Red, Orange, Amber, Yellow
  • \n
  • Cool: Sky, Blue, Indigo, Violet
  • \n
  • Balanced: Green, Teal, Cyan, Purple
  • \n
\n
\n \n
\n

Common Uses

\n
    \n
  • Success: Green, Emerald
  • \n
  • Warning: Amber, Yellow, Orange
  • \n
  • Error: Red, Rose
  • \n
  • Info: Blue, Sky, Cyan
  • \n
\n
\n
\n
\n
\n
\n
\n\n {/* Quick Reference Card */}\n \n \n Scale Reference\n Understanding the color scale system\n \n \n
\n
\n
50-200
\n

\n Very light tints for backgrounds and subtle accents\n

\n
\n
\n
300-400
\n

\n Light colors for borders, disabled states, and secondary elements\n

\n
\n
\n
500-600
\n

\n Base colors for primary UI elements, buttons, and links\n

\n
\n
\n
700-950
\n

\n Dark shades for text, headings, and high-contrast elements\n

\n
\n
\n
\n
\n
\n );\n}\n", "type": "registry:component" }, { "path": "registry/new-york/design-system/components/tokens.tsx", "content": "\"use client\"\n\nimport { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui/card\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\n\nexport function DesignTokens() {\n const colorTokens = [\n { name: \"Background\", var: \"--background\", class: \"bg-background\" },\n { name: \"Foreground\", var: \"--foreground\", class: \"bg-foreground\" },\n { name: \"Primary\", var: \"--primary\", class: \"bg-primary\" },\n { name: \"Primary Foreground\", var: \"--primary-foreground\", class: \"bg-primary-foreground\" },\n { name: \"Secondary\", var: \"--secondary\", class: \"bg-secondary\" },\n { name: \"Secondary Foreground\", var: \"--secondary-foreground\", class: \"bg-secondary-foreground\" },\n { name: \"Muted\", var: \"--muted\", class: \"bg-muted\" },\n { name: \"Muted Foreground\", var: \"--muted-foreground\", class: \"bg-muted-foreground\" },\n { name: \"Accent\", var: \"--accent\", class: \"bg-accent\" },\n { name: \"Accent Foreground\", var: \"--accent-foreground\", class: \"bg-accent-foreground\" },\n { name: \"Destructive\", var: \"--destructive\", class: \"bg-destructive\" },\n { name: \"Destructive Foreground\", var: \"--destructive-foreground\", class: \"bg-destructive-foreground\" },\n ];\n\n const utilityColors = [\n { name: \"Success\", var: \"--success\", class: \"bg-[var(--success)]\" },\n { name: \"Warning\", var: \"--warning\", class: \"bg-[var(--warning)]\" },\n { name: \"Info\", var: \"--info\", class: \"bg-[var(--info)]\" },\n ];\n\n const chartColors = [\n { name: \"Chart 1\", var: \"--chart-1\", class: \"bg-chart-1\" },\n { name: \"Chart 2\", var: \"--chart-2\", class: \"bg-chart-2\" },\n { name: \"Chart 3\", var: \"--chart-3\", class: \"bg-chart-3\" },\n { name: \"Chart 4\", var: \"--chart-4\", class: \"bg-chart-4\" },\n { name: \"Chart 5\", var: \"--chart-5\", class: \"bg-chart-5\" },\n ];\n\n const typographyScale = [\n { name: \"xs\", size: \"0.75rem\", var: \"--text-xs\", class: \"text-xs\" },\n { name: \"sm\", size: \"0.875rem\", var: \"--text-sm\", class: \"text-sm\" },\n { name: \"base\", size: \"1rem\", var: \"--text-base\", class: \"text-base\" },\n { name: \"lg\", size: \"1.125rem\", var: \"--text-lg\", class: \"text-lg\" },\n { name: \"xl\", size: \"1.25rem\", var: \"--text-xl\", class: \"text-xl\" },\n { name: \"2xl\", size: \"1.5rem\", var: \"--text-2xl\", class: \"text-2xl\" },\n { name: \"3xl\", size: \"1.875rem\", var: \"--text-3xl\", class: \"text-3xl\" },\n { name: \"4xl\", size: \"2.25rem\", var: \"--text-4xl\", class: \"text-4xl\" },\n { name: \"5xl\", size: \"3rem\", var: \"--text-5xl\", class: \"text-5xl\" },\n { name: \"6xl\", size: \"3.75rem\", var: \"--text-6xl\", class: \"text-6xl\" },\n ];\n\n const fontWeights = [\n { name: \"Light\", weight: \"300\", var: \"--font-weight-light\", class: \"font-light\" },\n { name: \"Normal\", weight: \"400\", var: \"--font-weight-normal\", class: \"font-normal\" },\n { name: \"Medium\", weight: \"500\", var: \"--font-weight-medium\", class: \"font-medium\" },\n { name: \"Semibold\", weight: \"600\", var: \"--font-weight-semibold\", class: \"font-semibold\" },\n { name: \"Bold\", weight: \"700\", var: \"--font-weight-bold\", class: \"font-bold\" },\n ];\n\n const spacingScale = [\n { name: \"0\", value: \"0\", var: \"--spacing-0\" },\n { name: \"1\", value: \"0.25rem\", var: \"--spacing-1\" },\n { name: \"2\", value: \"0.5rem\", var: \"--spacing-2\" },\n { name: \"3\", value: \"0.75rem\", var: \"--spacing-3\" },\n { name: \"4\", value: \"1rem\", var: \"--spacing-4\" },\n { name: \"5\", value: \"1.25rem\", var: \"--spacing-5\" },\n { name: \"6\", value: \"1.5rem\", var: \"--spacing-6\" },\n { name: \"8\", value: \"2rem\", var: \"--spacing-8\" },\n { name: \"10\", value: \"2.5rem\", var: \"--spacing-10\" },\n { name: \"12\", value: \"3rem\", var: \"--spacing-12\" },\n { name: \"16\", value: \"4rem\", var: \"--spacing-16\" },\n { name: \"20\", value: \"5rem\", var: \"--spacing-20\" },\n { name: \"24\", value: \"6rem\", var: \"--spacing-24\" },\n ];\n\n const radiusScale = [\n { name: \"xs\", value: \"0.25rem\", var: \"--radius-xs\" },\n { name: \"sm\", value: \"0.375rem\", var: \"--radius-sm\" },\n { name: \"md\", value: \"0.5rem\", var: \"--radius-md\" },\n { name: \"lg\", value: \"0.625rem\", var: \"--radius-lg\" },\n { name: \"xl\", value: \"0.75rem\", var: \"--radius-xl\" },\n { name: \"2xl\", value: \"1rem\", var: \"--radius-2xl\" },\n { name: \"3xl\", value: \"1.5rem\", var: \"--radius-3xl\" },\n { name: \"full\", value: \"9999px\", var: \"--radius-full\" },\n ];\n\n return (\n
\n
\n

Design Tokens

\n

Complete color palette, typography, and spacing system

\n
\n\n {/* Color System */}\n \n \n Color System\n Semantic color tokens for consistent theming\n \n \n
\n

Base & Semantic Colors

\n
\n {colorTokens.map((token) => (\n
\n
\n
\n

{token.name}

\n

{token.var}

\n
\n
\n ))}\n
\n
\n\n \n\n
\n

Utility Colors

\n
\n {utilityColors.map((token) => (\n
\n
\n
\n

{token.name}

\n

{token.var}

\n
\n
\n ))}\n
\n
\n\n \n\n
\n

Chart Colors

\n
\n {chartColors.map((token) => (\n
\n
\n
\n

{token.name}

\n

{token.var}

\n
\n
\n ))}\n
\n
\n
\n
\n\n {/* Typography */}\n \n \n Typography\n Font sizes, weights, and spacing for text hierarchy\n \n \n
\n

Type Scale

\n
\n {typographyScale.map((type) => (\n
\n
\n \n {type.name}\n \n The quick brown fox jumps over the lazy dog\n
\n {type.size}\n
\n ))}\n
\n
\n\n \n\n
\n

Font Weights

\n
\n {fontWeights.map((weight) => (\n
\n
\n \n {weight.name}\n \n \n The quick brown fox jumps over the lazy dog\n \n
\n {weight.weight}\n
\n ))}\n
\n
\n
\n
\n\n {/* Spacing & Layout */}\n
\n \n \n Spacing Scale\n Consistent spacing tokens for layout\n \n \n
\n {spacingScale.map((space) => (\n
\n \n {space.name}\n \n
\n \n {space.value}\n \n
\n ))}\n
\n
\n
\n\n \n \n Border Radius\n Rounded corner variations\n \n \n
\n {radiusScale.map((radius) => (\n
\n \n {radius.name}\n \n
\n \n {radius.value}\n \n
\n ))}\n
\n
\n
\n
\n\n {/* Shadows */}\n \n \n Elevation & Shadows\n Shadow tokens for depth and hierarchy\n \n \n
\n {['xs', 'sm', 'md', 'lg', 'xl', '2xl'].map((size) => (\n
\n
\n {size}\n
\n

\n --shadow-{size}\n

\n
\n ))}\n
\n
\n
\n
\n );\n}", "type": "registry:component" }, { "path": "registry/new-york/design-system/design-system.tsx", "content": "\"use client\"\n\nimport { useState } from \"react\";\nimport { Header } from \"./components/header\"\nimport { Footer } from \"./components/footer\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { \n Bell, \n Search, \n Plus, \n Trash2, \n Edit, \n Settings, \n User, \n Download,\n ChevronRight,\n Star,\n Heart,\n Share2,\n MoreVertical\n} from \"lucide-react\";\nimport { DesignTokens } from \"./components/tokens\";\nimport { TailwindColorPalettes } from \"./components/palettes\";\n\nexport function DesignSystem() {\n const [switchChecked, setSwitchChecked] = useState(false);\n const [checkboxChecked, setCheckboxChecked] = useState(false);\n const [progress, setProgress] = useState(33);\n const [sliderValue, setSliderValue] = useState([50]);\n\n return (\n
\n {/* */}\n\n {/* Header */}\n
\n\n {/* Main Content */}\n
\n
\n\n {/* Hero Section */}\n
\n Component Library\n

Modern UI Primitives

\n

\n A comprehensive collection of accessible, customizable, and production-ready React components built with Radix UI and Tailwind CSS.\n

\n
\n\n \n {/* Design Tokens Section */}\n \n \n {/* Tailwind Color Palettes Section */}\n \n\n
\n
\n {/* Footer */}\n
\n );\n}", "type": "registry:component" }, { "path": "registry/new-york/design-system/primitives/components/design-tokens.tsx", "content": "import { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui\";\nimport { Badge } from \"@/components/ui\";\nimport { Separator } from \"@/components/ui\";\n\nexport function DesignTokens() {\n const colorTokens = [\n { name: \"Background\", var: \"--background\", class: \"bg-background\" },\n { name: \"Foreground\", var: \"--foreground\", class: \"bg-foreground\" },\n { name: \"Primary\", var: \"--primary\", class: \"bg-primary\" },\n { name: \"Primary Foreground\", var: \"--primary-foreground\", class: \"bg-primary-foreground\" },\n { name: \"Secondary\", var: \"--secondary\", class: \"bg-secondary\" },\n { name: \"Secondary Foreground\", var: \"--secondary-foreground\", class: \"bg-secondary-foreground\" },\n { name: \"Muted\", var: \"--muted\", class: \"bg-muted\" },\n { name: \"Muted Foreground\", var: \"--muted-foreground\", class: \"bg-muted-foreground\" },\n { name: \"Accent\", var: \"--accent\", class: \"bg-accent\" },\n { name: \"Accent Foreground\", var: \"--accent-foreground\", class: \"bg-accent-foreground\" },\n { name: \"Destructive\", var: \"--destructive\", class: \"bg-destructive\" },\n { name: \"Destructive Foreground\", var: \"--destructive-foreground\", class: \"bg-destructive-foreground\" },\n ];\n\n const utilityColors = [\n { name: \"Success\", var: \"--success\", class: \"bg-[var(--success)]\" },\n { name: \"Warning\", var: \"--warning\", class: \"bg-[var(--warning)]\" },\n { name: \"Info\", var: \"--info\", class: \"bg-[var(--info)]\" },\n ];\n\n const chartColors = [\n { name: \"Chart 1\", var: \"--chart-1\", class: \"bg-chart-1\" },\n { name: \"Chart 2\", var: \"--chart-2\", class: \"bg-chart-2\" },\n { name: \"Chart 3\", var: \"--chart-3\", class: \"bg-chart-3\" },\n { name: \"Chart 4\", var: \"--chart-4\", class: \"bg-chart-4\" },\n { name: \"Chart 5\", var: \"--chart-5\", class: \"bg-chart-5\" },\n ];\n\n const typographyScale = [\n { name: \"xs\", size: \"0.75rem\", var: \"--text-xs\", class: \"text-xs\" },\n { name: \"sm\", size: \"0.875rem\", var: \"--text-sm\", class: \"text-sm\" },\n { name: \"base\", size: \"1rem\", var: \"--text-base\", class: \"text-base\" },\n { name: \"lg\", size: \"1.125rem\", var: \"--text-lg\", class: \"text-lg\" },\n { name: \"xl\", size: \"1.25rem\", var: \"--text-xl\", class: \"text-xl\" },\n { name: \"2xl\", size: \"1.5rem\", var: \"--text-2xl\", class: \"text-2xl\" },\n { name: \"3xl\", size: \"1.875rem\", var: \"--text-3xl\", class: \"text-3xl\" },\n { name: \"4xl\", size: \"2.25rem\", var: \"--text-4xl\", class: \"text-4xl\" },\n { name: \"5xl\", size: \"3rem\", var: \"--text-5xl\", class: \"text-5xl\" },\n { name: \"6xl\", size: \"3.75rem\", var: \"--text-6xl\", class: \"text-6xl\" },\n ];\n\n const fontWeights = [\n { name: \"Light\", weight: \"300\", var: \"--font-weight-light\", class: \"font-light\" },\n { name: \"Normal\", weight: \"400\", var: \"--font-weight-normal\", class: \"font-normal\" },\n { name: \"Medium\", weight: \"500\", var: \"--font-weight-medium\", class: \"font-medium\" },\n { name: \"Semibold\", weight: \"600\", var: \"--font-weight-semibold\", class: \"font-semibold\" },\n { name: \"Bold\", weight: \"700\", var: \"--font-weight-bold\", class: \"font-bold\" },\n ];\n\n const spacingScale = [\n { name: \"0\", value: \"0\", var: \"--spacing-0\" },\n { name: \"1\", value: \"0.25rem\", var: \"--spacing-1\" },\n { name: \"2\", value: \"0.5rem\", var: \"--spacing-2\" },\n { name: \"3\", value: \"0.75rem\", var: \"--spacing-3\" },\n { name: \"4\", value: \"1rem\", var: \"--spacing-4\" },\n { name: \"5\", value: \"1.25rem\", var: \"--spacing-5\" },\n { name: \"6\", value: \"1.5rem\", var: \"--spacing-6\" },\n { name: \"8\", value: \"2rem\", var: \"--spacing-8\" },\n { name: \"10\", value: \"2.5rem\", var: \"--spacing-10\" },\n { name: \"12\", value: \"3rem\", var: \"--spacing-12\" },\n { name: \"16\", value: \"4rem\", var: \"--spacing-16\" },\n { name: \"20\", value: \"5rem\", var: \"--spacing-20\" },\n { name: \"24\", value: \"6rem\", var: \"--spacing-24\" },\n ];\n\n const radiusScale = [\n { name: \"xs\", value: \"0.25rem\", var: \"--radius-xs\" },\n { name: \"sm\", value: \"0.375rem\", var: \"--radius-sm\" },\n { name: \"md\", value: \"0.5rem\", var: \"--radius-md\" },\n { name: \"lg\", value: \"0.625rem\", var: \"--radius-lg\" },\n { name: \"xl\", value: \"0.75rem\", var: \"--radius-xl\" },\n { name: \"2xl\", value: \"1rem\", var: \"--radius-2xl\" },\n { name: \"3xl\", value: \"1.5rem\", var: \"--radius-3xl\" },\n { name: \"full\", value: \"9999px\", var: \"--radius-full\" },\n ];\n\n return (\n
\n
\n

Design Tokens

\n

Complete color palette, typography, and spacing system

\n
\n\n {/* Color System */}\n \n \n Color System\n Semantic color tokens for consistent theming\n \n \n
\n

Base & Semantic Colors

\n
\n {colorTokens.map((token) => (\n
\n
\n
\n

{token.name}

\n

{token.var}

\n
\n
\n ))}\n
\n
\n\n \n\n
\n

Utility Colors

\n
\n {utilityColors.map((token) => (\n
\n
\n
\n

{token.name}

\n

{token.var}

\n
\n
\n ))}\n
\n
\n\n \n\n
\n

Chart Colors

\n
\n {chartColors.map((token) => (\n
\n
\n
\n

{token.name}

\n

{token.var}

\n
\n
\n ))}\n
\n
\n
\n
\n\n {/* Typography */}\n \n \n Typography\n Font sizes, weights, and spacing for text hierarchy\n \n \n
\n

Type Scale

\n
\n {typographyScale.map((type) => (\n
\n
\n \n {type.name}\n \n The quick brown fox jumps over the lazy dog\n
\n {type.size}\n
\n ))}\n
\n
\n\n \n\n
\n

Font Weights

\n
\n {fontWeights.map((weight) => (\n
\n
\n \n {weight.name}\n \n \n The quick brown fox jumps over the lazy dog\n \n
\n {weight.weight}\n
\n ))}\n
\n
\n
\n
\n\n {/* Spacing & Layout */}\n
\n \n \n Spacing Scale\n Consistent spacing tokens for layout\n \n \n
\n {spacingScale.map((space) => (\n
\n \n {space.name}\n \n
\n \n {space.value}\n \n
\n ))}\n
\n
\n
\n\n \n \n Border Radius\n Rounded corner variations\n \n \n
\n {radiusScale.map((radius) => (\n
\n \n {radius.name}\n \n
\n \n {radius.value}\n \n
\n ))}\n
\n
\n
\n
\n\n {/* Shadows */}\n \n \n Elevation & Shadows\n Shadow tokens for depth and hierarchy\n \n \n
\n {['xs', 'sm', 'md', 'lg', 'xl', '2xl'].map((size) => (\n
\n
\n {size}\n
\n

\n --shadow-{size}\n

\n
\n ))}\n
\n
\n
\n
\n );\n}\n", "type": "registry:component" }, { "path": "registry/new-york/design-system/primitives/components/tailwind-color-palettes.tsx", "content": "import { Card, CardContent, CardDescription, CardHeader, CardTitle } from \"@/components/ui\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui\";\n\nexport function TailwindColorPalettes() {\n // Helper to generate color scale from 50-950\n const generateColorScale = (colorName: string) => {\n const scales = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];\n return scales.map(scale => ({\n scale,\n var: `--${colorName}-${scale}`,\n style: { backgroundColor: `var(--${colorName}-${scale})` }\n }));\n };\n\n // Neutral/Gray color families\n const neutralColors = {\n slate: generateColorScale('slate'),\n gray: generateColorScale('gray'),\n zinc: generateColorScale('zinc'),\n neutral: generateColorScale('neutral'),\n stone: generateColorScale('stone'),\n };\n\n // Color families\n const colorFamilies = {\n red: generateColorScale('red'),\n orange: generateColorScale('orange'),\n amber: generateColorScale('amber'),\n yellow: generateColorScale('yellow'),\n green: generateColorScale('green'),\n emerald: generateColorScale('emerald'),\n teal: generateColorScale('teal'),\n cyan: generateColorScale('cyan'),\n sky: generateColorScale('sky'),\n blue: generateColorScale('blue'),\n indigo: generateColorScale('indigo'),\n violet: generateColorScale('violet'),\n purple: generateColorScale('purple'),\n fuchsia: generateColorScale('fuchsia'),\n pink: generateColorScale('pink'),\n rose: generateColorScale('rose'),\n };\n\n const ColorScaleRow = ({ name, colors }: { name: string; colors: Array<{ scale: number; var: string; style: React.CSSProperties }> }) => (\n
\n
\n {name}\n
\n {colors.map((color) => (\n \n \n
\n \n {color.scale}\n \n
\n
\n ))}\n
\n
\n \n );\n\n return (\n
\n
\n

Tailwind Color Palettes

\n

Complete default Tailwind CSS color system from 50-950

\n
\n\n \n \n Neutrals & Grays\n Colors\n \n\n {/* Neutrals Tab */}\n \n \n \n Neutral Color Scales\n \n Five neutral color palettes optimized for different use cases. Each scale ranges from 50 (lightest) to 950 (darkest).\n \n \n \n {Object.entries(neutralColors).map(([name, colors]) => (\n \n ))}\n \n
\n

Usage Guide

\n
    \n
  • Slate: Cool gray with subtle blue undertones
  • \n
  • Gray: True gray, perfectly neutral
  • \n
  • Zinc: Modern gray with slight cool tone
  • \n
  • Neutral: Warm gray with balanced warmth
  • \n
  • Stone: Warm gray with earthy undertones
  • \n
\n
\n
\n
\n
\n\n {/* Colors Tab */}\n \n \n \n Full Color Spectrum\n \n Complete Tailwind color palette with all hues. Perfect for UI elements, data visualization, and brand colors.\n \n \n \n {Object.entries(colorFamilies).map(([name, colors]) => (\n \n ))}\n \n
\n
\n

Color Temperature

\n
    \n
  • Warm: Red, Orange, Amber, Yellow
  • \n
  • Cool: Sky, Blue, Indigo, Violet
  • \n
  • Balanced: Green, Teal, Cyan, Purple
  • \n
\n
\n \n
\n

Common Uses

\n
    \n
  • Success: Green, Emerald
  • \n
  • Warning: Amber, Yellow, Orange
  • \n
  • Error: Red, Rose
  • \n
  • Info: Blue, Sky, Cyan
  • \n
\n
\n
\n
\n
\n
\n
\n\n {/* Quick Reference Card */}\n \n \n Scale Reference\n Understanding the color scale system\n \n \n
\n
\n
50-200
\n

\n Very light tints for backgrounds and subtle accents\n

\n
\n
\n
300-400
\n

\n Light colors for borders, disabled states, and secondary elements\n

\n
\n
\n
500-600
\n

\n Base colors for primary UI elements, buttons, and links\n

\n
\n
\n
700-950
\n

\n Dark shades for text, headings, and high-contrast elements\n

\n
\n
\n
\n
\n
\n );\n}\n", "type": "registry:component" }, { "path": "registry/new-york/design-system/primitives/primitives.tsx", "content": "\"use client\";\n\nimport { useState } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Input } from \"@/components/ui\";\nimport { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, CardAction } from \"@/components/ui\";\nimport { Badge } from \"@/components/ui\";\nimport { Switch } from \"@/components/ui\";\nimport { Checkbox } from \"@/components/ui\";\nimport { Label } from \"@/components/ui\";\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"@/components/ui\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui\";\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from \"@/components/ui\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"@/components/ui\";\nimport { Progress } from \"@/components/ui\";\nimport { Slider } from \"@/components/ui\";\nimport { Textarea } from \"@/components/ui\";\nimport { Separator } from \"@/components/ui\";\nimport { Skeleton } from \"@/components/ui\";\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui\";\nimport { \n Bell, \n Search, \n Plus, \n Trash2, \n Edit, \n Settings, \n User, \n Download,\n ChevronRight,\n Star,\n Heart,\n Share2,\n MoreVertical\n} from \"lucide-react\";\nimport { toast } from \"sonner\";\nimport { Toaster } from \"@/components/ui\";\nimport { DesignTokens } from \"./components/design-tokens\";\nimport { TailwindColorPalettes } from \"./components/tailwind-color-palettes\";\nimport { ThemeToggle } from \"@/components/theme-toggle-01\";\n\nexport function Primitives() {\n const [switchChecked, setSwitchChecked] = useState(false);\n const [checkboxChecked, setCheckboxChecked] = useState(false);\n const [progress, setProgress] = useState(33);\n const [sliderValue, setSliderValue] = useState([50]);\n\n return (\n
\n \n \n {/* Header */}\n
\n
\n
\n

UI Primitives

\n \n
\n
\n \n \n \n \n \n JD\n \n
\n
\n
\n\n {/* Main Content */}\n
\n
\n \n {/* Hero Section */}\n
\n Updated Components\n

Modern UI Primitives

\n

\n A comprehensive collection of accessible, customizable, and production-ready React components built with Radix UI and Tailwind CSS.\n

\n
\n\n \n\n {/* Design Tokens Section */}\n \n\n \n\n {/* Tailwind Color Palettes Section */}\n \n\n \n\n {/* Buttons Section */}\n
\n
\n

Buttons

\n

Multiple variants and sizes for every use case

\n
\n \n \n \n Button Variants\n Different button styles for different contexts\n \n \n
\n \n \n \n \n \n \n
\n \n \n \n
\n

Button Sizes

\n
\n \n \n \n \n
\n
\n\n \n\n
\n

With Icons

\n
\n \n \n \n \n
\n
\n
\n
\n
\n\n {/* Forms Section */}\n
\n
\n

Form Elements

\n

Input fields, selects, and other form controls

\n
\n\n
\n \n \n Text Inputs\n Standard input fields with validation states\n \n \n
\n \n \n
\n \n
\n \n
\n \n \n
\n
\n\n
\n \n