{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "purple-rain",
  "homepage": "https://kit.scottelling.com",
  "items": [
    {
      "name": "tokens",
      "type": "registry:theme",
      "title": "Purple Rain Tokens",
      "description": "Purple Rain 2.0 semantic tokens in OKLCH, including maintained light and canonical dark modes.",
      "cssVars": {
        "theme": {
          "font-sans": "var(--font-relay-sans)",
          "font-heading": "var(--font-relay-sans)",
          "pr-font": "\"Relay Sans\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", system-ui, sans-serif",
          "pr-mono": "ui-monospace, \"SFMono-Regular\", Menlo, Consolas, monospace",
          "pr-compact-size": "12px",
          "pr-body-size": "15px",
          "pr-control-size": "14px",
          "pr-heading-size": "38px",
          "pr-regular": "400",
          "pr-weight": "600",
          "pr-strong": "700",
          "pr-leading": "1.5",
          "pr-heading-leading": "1.04",
          "pr-heading-letter": "-0.035em",
          "pr-letter": "-0.008em",
          "pr-measure": "64ch",
          "pr-space-base": "12px",
          "pr-space-section": "32px",
          "pr-control-height": "44px",
          "pr-fast": "120ms",
          "pr-standard": "180ms",
          "pr-ease": "cubic-bezier(0.23, 1, 0.32, 1)",
          "color-positive": "var(--positive)",
          "color-positive-foreground": "var(--positive-foreground)",
          "radius-control": "var(--radius-control)",
          "radius-card": "var(--radius-card)",
          "radius-sheet": "var(--radius-sheet)"
        },
        "light": {
          "font-relay-sans": "\"Relay Sans\", ui-sans-serif, sans-serif",
          "background": "oklch(0.972 0.011 313)",
          "foreground": "oklch(0.2 0.03 308)",
          "card": "oklch(0.992 0.006 313)",
          "card-foreground": "oklch(0.2 0.03 308)",
          "popover": "oklch(0.992 0.006 313)",
          "popover-foreground": "oklch(0.2 0.03 308)",
          "primary": "oklch(0.5 0.17 305)",
          "primary-foreground": "oklch(0.985 0.008 313)",
          "secondary": "oklch(0.925 0.024 310)",
          "secondary-foreground": "oklch(0.25 0.035 308)",
          "muted": "oklch(0.94 0.018 313)",
          "muted-foreground": "oklch(0.46 0.032 313)",
          "accent": "oklch(0.91 0.045 305)",
          "accent-foreground": "oklch(0.25 0.04 308)",
          "destructive": "oklch(0.57 0.18 7)",
          "destructive-foreground": "oklch(0.985 0.008 313)",
          "positive": "oklch(0.52 0.09 160)",
          "positive-foreground": "oklch(0.985 0.008 313)",
          "border": "oklch(0.83 0.022 311)",
          "input": "oklch(0.86 0.02 311)",
          "ring": "oklch(0.5 0.17 305)",
          "overlay": "oklch(0.925 0.024 310)",
          "plane-1": "oklch(0.955 0.015 313)",
          "plane-2": "oklch(0.925 0.024 310)",
          "plane-3": "oklch(0.885 0.034 308)",
          "plane-pressed": "oklch(0.9 0.025 309)",
          "ink-faint": "oklch(0.55 0.03 314)",
          "radius": "0.875rem",
          "radius-control": "0.875rem",
          "radius-card": "1.25rem",
          "radius-sheet": "1.625rem",
          "dur-micro": "120ms",
          "dur-short": "180ms",
          "dur-long": "300ms",
          "ease-standard": "cubic-bezier(0.23, 1, 0.32, 1)",
          "shadow-panel": "0 16px 32px -26px oklch(0.12 0.02 309 / 0.34), inset 0 1px 0 oklch(1 0.006 313 / 0.78)",
          "shadow-control": "0 5px 12px -10px oklch(0.12 0.02 309 / 0.3), inset 0 1px 0 oklch(1 0.006 313 / 0.72)"
        },
        "dark": {
          "background": "oklch(0.1513 0.0205 309.47)",
          "foreground": "oklch(0.9583 0.0118 313.22)",
          "card": "oklch(0.2068 0.029 306.88)",
          "card-foreground": "oklch(0.9583 0.0118 313.22)",
          "popover": "oklch(0.2136 0.0328 306.72)",
          "popover-foreground": "oklch(0.9583 0.0118 313.22)",
          "primary": "oklch(0.7756 0.1104 304.73)",
          "primary-foreground": "oklch(0.2225 0.0446 308.27)",
          "secondary": "oklch(0.2434 0.0379 307.89)",
          "secondary-foreground": "oklch(0.9583 0.0118 313.22)",
          "muted": "oklch(0.2136 0.0328 306.72)",
          "muted-foreground": "oklch(0.7149 0.0278 316.1)",
          "accent": "oklch(0.2434 0.0379 307.89)",
          "accent-foreground": "oklch(0.9583 0.0118 313.22)",
          "destructive": "oklch(0.7497 0.1244 7.15)",
          "destructive-foreground": "oklch(0.1706 0.0218 307.03)",
          "positive": "oklch(0.8036 0.0583 159.85)",
          "positive-foreground": "oklch(0.1706 0.0218 307.03)",
          "border": "oklch(0.2694 0.0317 309.88)",
          "input": "oklch(0.2694 0.0317 309.88)",
          "ring": "oklch(0.7756 0.1104 304.73)",
          "overlay": "oklch(0.1706 0.0218 307.03)",
          "plane-1": "oklch(0.1886 0.0278 308.53)",
          "plane-2": "oklch(0.2136 0.0328 306.72)",
          "plane-3": "oklch(0.2434 0.0379 307.89)",
          "plane-pressed": "oklch(0.1706 0.0218 307.03)",
          "ink-faint": "oklch(0.5747 0.0288 313.83)",
          "shadow-panel": "0 16px 32px -26px oklch(0.04 0.01 309 / 0.96), inset 0 1px 0 oklch(0.98 0.01 313 / 0.06)",
          "shadow-control": "0 5px 12px -10px oklch(0.04 0.01 309 / 0.96), inset 0 1px 0 oklch(0.98 0.01 313 / 0.07)"
        }
      },
      "css": {
        ":root": {
          "--background": "oklch(0.972 0.011 313)",
          "--foreground": "oklch(0.2 0.03 308)",
          "--card": "oklch(0.992 0.006 313)",
          "--card-foreground": "oklch(0.2 0.03 308)",
          "--popover": "oklch(0.992 0.006 313)",
          "--popover-foreground": "oklch(0.2 0.03 308)",
          "--primary": "oklch(0.5 0.17 305)",
          "--primary-foreground": "oklch(0.985 0.008 313)",
          "--secondary": "oklch(0.925 0.024 310)",
          "--secondary-foreground": "oklch(0.25 0.035 308)",
          "--muted": "oklch(0.94 0.018 313)",
          "--muted-foreground": "oklch(0.46 0.032 313)",
          "--accent": "oklch(0.91 0.045 305)",
          "--accent-foreground": "oklch(0.25 0.04 308)",
          "--destructive": "oklch(0.57 0.18 7)",
          "--destructive-foreground": "oklch(0.985 0.008 313)",
          "--positive": "oklch(0.52 0.09 160)",
          "--positive-foreground": "oklch(0.985 0.008 313)",
          "--border": "oklch(0.83 0.022 311)",
          "--input": "oklch(0.86 0.02 311)",
          "--ring": "oklch(0.5 0.17 305)",
          "--overlay": "oklch(0.925 0.024 310)",
          "--plane-1": "oklch(0.955 0.015 313)",
          "--plane-2": "oklch(0.925 0.024 310)",
          "--plane-3": "oklch(0.885 0.034 308)",
          "--plane-pressed": "oklch(0.9 0.025 309)",
          "--ink-faint": "oklch(0.55 0.03 314)",
          "--radius": "0.875rem",
          "--radius-control": "0.875rem",
          "--radius-card": "1.25rem",
          "--radius-sheet": "1.625rem",
          "--dur-micro": "120ms",
          "--dur-short": "180ms",
          "--dur-long": "300ms",
          "--ease-standard": "cubic-bezier(0.23, 1, 0.32, 1)",
          "--shadow-panel": "0 16px 32px -26px oklch(0.12 0.02 309 / 0.34), inset 0 1px 0 oklch(1 0.006 313 / 0.78)",
          "--shadow-control": "0 5px 12px -10px oklch(0.12 0.02 309 / 0.3), inset 0 1px 0 oklch(1 0.006 313 / 0.72)"
        },
        ".dark": {
          "--background": "oklch(0.1513 0.0205 309.47)",
          "--foreground": "oklch(0.9583 0.0118 313.22)",
          "--card": "oklch(0.2068 0.029 306.88)",
          "--card-foreground": "oklch(0.9583 0.0118 313.22)",
          "--popover": "oklch(0.2136 0.0328 306.72)",
          "--popover-foreground": "oklch(0.9583 0.0118 313.22)",
          "--primary": "oklch(0.7756 0.1104 304.73)",
          "--primary-foreground": "oklch(0.2225 0.0446 308.27)",
          "--secondary": "oklch(0.2434 0.0379 307.89)",
          "--secondary-foreground": "oklch(0.9583 0.0118 313.22)",
          "--muted": "oklch(0.2136 0.0328 306.72)",
          "--muted-foreground": "oklch(0.7149 0.0278 316.1)",
          "--accent": "oklch(0.2434 0.0379 307.89)",
          "--accent-foreground": "oklch(0.9583 0.0118 313.22)",
          "--destructive": "oklch(0.7497 0.1244 7.15)",
          "--destructive-foreground": "oklch(0.1706 0.0218 307.03)",
          "--positive": "oklch(0.8036 0.0583 159.85)",
          "--positive-foreground": "oklch(0.1706 0.0218 307.03)",
          "--border": "oklch(0.2694 0.0317 309.88)",
          "--input": "oklch(0.2694 0.0317 309.88)",
          "--ring": "oklch(0.7756 0.1104 304.73)",
          "--overlay": "oklch(0.1706 0.0218 307.03)",
          "--plane-1": "oklch(0.1886 0.0278 308.53)",
          "--plane-2": "oklch(0.2136 0.0328 306.72)",
          "--plane-3": "oklch(0.2434 0.0379 307.89)",
          "--plane-pressed": "oklch(0.1706 0.0218 307.03)",
          "--ink-faint": "oklch(0.5747 0.0288 313.83)",
          "--shadow-panel": "0 16px 32px -26px oklch(0.04 0.01 309 / 0.96), inset 0 1px 0 oklch(0.98 0.01 313 / 0.06)",
          "--shadow-control": "0 5px 12px -10px oklch(0.04 0.01 309 / 0.96), inset 0 1px 0 oklch(0.98 0.01 313 / 0.07)"
        }
      }
    },
    {
      "name": "button",
      "type": "registry:ui",
      "title": "Purple Rain Button",
      "description": "A 44px tactile button with seated depth, visible focus, and complete loading, error, and success states.",
      "registryDependencies": ["https://kit.scottelling.com/r/tokens.json"],
      "dependencies": ["class-variance-authority"],
      "files": [{ "path": "registry/purple-rain/button.tsx", "type": "registry:ui" }]
    },
    {
      "name": "card",
      "type": "registry:ui",
      "title": "Purple Rain Card",
      "description": "A borderless tonal card with directional depth and task-first composition slots.",
      "registryDependencies": ["https://kit.scottelling.com/r/tokens.json"],
      "files": [{ "path": "registry/purple-rain/card.tsx", "type": "registry:ui" }]
    },
    {
      "name": "input",
      "type": "registry:ui",
      "title": "Purple Rain Input",
      "description": "A 44px input with stable geometry and visible focus, loading, error, success, and disabled states.",
      "registryDependencies": ["https://kit.scottelling.com/r/tokens.json"],
      "files": [{ "path": "registry/purple-rain/input.tsx", "type": "registry:ui" }]
    },
    {
      "name": "badge",
      "type": "registry:ui",
      "title": "Purple Rain Badge",
      "description": "A restrained status badge that keeps semantic meaning visible without decorative pills.",
      "registryDependencies": ["https://kit.scottelling.com/r/tokens.json"],
      "dependencies": ["class-variance-authority"],
      "files": [{ "path": "registry/purple-rain/badge.tsx", "type": "registry:ui" }]
    },
    {
      "name": "dialog",
      "type": "registry:ui",
      "title": "Purple Rain Dialog",
      "description": "An accessible Radix dialog with an opaque task-preserving overlay and directional tonal depth.",
      "registryDependencies": ["https://kit.scottelling.com/r/tokens.json"],
      "dependencies": ["radix-ui"],
      "files": [{ "path": "registry/purple-rain/dialog.tsx", "type": "registry:ui" }]
    }
  ]
}
