{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "nebari", "homepage": "https://github.com/nebari-dev/nebari-design", "items": [ { "name": "utils", "type": "registry:lib", "title": "cn() utility", "description": "Class-name merge helper built on clsx and tailwind-merge.", "files": [ { "path": "registry/nebari/lib/utils.ts", "type": "registry:lib" } ] }, { "name": "date-utils", "type": "registry:lib", "title": "Date utilities", "description": "Small calendar-date helpers for arithmetic, comparison, formatting, and segmented entry parsing.", "files": [ { "path": "registry/nebari/lib/date.ts", "type": "registry:lib" } ] }, { "name": "spinner", "type": "registry:ui", "title": "Spinner", "description": "Animated loading spinner built on lucide-react.", "dependencies": ["lucide-react"], "registryDependencies": ["@nebari/utils"], "files": [ { "path": "registry/nebari/ui/spinner.tsx", "type": "registry:ui" } ] }, { "name": "skeleton", "type": "registry:ui", "title": "Skeleton", "description": "Decorative placeholder primitives for loading states, with line, circle, and block shapes.", "dependencies": ["class-variance-authority"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/skeleton.tsx", "type": "registry:ui" } ] }, { "name": "button", "type": "registry:ui", "title": "Button", "description": "Button with variants, sizes, a loading state, and polymorphic render-prop composition.", "dependencies": [ "@base-ui/react", "class-variance-authority", "lucide-react" ], "registryDependencies": [ "@nebari/utils", "@nebari/spinner", "@nebari/theme" ], "files": [ { "path": "registry/nebari/ui/button.tsx", "type": "registry:ui" } ] }, { "name": "button-group", "type": "registry:ui", "title": "Button Group", "description": "Groups related actions into horizontal or vertical segmented controls with shared borders and unified outer corners.", "dependencies": ["@base-ui/react", "class-variance-authority"], "registryDependencies": [ "@nebari/button", "@nebari/utils", "@nebari/theme" ], "files": [ { "path": "registry/nebari/ui/button-group.tsx", "type": "registry:ui" } ] }, { "name": "accordion", "type": "registry:ui", "title": "Accordion", "description": "Accessible disclosure set with single or multiple expansion, semantic heading wrappers, and animated panels.", "dependencies": ["@base-ui/react", "lucide-react"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/accordion.tsx", "type": "registry:ui" } ] }, { "name": "switch", "type": "registry:ui", "title": "Switch", "description": "Toggle a single setting on or off with immediate effect, built on Base UI's Switch.", "dependencies": ["@base-ui/react"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/switch.tsx", "type": "registry:ui" } ] }, { "name": "slider", "type": "registry:ui", "title": "Slider", "description": "Bounded numeric input with single-value and range behavior, keyboard navigation, and Nebari track and thumb styling.", "dependencies": ["@base-ui/react"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/slider.tsx", "type": "registry:ui" } ] }, { "name": "checkbox", "type": "registry:ui", "title": "Checkbox", "description": "Labeled checkbox with default and boxed variants, checked, unchecked, and indeterminate states, validation feedback, and Base UI behavior.", "dependencies": [ "@base-ui/react", "class-variance-authority", "lucide-react" ], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/checkbox.tsx", "type": "registry:ui" } ] }, { "name": "radio-group", "type": "registry:ui", "title": "Radio Group", "description": "Mutually exclusive radio group with default and boxed item variants, stable selected targets, and group-level validation feedback.", "dependencies": ["@base-ui/react", "class-variance-authority"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/radio-group.tsx", "type": "registry:ui" } ] }, { "name": "field", "type": "registry:ui", "title": "Field", "description": "Groups a control with its label, description, and validation message, wiring accessible-name and description associations automatically. Built on Base UI's Field.", "dependencies": ["@base-ui/react"], "registryDependencies": ["@nebari/utils"], "files": [ { "path": "registry/nebari/ui/field.tsx", "type": "registry:ui" } ] }, { "name": "input", "type": "registry:ui", "title": "Input", "description": "Single-line text-entry field with hover, focus, disabled, and invalid states, built on Base UI's Input and auto-wired to Field.", "dependencies": ["@base-ui/react", "lucide-react"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/input.tsx", "type": "registry:ui" } ] }, { "name": "calendar", "type": "registry:ui", "title": "Calendar", "description": "Single-month calendar grid with reusable day cells, range states, keyboard navigation, and Nebari popover-surface styling.", "dependencies": [ "@base-ui/react", "class-variance-authority", "lucide-react" ], "registryDependencies": [ "@nebari/utils", "@nebari/date-utils", "@nebari/button", "@nebari/theme" ], "files": [ { "path": "registry/nebari/ui/calendar.tsx", "type": "registry:ui" } ] }, { "name": "date-picker", "type": "registry:ui", "title": "Date Picker", "description": "Date picker field for single dates, ranges, date and time selection, and segmented typed entry, backed by Base UI Popover.", "dependencies": [ "@base-ui/react", "class-variance-authority", "lucide-react" ], "registryDependencies": [ "@nebari/utils", "@nebari/date-utils", "@nebari/field", "@nebari/calendar", "@nebari/theme" ], "files": [ { "path": "registry/nebari/ui/date-picker.tsx", "type": "registry:ui" } ] }, { "name": "label", "type": "registry:ui", "title": "Label", "description": "Accessible label for a form control, paired via htmlFor or composed with Field.", "registryDependencies": ["@nebari/utils"], "files": [ { "path": "registry/nebari/ui/label.tsx", "type": "registry:ui" } ] }, { "name": "textarea", "type": "registry:ui", "title": "Textarea", "description": "Multi-line text-entry field — a styled native textarea mirroring Input's border, focus ring, disabled, and invalid states.", "dependencies": ["lucide-react"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/textarea.tsx", "type": "registry:ui" } ] }, { "name": "table", "type": "registry:ui", "title": "Table", "description": "Responsive data table with Nebari header, cell, row, footer, caption, and hover styling.", "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/table.tsx", "type": "registry:ui" } ] }, { "name": "data-table", "type": "registry:ui", "title": "Data Table", "description": "Reusable TanStack Table with sorting, filtering, row selection, column visibility, pagination, and complete empty, loading, and error states.", "dependencies": ["@tanstack/react-table", "lucide-react"], "registryDependencies": [ "@nebari/button", "@nebari/checkbox", "@nebari/dropdown-menu", "@nebari/input", "@nebari/select", "@nebari/table", "@nebari/theme", "@nebari/utils" ], "files": [ { "path": "registry/nebari/ui/data-table.tsx", "type": "registry:ui" } ] }, { "name": "alert", "type": "registry:ui", "title": "Alert", "description": "Inline status message with default, success, warning, and destructive variants, composed of Alert, AlertTitle, AlertDescription, and AlertAction.", "dependencies": ["class-variance-authority", "lucide-react"], "registryDependencies": ["@nebari/utils"], "files": [ { "path": "registry/nebari/ui/alert.tsx", "type": "registry:ui" } ] }, { "name": "toast", "type": "registry:ui", "title": "Toast", "description": "Transient notification with status types, actions, promise updates, a five-item stack, and swipe dismissal, built on Base UI Toast.", "dependencies": [ "@base-ui/react", "class-variance-authority", "lucide-react" ], "registryDependencies": [ "@nebari/button", "@nebari/theme", "@nebari/utils" ], "files": [ { "path": "registry/nebari/ui/toast.tsx", "type": "registry:ui" } ] }, { "name": "sidebar", "type": "registry:ui", "title": "Sidebar", "description": "Collapsible app-shell sidebar whose menu button composes via Base UI's render prop into links, dropdown, select, and tooltip triggers.", "dependencies": [ "@base-ui/react", "class-variance-authority", "lucide-react" ], "registryDependencies": [ "@nebari/utils", "@nebari/theme", "@nebari/tooltip" ], "files": [ { "path": "registry/nebari/ui/sidebar.tsx", "type": "registry:ui" } ] }, { "name": "badge", "type": "registry:ui", "title": "Badge", "description": "Small status/label chip with variants, composable via Base UI's render prop.", "dependencies": ["@base-ui/react", "class-variance-authority"], "registryDependencies": ["@nebari/utils"], "files": [ { "path": "registry/nebari/ui/badge.tsx", "type": "registry:ui" } ] }, { "name": "breadcrumb", "type": "registry:ui", "title": "Breadcrumb", "description": "Hierarchy navigation trail with default, ellipsis-triggered, and current-route dropdown compositions.", "dependencies": ["@base-ui/react", "lucide-react"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/breadcrumb.tsx", "type": "registry:ui" } ] }, { "name": "card", "type": "registry:ui", "title": "Card", "description": "Static content surface composed from header, title, description, action, content, and footer sections.", "dependencies": ["class-variance-authority"], "registryDependencies": ["@nebari/utils"], "files": [ { "path": "registry/nebari/ui/card.tsx", "type": "registry:ui" } ] }, { "name": "dialog", "type": "registry:ui", "title": "Dialog", "description": "Modal dialog with overlay, close control, header, footer, title, and description parts, built on Base UI's Dialog.", "dependencies": ["@base-ui/react", "lucide-react"], "registryDependencies": [ "@nebari/utils", "@nebari/button", "@nebari/theme" ], "files": [ { "path": "registry/nebari/ui/dialog.tsx", "type": "registry:ui" } ] }, { "name": "drawer", "type": "registry:ui", "title": "Drawer", "description": "Edge-anchored panel for secondary tasks, contextual detail, or short forms, with right-side and bottom-sheet variants built on Base UI Drawer.", "dependencies": ["@base-ui/react", "lucide-react"], "registryDependencies": [ "@nebari/utils", "@nebari/button", "@nebari/theme" ], "files": [ { "path": "registry/nebari/ui/drawer.tsx", "type": "registry:ui" } ] }, { "name": "tabs", "type": "registry:ui", "title": "Tabs", "description": "Tabs for switching between related panels, with pill and underline variants built on Base UI.", "dependencies": ["@base-ui/react", "class-variance-authority"], "registryDependencies": ["@nebari/utils"], "files": [ { "path": "registry/nebari/ui/tabs.tsx", "type": "registry:ui" } ] }, { "name": "select", "type": "registry:ui", "title": "Select", "description": "Accessible standard-size select menu with grouped labels, separators, validation states, and anchored popup positioning.", "dependencies": ["@base-ui/react", "lucide-react"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/select.tsx", "type": "registry:ui" } ] }, { "name": "combobox", "type": "registry:ui", "title": "Combobox", "description": "Autocomplete input paired with a filterable option list. Supports single and multi-select chips, grouped options, an empty state, and a clear affordance, built on Base UI's Combobox.", "dependencies": ["@base-ui/react", "lucide-react"], "registryDependencies": [ "@nebari/utils", "@nebari/badge", "@nebari/theme" ], "files": [ { "path": "registry/nebari/ui/combobox.tsx", "type": "registry:ui" } ] }, { "name": "navigation-menu", "type": "registry:ui", "title": "Navigation Menu", "description": "Application navigation bar with anchor-first NavLink items, NavDropdownMenu composition, and brand/actions slots.", "dependencies": ["@base-ui/react", "class-variance-authority"], "registryDependencies": [ "@nebari/dropdown-menu", "@nebari/utils", "@nebari/theme" ], "files": [ { "path": "registry/nebari/ui/navigation-menu.tsx", "type": "registry:ui" } ] }, { "name": "dropdown-menu", "type": "registry:ui", "title": "Dropdown Menu", "description": "Action menu triggered by a button, with grouped items, labels, separators, checkbox items, and nested submenus.", "dependencies": [ "@base-ui/react", "class-variance-authority", "lucide-react" ], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/dropdown-menu.tsx", "type": "registry:ui" } ] }, { "name": "tooltip", "type": "registry:ui", "title": "Tooltip", "description": "Compact supplemental information shown on hover or keyboard focus, with anchored positioning and optional arrow. Touch devices don't trigger tooltips so critical information shouldn't live only in a tooltip.", "dependencies": ["@base-ui/react"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/tooltip.tsx", "type": "registry:ui" } ] }, { "name": "code-block", "type": "registry:ui", "title": "Code Block", "description": "Formatted, monospaced code snippet with an optional language/filename header, a copy-to-clipboard button, and optional line numbers. Composed of CodeBlock, CodeBlockHeader, CodeBlockBody, and CodeBlockCopyButton.", "dependencies": ["class-variance-authority", "lucide-react"], "registryDependencies": ["@nebari/utils", "@nebari/theme"], "files": [ { "path": "registry/nebari/ui/code-block.tsx", "type": "registry:ui" } ] }, { "name": "use-theme-preference", "type": "registry:hook", "title": "useThemePreference", "description": "Theme/dark-mode state: persists a light/dark/system preference, follows the OS in system mode, and toggles the .dark class on . Ships a ThemeProvider/useTheme context wrapper and a pre-paint bootstrap script builder that eliminates the theme flash.", "registryDependencies": ["@nebari/theme"], "files": [ { "path": "registry/nebari/hooks/use-theme-preference.ts", "type": "registry:hook" }, { "path": "registry/nebari/hooks/theme-provider.tsx", "type": "registry:hook" } ] }, { "name": "claude-skill", "type": "registry:file", "title": "Nebari UI Claude Code skill", "description": "Claude Code skill that teaches an AI assistant how to install and use Nebari components in a consumer app — registry setup, the component catalog, the Base UI render-prop convention, and theming.", "files": [ { "path": "registry/nebari/skills/nebari-ui/SKILL.md", "type": "registry:file", "target": "~/.claude/skills/nebari-ui/SKILL.md" } ] }, { "name": "theme", "type": "registry:theme", "title": "Nebari theme", "description": "Nebari brand color tokens and radius for light and dark modes.", "css": { ":root": { "--primary-magenta-50": "oklch(97.93% 0.0118 313.22)", "--primary-magenta-100": "oklch(95.07% 0.0323 311.75)", "--primary-magenta-200": "oklch(86.93% 0.0881 311.32)", "--primary-magenta-300": "oklch(77.96% 0.1496 311.14)", "--primary-magenta-400": "oklch(69.98% 0.1926 311.48)", "--primary-magenta-500": "oklch(61.98% 0.2159 311.67)", "--primary-magenta-600": "oklch(55.06% 0.1886 311.45)", "--primary-magenta-700": "oklch(47.01% 0.1577 311.26)", "--primary-magenta-800": "oklch(39.93% 0.1238 311.55)", "--primary-magenta-900": "oklch(32.97% 0.0867 312.00)", "--primary-magenta-950": "oklch(27.03% 0.0852 311.77)", "--accent-teal-50": "oklch(97.94% 0.0160 187.35)", "--accent-teal-100": "oklch(95.02% 0.0407 187.03)", "--accent-teal-200": "oklch(86.97% 0.0671 187.76)", "--accent-teal-300": "oklch(77.96% 0.0893 187.30)", "--accent-teal-400": "oklch(69.9% 0.0995 187.56)", "--accent-teal-500": "oklch(61.96% 0.0932 187.62)", "--accent-teal-600": "oklch(55.09% 0.0808 187.38)", "--accent-teal-700": "oklch(47% 0.0677 188.28)", "--accent-teal-800": "oklch(39.98% 0.0539 188.08)", "--accent-teal-900": "oklch(33.02% 0.0392 187.72)", "--accent-teal-950": "oklch(27.14% 0.0398 187.08)", "--highlight-yellow-50": "oklch(98.03% 0.0183 86.15)", "--highlight-yellow-100": "oklch(94.96% 0.0461 86.46)", "--highlight-yellow-200": "oklch(87.03% 0.0889 86.52)", "--highlight-yellow-300": "oklch(77.95% 0.1259 85.96)", "--highlight-yellow-400": "oklch(70.05% 0.1417 86.43)", "--highlight-yellow-500": "oklch(62.04% 0.1267 87.01)", "--highlight-yellow-600": "oklch(55.01% 0.1117 86.53)", "--highlight-yellow-700": "oklch(46.93% 0.0960 86.63)", "--highlight-yellow-800": "oklch(40.14% 0.0731 87.00)", "--highlight-yellow-900": "oklch(32.9% 0.0514 85.56)", "--highlight-yellow-950": "oklch(26.86% 0.0514 86.55)", "--neutral-50": "oklch(97.94% 0.0013 286.38)", "--neutral-100": "oklch(95.04% 0.0042 236.50)", "--neutral-200": "oklch(87.02% 0.0106 247.95)", "--neutral-300": "oklch(77.94% 0.0168 253.93)", "--neutral-400": "oklch(70% 0.0253 250.17)", "--neutral-500": "oklch(62.01% 0.0331 251.43)", "--neutral-600": "oklch(54.87% 0.0393 252.47)", "--neutral-700": "oklch(46.94% 0.0327 253.44)", "--neutral-800": "oklch(40% 0.0269 250.57)", "--neutral-900": "oklch(32.95% 0.0209 254.12)", "--neutral-950": "oklch(26.95% 0.0219 254.20)", "--zinc-50": "oklch(97.91% 0 0)", "--zinc-100": "oklch(94.94% 0.0013 286.37)", "--zinc-200": "oklch(87.08% 0.0041 286.31)", "--zinc-300": "oklch(78.06% 0.0056 286.27)", "--zinc-400": "oklch(69.88% 0.0130 286.06)", "--zinc-500": "oklch(61.96% 0.0134 286.00)", "--zinc-600": "oklch(54.86% 0.0154 285.88)", "--zinc-700": "oklch(47.01% 0.0112 285.96)", "--zinc-800": "oklch(39.94% 0.0066 286.10)", "--zinc-900": "oklch(33.01% 0.0052 286.11)", "--zinc-950": "oklch(26.94% 0.0037 286.15)", "--zinc-975": "oklch(21.86% 0.0039 286.08)", "--blue-50": "oklch(97.93% 0.0083 271.33)", "--blue-100": "oklch(95.08% 0.0232 264.46)", "--blue-200": "oklch(87.12% 0.0567 264.22)", "--blue-300": "oklch(78.02% 0.0950 264.35)", "--blue-400": "oklch(69.95% 0.1433 264.44)", "--blue-500": "oklch(62.1% 0.1880 264.30)", "--blue-600": "oklch(55.04% 0.2158 264.34)", "--blue-700": "oklch(47.06% 0.2174 264.33)", "--blue-800": "oklch(40.02% 0.1811 264.47)", "--blue-900": "oklch(33.01% 0.1387 264.40)", "--blue-950": "oklch(27.02% 0.0864 264.19)", "--green-50": "oklch(97.94% 0.0182 150.56)", "--green-100": "oklch(94.94% 0.0433 149.41)", "--green-200": "oklch(87.04% 0.0814 149.55)", "--green-300": "oklch(78.09% 0.1374 149.53)", "--green-400": "oklch(69.96% 0.1814 149.67)", "--green-500": "oklch(61.95% 0.1718 149.70)", "--green-600": "oklch(55.08% 0.1525 149.53)", "--green-700": "oklch(47.01% 0.1313 149.41)", "--green-800": "oklch(40.02% 0.1082 149.72)", "--green-900": "oklch(32.88% 0.0887 149.73)", "--green-950": "oklch(27.13% 0.0631 149.76)", "--red-50": "oklch(97.91% 0.0087 26.02)", "--red-100": "oklch(95.06% 0.0247 29.93)", "--red-200": "oklch(86.96% 0.0594 27.38)", "--red-300": "oklch(78.02% 0.1024 27.78)", "--red-400": "oklch(69.96% 0.1660 27.34)", "--red-500": "oklch(62.07% 0.2077 27.48)", "--red-600": "oklch(54.97% 0.2151 27.33)", "--red-700": "oklch(46.91% 0.1900 27.40)", "--red-800": "oklch(39.97% 0.1611 27.26)", "--red-900": "oklch(33.1% 0.1332 27.42)", "--red-950": "oklch(27.06% 0.0890 26.98)", "--yellow-50": "oklch(97.95% 0.0179 89.36)", "--yellow-100": "oklch(95.02% 0.0692 92.11)", "--yellow-200": "oklch(87.09% 0.1248 91.93)", "--yellow-300": "oklch(78.1% 0.1564 91.73)", "--yellow-400": "oklch(69.92% 0.1414 91.77)", "--yellow-500": "oklch(62.13% 0.1269 92.02)", "--yellow-600": "oklch(54.88% 0.1114 91.56)", "--yellow-700": "oklch(46.91% 0.0960 91.90)", "--yellow-800": "oklch(40.15% 0.0821 92.02)", "--yellow-900": "oklch(33.09% 0.0677 92.20)", "--yellow-950": "oklch(26.96% 0.0539 91.43)", "--black": "oklch(0% 0 0)", "--white": "oklch(100% 0 0)", "--foundation-black": "oklch(20.76% 0.0135 258.37)", "--foundation-white": "oklch(100% 0 0)" }, "@keyframes nebari-fade-in": { "from": { "opacity": "0" }, "to": { "opacity": "1" } }, "@keyframes nebari-fade-out": { "from": { "opacity": "1" }, "to": { "opacity": "0" } }, "@keyframes nebari-slide-up-fade": { "from": { "opacity": "0", "transform": "translateY(6px)" }, "to": { "opacity": "1", "transform": "translateY(0)" } }, "@keyframes nebari-slide-down-fade": { "from": { "opacity": "1", "transform": "translateY(0)" }, "to": { "opacity": "0", "transform": "translateY(6px)" } }, "@keyframes nebari-skeleton-pulse": { "0%, 100%": { "opacity": "1" }, "50%": { "opacity": "0.5" } } }, "cssVars": { "theme": { "font-sans": "'Geist Variable', ui-sans-serif, system-ui, sans-serif", "font-mono": "'IBM Plex Mono', ui-monospace, SFMono-Regular, monospace", "duration-fast": "100ms", "duration-base": "200ms", "duration-slow": "350ms", "duration-loading": "1600ms", "ease-standard": "cubic-bezier(0.4, 0, 0.2, 1)", "ease-emphasized": "cubic-bezier(0.2, 0, 0, 1)", "animate-fade-in": "nebari-fade-in var(--duration-base) var(--ease-standard) both", "animate-fade-out": "nebari-fade-out var(--duration-base) var(--ease-standard) both", "animate-slide-up-fade": "nebari-slide-up-fade var(--duration-base) var(--ease-emphasized) both", "animate-slide-down-fade": "nebari-slide-down-fade var(--duration-base) var(--ease-emphasized) both", "animate-skeleton-pulse": "nebari-skeleton-pulse var(--duration-loading) var(--ease-standard) infinite" }, "light": { "radius": "0.625rem", "background": "oklch(97.91% 0 0)", "foreground": "oklch(26.94% 0.0037 286.15)", "scrim": "rgba(0, 0, 0, 0.5)", "canvas": "oklch(100% 0 0)", "canvas-foreground": "oklch(26.94% 0.0037 286.15)", "header": "oklch(97.91% 0 0)", "header-foreground": "oklch(26.94% 0.0037 286.15)", "card": "oklch(100% 0 0)", "card-foreground": "oklch(26.94% 0.0037 286.15)", "popover": "oklch(100% 0 0)", "popover-foreground": "oklch(26.94% 0.0037 286.15)", "primary": "oklch(55.06% 0.1886 311.45)", "primary-foreground": "oklch(100% 0 0)", "primary-hover": "oklch(47.01% 0.1577 311.26)", "secondary": "oklch(95.04% 0.0042 236.50)", "secondary-foreground": "oklch(32.95% 0.0209 254.12)", "muted": "oklch(94.94% 0.0013 286.37)", "muted-foreground": "oklch(54.86% 0.0154 285.88)", "muted-foreground-strong": "oklch(47.01% 0.0112 285.96)", "accent": "oklch(95.04% 0.0042 236.50)", "accent-foreground": "oklch(32.95% 0.0209 254.12)", "info": "oklch(95.08% 0.0232 264.46)", "info-foreground": "oklch(55.04% 0.2158 264.34)", "destructive": "oklch(95.06% 0.0247 29.93)", "destructive-foreground": "oklch(54.97% 0.2151 27.33)", "warning": "oklch(95.02% 0.0692 92.11)", "warning-foreground": "oklch(46.91% 0.0960 91.90)", "success": "oklch(94.94% 0.0433 149.41)", "success-foreground": "oklch(47.01% 0.1313 149.41)", "border": "oklch(78.06% 0.0056 286.27)", "input": "oklch(69.88% 0.0130 286.06)", "border-strong": "oklch(61.96% 0.0134 286.00)", "ring": "oklch(61.98% 0.2159 311.67)", "chart-1": "oklch(61.98% 0.2159 311.67)", "chart-2": "oklch(61.96% 0.0932 187.62)", "chart-3": "oklch(70.05% 0.1417 86.43)", "chart-4": "oklch(62.1% 0.1880 264.30)", "chart-5": "oklch(61.95% 0.1718 149.70)", "sidebar": "oklch(97.91% 0 0)", "sidebar-foreground": "oklch(26.94% 0.0037 286.15)", "sidebar-primary": "oklch(55.06% 0.1886 311.45)", "sidebar-primary-foreground": "oklch(100% 0 0)", "sidebar-accent": "oklch(95.04% 0.0042 236.50)", "sidebar-accent-foreground": "oklch(32.95% 0.0209 254.12)", "sidebar-border": "oklch(78.06% 0.0056 286.27)", "sidebar-ring": "oklch(61.98% 0.2159 311.67)" }, "dark": { "background": "oklch(26.94% 0.0037 286.15)", "foreground": "oklch(97.91% 0 0)", "scrim": "rgba(0, 0, 0, 0.6)", "canvas": "oklch(21.86% 0.0039 286.08)", "canvas-foreground": "oklch(97.91% 0 0)", "header": "oklch(26.94% 0.0037 286.15)", "header-foreground": "oklch(97.91% 0 0)", "card": "oklch(33.01% 0.0052 286.11)", "card-foreground": "oklch(97.91% 0 0)", "popover": "oklch(33.01% 0.0052 286.11)", "popover-foreground": "oklch(97.91% 0 0)", "primary": "oklch(61.98% 0.2159 311.67)", "primary-foreground": "oklch(0% 0 0)", "primary-hover": "oklch(69.98% 0.1926 311.48)", "secondary": "oklch(40% 0.0269 250.57)", "secondary-foreground": "oklch(95.04% 0.0042 236.50)", "muted": "oklch(39.94% 0.0066 286.10)", "muted-foreground": "oklch(69.88% 0.0130 286.06)", "muted-foreground-strong": "oklch(78.06% 0.0056 286.27)", "accent": "oklch(40% 0.0269 250.57)", "accent-foreground": "oklch(95.04% 0.0042 236.50)", "info": "oklch(33.01% 0.1387 264.40)", "info-foreground": "oklch(69.95% 0.1433 264.44)", "destructive": "oklch(33.1% 0.1332 27.42)", "destructive-foreground": "oklch(78.02% 0.1024 27.78)", "warning": "oklch(33.09% 0.0677 92.20)", "warning-foreground": "oklch(87.09% 0.1248 91.93)", "success": "oklch(32.88% 0.0887 149.73)", "success-foreground": "oklch(87.04% 0.0814 149.55)", "border": "oklch(47.01% 0.0112 285.96)", "input": "oklch(54.86% 0.0154 285.88)", "border-strong": "oklch(61.96% 0.0134 286.00)", "ring": "oklch(69.98% 0.1926 311.48)", "chart-1": "oklch(69.98% 0.1926 311.48)", "chart-2": "oklch(69.9% 0.0995 187.56)", "chart-3": "oklch(77.95% 0.1259 85.96)", "chart-4": "oklch(69.95% 0.1433 264.44)", "chart-5": "oklch(69.96% 0.1814 149.67)", "sidebar": "oklch(26.94% 0.0037 286.15)", "sidebar-foreground": "oklch(97.91% 0 0)", "sidebar-primary": "oklch(61.98% 0.2159 311.67)", "sidebar-primary-foreground": "oklch(0% 0 0)", "sidebar-accent": "oklch(40% 0.0269 250.57)", "sidebar-accent-foreground": "oklch(95.04% 0.0042 236.50)", "sidebar-border": "oklch(47.01% 0.0112 285.96)", "sidebar-ring": "oklch(69.98% 0.1926 311.48)" } } } ] }