Add .mp-prose to the element that wraps rendered Markdown or CMS HTML. Headings get Fraunces, body gets Instrument Sans, code gets the always-dark block treatment, and the line length is capped at --measure (65ch).
Every inner selector is wrapped in :where(), so the whole component has the specificity of one class — any rule you write wins.
When to use
- Blog posts, documentation pages, case studies: anything authored as Markdown or rich text where you don't control the markup.
When not to use
- Application UI. Use the specific components (
.mp-card, .mp-alert, …) instead — prose styles bare elements and would fight them.
Accessibility
- Keeps a 65-character measure and 1.6 line height for sustained reading (WCAG 1.4.8 guidance).
- Links stay underlined inside prose — color alone never marks a link.
- Code blocks that can scroll sideways need
tabindex="0" on the <pre> so keyboard users can scroll them (most Markdown renderers let you add it in a post-process step).