{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "theme",
  "title": "Theme",
  "description": "Neutral gray scale (light and dark), shadcn's color names on it, type scale, menu animation. Import after Tailwind.",
  "files": [
    {
      "path": "registry/dgit/styles/dgit.css",
      "content": "/*\n * DGit UI theme. Import it after Tailwind in the app's main CSS:\n *\n *   @import \"tailwindcss\";\n *   @import \"./dgit.css\";\n *\n * Two layers of names, one source of color:\n *  - a neutral gray scale (gray-100…gray-1000, background-100/200, gray-alpha-100…600) in the\n *    Geist style: values from the Geist design language as measured on vercel.com, 2026-09-21;\n *  - shadcn's semantic names (background, foreground, muted, border, …) pointed at that scale,\n *    so stock shadcn components match.\n *\n * Theme: `<html data-theme=\"light|dark\">` picks one (lib/theme.ts sets it); without the attribute\n * the system setting decides. Fonts aren't loaded here: load Geist and Geist Mono (the `geist`\n * npm package or Google Fonts), and Pretendard for Korean if needed.\n */\n\n:root {\n  color-scheme: light dark;\n\n  --dgit-gray-100: 0, 0%, 95%;\n  --dgit-gray-200: 0, 0%, 92%;\n  --dgit-gray-300: 0, 0%, 90%;\n  --dgit-gray-400: 0, 0%, 92%;\n  --dgit-gray-500: 0, 0%, 79%;\n  --dgit-gray-600: 0, 0%, 66%;\n  --dgit-gray-700: 0, 0%, 56%;\n  --dgit-gray-800: 0, 0%, 49%;\n  --dgit-gray-900: 0, 0%, 30%;\n  --dgit-gray-1000: 0, 0%, 9%;\n  --dgit-background-100: 0, 0%, 100%;\n  --dgit-background-200: 0, 0%, 98%;\n\n  --dgit-gray-alpha-100: #0000000d;\n  --dgit-gray-alpha-200: #00000014;\n  --dgit-gray-alpha-300: #0000001a;\n  --dgit-gray-alpha-400: #00000014;\n  --dgit-gray-alpha-500: #00000036;\n  --dgit-gray-alpha-600: #00000057;\n\n  --dgit-blue: oklch(57.61% 0.2508 258.23);\n  --dgit-green: oklch(51.75% 0.1453 147.65);\n  --dgit-green-bg: oklch(96.92% 0.037 147.15);\n  --dgit-amber: oklch(52.79% 0.1496 54.65);\n  --dgit-amber-bg: oklch(96.81% 0.0495 90.2423);\n  --dgit-red: oklch(54.99% 0.232 25.29);\n  --dgit-red-bg: oklch(95.41% 0.0299 14.2526);\n\n  /* A card that sits on the page: 1px edge, a 2px drop, a ring in the page color. */\n  --dgit-shadow-card: 0 0 0 1px rgba(0, 0, 0, 0.08), 0 2px 2px 0 rgba(0, 0, 0, 0.04), 0 0 0 1px hsla(var(--dgit-background-200), 1);\n  /* A floating panel (menus, popovers). */\n  --dgit-shadow-menu:\n    0 0 0 1px rgba(0, 0, 0, 0.08), 0 1px 1px 0 rgba(0, 0, 0, 0.02), 0 8px 16px -4px rgba(0, 0, 0, 0.04),\n    0 24px 32px -8px rgba(0, 0, 0, 0.06), 0 0 0 1px hsla(var(--dgit-background-200), 1);\n\n  --radius: 0.875rem;\n}\n\n/* Light or dark, chosen explicitly… */\n:root[data-theme=\"light\"] {\n  color-scheme: light;\n}\n:root[data-theme=\"dark\"] {\n  color-scheme: dark;\n  --dgit-gray-100: 0, 0%, 10%;\n  --dgit-gray-200: 0, 0%, 12%;\n  --dgit-gray-300: 0, 0%, 16%;\n  --dgit-gray-400: 0, 0%, 18%;\n  --dgit-gray-500: 0, 0%, 27%;\n  --dgit-gray-600: 0, 0%, 53%;\n  --dgit-gray-700: 0, 0%, 56%;\n  --dgit-gray-800: 0, 0%, 49%;\n  --dgit-gray-900: 0, 0%, 63%;\n  --dgit-gray-1000: 0, 0%, 93%;\n  --dgit-background-100: 0, 0%, 4%;\n  --dgit-background-200: 0, 0%, 0%;\n  --dgit-gray-alpha-100: #ffffff0f;\n  --dgit-gray-alpha-200: #ffffff17;\n  --dgit-gray-alpha-300: #ffffff21;\n  --dgit-gray-alpha-400: #ffffff24;\n  --dgit-gray-alpha-500: #ffffff3d;\n  --dgit-gray-alpha-600: #ffffff82;\n  --dgit-green: oklch(73.1% 0.19 150);\n  --dgit-green-bg: oklch(25% 0.05 150);\n  --dgit-amber: oklch(82% 0.15 80);\n  --dgit-amber-bg: oklch(24% 0.04 75);\n  --dgit-red: oklch(70% 0.19 22);\n  --dgit-red-bg: oklch(25% 0.05 20);\n  --dgit-shadow-card: 0 0 0 1px var(--dgit-gray-alpha-400), 0 2px 2px 0 rgba(0, 0, 0, 0.16);\n  --dgit-shadow-menu: 0 0 0 1px var(--dgit-gray-alpha-400), 0 8px 16px -4px rgba(0, 0, 0, 0.32), 0 24px 32px -8px rgba(0, 0, 0, 0.4);\n}\n\n/* …or by the system when nothing was chosen (same values as above). */\n@media (prefers-color-scheme: dark) {\n  :root:not([data-theme]) {\n    --dgit-gray-100: 0, 0%, 10%;\n    --dgit-gray-200: 0, 0%, 12%;\n    --dgit-gray-300: 0, 0%, 16%;\n    --dgit-gray-400: 0, 0%, 18%;\n    --dgit-gray-500: 0, 0%, 27%;\n    --dgit-gray-600: 0, 0%, 53%;\n    --dgit-gray-700: 0, 0%, 56%;\n    --dgit-gray-800: 0, 0%, 49%;\n    --dgit-gray-900: 0, 0%, 63%;\n    --dgit-gray-1000: 0, 0%, 93%;\n    --dgit-background-100: 0, 0%, 4%;\n    --dgit-background-200: 0, 0%, 0%;\n    --dgit-gray-alpha-100: #ffffff0f;\n    --dgit-gray-alpha-200: #ffffff17;\n    --dgit-gray-alpha-300: #ffffff21;\n    --dgit-gray-alpha-400: #ffffff24;\n    --dgit-gray-alpha-500: #ffffff3d;\n    --dgit-gray-alpha-600: #ffffff82;\n    --dgit-green: oklch(73.1% 0.19 150);\n    --dgit-green-bg: oklch(25% 0.05 150);\n    --dgit-amber: oklch(82% 0.15 80);\n    --dgit-amber-bg: oklch(24% 0.04 75);\n    --dgit-red: oklch(70% 0.19 22);\n    --dgit-red-bg: oklch(25% 0.05 20);\n    --dgit-shadow-card: 0 0 0 1px var(--dgit-gray-alpha-400), 0 2px 2px 0 rgba(0, 0, 0, 0.16);\n    --dgit-shadow-menu: 0 0 0 1px var(--dgit-gray-alpha-400), 0 8px 16px -4px rgba(0, 0, 0, 0.32), 0 24px 32px -8px rgba(0, 0, 0, 0.4);\n  }\n}\n\n/* shadcn's names, on the scale above. */\n:root {\n  --background: hsla(var(--dgit-background-100), 1);\n  --foreground: hsla(var(--dgit-gray-1000), 1);\n  --card: hsla(var(--dgit-background-100), 1);\n  --card-foreground: hsla(var(--dgit-gray-1000), 1);\n  --popover: hsla(var(--dgit-background-100), 1);\n  --popover-foreground: hsla(var(--dgit-gray-1000), 1);\n  --primary: hsla(var(--dgit-gray-1000), 1);\n  --primary-foreground: hsla(var(--dgit-background-100), 1);\n  --secondary: hsla(var(--dgit-gray-100), 1);\n  --secondary-foreground: hsla(var(--dgit-gray-1000), 1);\n  --muted: hsla(var(--dgit-gray-100), 1);\n  --muted-foreground: hsla(var(--dgit-gray-900), 1);\n  --accent: hsla(var(--dgit-gray-100), 1);\n  --accent-foreground: hsla(var(--dgit-gray-1000), 1);\n  --destructive: var(--dgit-red);\n  --border: hsla(var(--dgit-gray-300), 1);\n  --input: hsla(var(--dgit-gray-300), 1);\n  --ring: hsla(var(--dgit-gray-1000), 1);\n  --warn: var(--dgit-amber);\n  --warn-bg: var(--dgit-amber-bg);\n  --ok: var(--dgit-green);\n}\n\n@theme inline {\n  --font-sans: \"Geist\", \"Geist Sans\", \"Pretendard\", ui-sans-serif, system-ui, -apple-system, \"Segoe UI\", \"Apple SD Gothic Neo\", sans-serif;\n  --font-mono: \"Geist Mono\", ui-monospace, \"SF Mono\", Menlo, monospace, \"Pretendard\";\n\n  --radius-sm: calc(var(--radius) - 6px);\n  --radius-md: calc(var(--radius) - 4px);\n  --radius-lg: var(--radius);\n  --radius-xl: calc(var(--radius) + 4px);\n\n  --color-background: var(--background);\n  --color-foreground: var(--foreground);\n  --color-card: var(--card);\n  --color-card-foreground: var(--card-foreground);\n  --color-popover: var(--popover);\n  --color-popover-foreground: var(--popover-foreground);\n  --color-primary: var(--primary);\n  --color-primary-foreground: var(--primary-foreground);\n  --color-secondary: var(--secondary);\n  --color-secondary-foreground: var(--secondary-foreground);\n  --color-muted: var(--muted);\n  --color-muted-foreground: var(--muted-foreground);\n  --color-accent: var(--accent);\n  --color-accent-foreground: var(--accent-foreground);\n  --color-destructive: var(--destructive);\n  --color-border: var(--border);\n  --color-input: var(--input);\n  --color-ring: var(--ring);\n  --color-warn: var(--warn);\n  --color-warn-bg: var(--warn-bg);\n  --color-ok: var(--ok);\n\n  /* The gray scale by name: hover:bg-gray-100, text-gray-900, bg-background-200, … */\n  --color-gray-100: hsla(var(--dgit-gray-100), 1);\n  --color-gray-200: hsla(var(--dgit-gray-200), 1);\n  --color-gray-300: hsla(var(--dgit-gray-300), 1);\n  --color-gray-400: hsla(var(--dgit-gray-400), 1);\n  --color-gray-500: hsla(var(--dgit-gray-500), 1);\n  --color-gray-600: hsla(var(--dgit-gray-600), 1);\n  --color-gray-700: hsla(var(--dgit-gray-700), 1);\n  --color-gray-800: hsla(var(--dgit-gray-800), 1);\n  --color-gray-900: hsla(var(--dgit-gray-900), 1);\n  --color-gray-1000: hsla(var(--dgit-gray-1000), 1);\n  --color-background-100: hsla(var(--dgit-background-100), 1);\n  --color-background-200: hsla(var(--dgit-background-200), 1);\n  --color-gray-alpha-100: var(--dgit-gray-alpha-100);\n  --color-gray-alpha-200: var(--dgit-gray-alpha-200);\n  --color-gray-alpha-300: var(--dgit-gray-alpha-300);\n  --color-gray-alpha-400: var(--dgit-gray-alpha-400);\n  --color-gray-alpha-500: var(--dgit-gray-alpha-500);\n  --color-gray-alpha-600: var(--dgit-gray-alpha-600);\n\n  --shadow-card: var(--dgit-shadow-card);\n  --shadow-menu: var(--dgit-shadow-menu);\n\n  /* Type scale: heading (600, tight), label and copy (400), button (500). */\n  --text-heading-14: 14px;\n  --text-heading-14--line-height: 20px;\n  --text-heading-14--letter-spacing: -0.28px;\n  --text-heading-14--font-weight: 600;\n  --text-heading-16: 16px;\n  --text-heading-16--line-height: 24px;\n  --text-heading-16--letter-spacing: -0.32px;\n  --text-heading-16--font-weight: 600;\n  --text-heading-20: 20px;\n  --text-heading-20--line-height: 26px;\n  --text-heading-20--letter-spacing: -0.4px;\n  --text-heading-20--font-weight: 600;\n  --text-heading-24: 24px;\n  --text-heading-24--line-height: 32px;\n  --text-heading-24--letter-spacing: -0.96px;\n  --text-heading-24--font-weight: 600;\n  --text-heading-30: 30px;\n  --text-heading-30--line-height: 36px;\n  --text-heading-30--letter-spacing: -0.75px;\n  --text-heading-30--font-weight: 500;\n  --text-label-12: 12px;\n  --text-label-12--line-height: 16px;\n  --text-label-13: 13px;\n  --text-label-13--line-height: 18px;\n  --text-label-14: 14px;\n  --text-label-14--line-height: 20px;\n  --text-copy-13: 13px;\n  --text-copy-13--line-height: 18px;\n  --text-copy-14: 14px;\n  --text-copy-14--line-height: 20px;\n  --text-copy-15: 15px;\n  --text-copy-15--line-height: 22px;\n  --text-button-14: 14px;\n  --text-button-14--line-height: 20px;\n  --text-button-14--font-weight: 500;\n}\n\n@layer base {\n  * {\n    @apply border-border outline-ring/50;\n  }\n  html,\n  body {\n    @apply bg-background text-foreground font-sans;\n  }\n  body {\n    font-size: 15px;\n    line-height: 1.5;\n    -webkit-font-smoothing: antialiased;\n  }\n}\n\n/* Menus grow from where they were opened: 120 ms, just long enough to follow. */\n@keyframes dgit-menu-in {\n  from {\n    opacity: 0;\n    transform: scale(0.96);\n  }\n  to {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@utility animate-menu {\n  animation: dgit-menu-in 120ms ease-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n  .animate-menu {\n    animation: none;\n  }\n}\n",
      "type": "registry:file",
      "target": "app/dgit.css"
    }
  ],
  "type": "registry:file"
}