UI.MD

Prose

Styles the HTML a markdown renderer produces, so long-form content picks up the design system's type, spacing, and color.

Installation

$
npx shadcn@latest add https://ui.mattdowney.com/r/prose.json

Usage

import { Prose } from "@/components/ui/prose"

Examples

Default

Headings, paragraphs, inline code, a code block, a blockquote, a list, and a table, all styled from the tokens with no per-element classes.

Example

Paste a raw meeting transcript and get back a clean recap. The renderer turns markdown into HTML; Prose gives it the type, spacing, and color from your design system.

Alice: We decided to launch the beta on Friday.
Bob: The mobile app will be postponed to next quarter.
Carol: Priya will finalize the release notes by Thursday.
Dave: Sam will email beta testers by Friday.

Recap: the team agreed to launch the beta on Friday and to postpone the mobile app to next quarter. See the full thread for context.

Ship the smallest thing that proves the idea, then decide what is next.

Decisions

  • Launch beta on Friday
  • Mobile app postponed to next quarter

Action items

OwnerTaskDue
PriyaFinalize release notesThu
SamEmail beta testersFri

Inline formatting

Bold, italic, strikethrough, inline code, links, an ordered list, and a rule.

Inline formatting covers bold, italic, struck-through, inline code, and links. Ordered lists number themselves:

  1. Draft the recap
  2. Confirm the owners
  3. Send by end of day

A rule breaks one section from the next without adding a heading.

API Reference

PropTypeDefaultDescription
classNamestring-Merged onto the root. Pass max-w-none to drop the reading-measure cap, or override any element style.
children*ReactNode-The rendered HTML to style. Typically the output of a markdown renderer.