{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"prose","type":"registry:ui","title":"Prose","description":"Spacing, a readable measure and quiet links for long-form markup you do not control, such as a Markdown render, release notes or a legal page.","dependencies":["clsx","tailwind-merge"],"registryDependencies":["https://caliperui.site/r/styles.json"],"files":[{"path":"ui/lib/cn.ts","type":"registry:ui","target":"components/ui/lib/cn.ts","content":"import { clsx, type ClassValue } from \"clsx\";\nimport { extendTailwindMerge } from \"tailwind-merge\";\n\nconst twMerge = extendTailwindMerge({\n  extend: { theme: { radius: [\"control\", \"surface\", \"overlay\"], shadow: [\"overlay\"] } },\n});\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n"},{"path":"ui/prose.tsx","type":"registry:ui","target":"components/ui/prose.tsx","content":"import type { ComponentProps } from \"react\";\nimport { cn } from \"./lib/cn\";\nimport \"./prose.css\";\n\nexport type ProseProps = ComponentProps<\"div\"> & {\n  /** Product text is 14/22 for docs and release notes. Reading is 17/1.7 for long articles. */\n  size?: \"product\" | \"reading\";\n};\n\n/**\n * Styles long-form content you do not control the markup of: headings, paragraphs, lists,\n * quotes, links and inline code from a Markdown renderer or a CMS. It sets spacing and a\n * readable measure; links stay underlined so colour is never the only cue.\n */\nexport function Prose({ size = \"product\", className, ...props }: ProseProps) {\n  return <div data-slot=\"prose\" data-size={size} className={cn(className)} {...props} />;\n}\n"},{"path":"ui/prose.css","type":"registry:file","target":"components/ui/prose.css","content":"/* prose.tsx's styles; it imports this file. Edit freely. */\n@layer theme, base, components, utilities;\n\n@layer components {\n  /* Prose: spacing and a readable measure for markup you do not control. */\n  [data-slot=\"prose\"] { display: grid; gap: 16px; max-inline-size: 64ch; font-size: 14px; line-height: 22px; color: var(--foreground); }\n  [data-slot=\"prose\"][data-size=\"reading\"] { font-size: 17px; line-height: 1.7; color: color-mix(in srgb, var(--foreground) 86%, var(--muted-foreground)); }\n  [data-slot=\"prose\"] > * { margin: 0; }\n  [data-slot=\"prose\"] h1 { font-size: 28px; line-height: 1.15; font-weight: 600; letter-spacing: -0.03em; text-wrap: balance; }\n  [data-slot=\"prose\"] h2 { margin-block-start: 12px; font-size: 20px; line-height: 28px; font-weight: 600; letter-spacing: -0.02em; }\n  [data-slot=\"prose\"] h3 { margin-block-start: 8px; font-size: 16px; line-height: 24px; font-weight: 600; letter-spacing: -0.025em; }\n  [data-slot=\"prose\"] h4 { font-size: 14px; line-height: 20px; font-weight: 600; }\n  [data-slot=\"prose\"] a { color: var(--foreground); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }\n  [data-slot=\"prose\"] a:hover { text-decoration-thickness: 2px; }\n  [data-slot=\"prose\"] ul, [data-slot=\"prose\"] ol { display: grid; gap: 8px; padding-inline-start: 1.25em; }\n  [data-slot=\"prose\"] ul { list-style: disc; }\n  [data-slot=\"prose\"] ol { list-style: decimal; }\n  [data-slot=\"prose\"] li::marker { color: var(--muted-foreground); }\n  [data-slot=\"prose\"] blockquote { padding-inline-start: 16px; border-inline-start: 2px solid var(--border-strong); color: var(--muted-foreground); }\n  [data-slot=\"prose\"] code { padding: 1px 5px; border-radius: var(--radius-mark); background: var(--muted); font-family: var(--font-mono); font-size: 0.92em; }\n  [data-slot=\"prose\"] pre { overflow-x: auto; padding: 12px 16px; border-radius: var(--radius-surface); background: var(--muted); }\n  [data-slot=\"prose\"] pre code { padding: 0; background: none; }\n  [data-slot=\"prose\"] hr { height: 1px; border: 0; background: var(--border); }\n  [data-slot=\"prose\"] small { color: var(--muted-foreground); font-size: 12px; }\n}\n"}],"categories":["data"],"meta":{"tier":"free","license":"MIT","family":"records","docs":"/docs/components/prose"}}