{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "prose",
  "title": "Prose",
  "author": "Alex Chih (https://alexchih.com)",
  "description": "Article typography with a stance — 1.85 CJK line-height, ruri for interactive marks, korozen for editorial ones. The ink layer of the system.",
  "registryDependencies": [
    "https://washiveil.alexchih.com/r/theme.json"
  ],
  "css": {
    ".prose": {
      "font-size": "1rem",
      "line-height": "1.85",
      "color": "var(--body)"
    },
    ".prose h2, .prose h3, .prose h4": {
      "scroll-margin-top": "6.5rem"
    },
    ".prose h1": {
      "margin": "0 0 1rem",
      "font-family": "var(--font-display)",
      "font-size": "2.25rem",
      "font-weight": "500",
      "letter-spacing": "-0.025em",
      "line-height": "1.2",
      "color": "var(--foreground)"
    },
    "[lang='ja'] .prose h1, [lang^='zh'] .prose h1": {
      "font-size": "2rem"
    },
    ".prose h2": {
      "margin-top": "2.5rem",
      "margin-bottom": "1rem",
      "font-family": "var(--font-display)",
      "font-size": "1.5rem",
      "font-weight": "500",
      "color": "var(--foreground)"
    },
    ".prose h3": {
      "margin-top": "2rem",
      "margin-bottom": "0.75rem",
      "font-family": "var(--font-display)",
      "font-size": "1.25rem",
      "font-weight": "500",
      "color": "var(--foreground)"
    },
    ".prose h4": {
      "margin-top": "1.5rem",
      "margin-bottom": "0.5rem",
      "font-size": "1rem",
      "font-weight": "600",
      "color": "var(--foreground)"
    },
    ".prose p": {
      "margin-top": "1rem",
      "margin-bottom": "1rem"
    },
    ".prose a": {
      "color": "var(--ruri)",
      "text-decoration": "underline",
      "text-underline-offset": "4px"
    },
    ".prose a:hover": {
      "color": "var(--deep)"
    },
    ".dark .prose a": {
      "color": "var(--ruri-soft)"
    },
    ".dark .prose a:hover": {
      "color": "var(--ruri-pale)"
    },
    ".prose strong": {
      "font-weight": "600",
      "color": "var(--foreground)"
    },
    ".prose blockquote": {
      "margin-top": "1.5rem",
      "margin-bottom": "1.5rem",
      "border-left": "2px solid var(--korozen)",
      "padding-left": "1.25rem",
      "font-family": "var(--font-display)",
      "font-size": "1.125rem"
    },
    ".dark .prose blockquote": {
      "border-left-color": "var(--korozen-soft)"
    },
    ".prose ul": {
      "margin-top": "1rem",
      "margin-bottom": "1rem",
      "list-style-type": "disc",
      "padding-left": "1.5rem"
    },
    ".prose ul > li + li": {
      "margin-top": "0.375rem"
    },
    ".prose ul li::marker": {
      "color": "var(--korozen)"
    },
    ".dark .prose ul li::marker": {
      "color": "var(--korozen-soft)"
    },
    ".prose ol": {
      "margin-top": "1rem",
      "margin-bottom": "1rem",
      "list-style-type": "decimal",
      "padding-left": "1.5rem"
    },
    ".prose ol > li + li": {
      "margin-top": "0.375rem"
    },
    ".prose ol li::marker": {
      "color": "var(--korozen)"
    },
    ".dark .prose ol li::marker": {
      "color": "var(--korozen-soft)"
    },
    ".prose :not(pre) > code": {
      "background": "color-mix(in srgb, var(--foreground) 6%, transparent)",
      "border-radius": "0.25rem",
      "padding": "0.125rem 0.375rem",
      "font-family": "var(--font-mono)",
      "font-size": "0.8125rem"
    },
    ".prose pre": {
      "margin": "1.5rem 0",
      "overflow-x": "auto",
      "border-radius": "0.75rem",
      "border": "1px solid var(--glass-edge)",
      "background-color": "var(--glass)",
      "-webkit-backdrop-filter": "blur(12px)",
      "backdrop-filter": "blur(12px)",
      "padding": "1.25rem",
      "font-family": "var(--font-mono)",
      "font-size": "0.8125rem",
      "line-height": "1.625",
      "font-weight": "450"
    },
    ".dark .prose pre": {
      "background-color": "var(--glass)",
      "color": "var(--code-ink)",
      "text-shadow": "0 1px 2px rgba(0, 0, 0, 0.4)"
    },
    ".prose hr": {
      "margin-top": "2rem",
      "margin-bottom": "2rem",
      "border-color": "color-mix(in srgb, var(--foreground) 10%, transparent)"
    },
    ".prose img": {
      "border-radius": "0.75rem"
    },
    ".prose table": {
      "margin-top": "1.5rem",
      "margin-bottom": "1.5rem",
      "width": "100%",
      "text-align": "left",
      "font-size": "0.875rem"
    },
    ".prose thead tr": {
      "border-bottom": "1px solid color-mix(in srgb, var(--foreground) 15%, transparent)",
      "font-family": "var(--font-mono)",
      "font-size": "0.75rem",
      "letter-spacing": "0.05em",
      "text-transform": "uppercase",
      "color": "var(--muted-foreground)"
    },
    ".dark .prose thead tr": {
      "border-bottom-color": "color-mix(in srgb, white 15%, transparent)",
      "color": "var(--muted-foreground)"
    },
    ".prose th, .prose td": {
      "padding": "0.5rem 1rem 0.5rem 0"
    },
    ".prose tbody tr": {
      "border-bottom": "1px solid color-mix(in srgb, var(--foreground) 8%, transparent)"
    },
    ".prose tbody tr:last-child": {
      "border-bottom": "0"
    },
    ".dark .prose tbody tr": {
      "border-bottom-color": "color-mix(in srgb, white 8%, transparent)"
    },
    ".dark .prose tbody tr:last-child": {
      "border-bottom": "0"
    },
    ".prose figure": {
      "margin-top": "1.5rem",
      "margin-bottom": "1.5rem"
    },
    ".prose figcaption": {
      "margin-top": "0.5rem",
      "text-align": "center",
      "font-family": "var(--font-mono)",
      "font-size": "0.75rem",
      "color": "var(--faint)"
    }
  },
  "docs": "Pairs with any Shiki/rehype highlighter — the pre/code shell is a veil-grain glass panel; token colors are yours. Prefer solid plates? Override background to var(--code-cream) / var(--code-panel). The demo uses shiki with vitesse-light/dark.",
  "type": "registry:item"
}