BodyText

3 variants. Open one in isolation: use the link on each card.

This is supporting copy outside the typography plugin. It should read clearly in Cooper at body sizes.

Description

Open alone →
A longer teaser that clamps after three lines so feed cards and list rows stay even when titles vary in length and authors paste more than fits. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
This is supporting copy outside the typography plugin. It should read clearly in Cooper at body sizes.

src/ui/0_atoms/BodyText.astro
---
/**
* Non-prose copy blocks (descriptions, asides). For Markdown article bodies, keep using `.prose`.
* Set `isMeta` for Source Code Pro (adds `font-mono font-normal`).
*/
interface Props {
variant?: 'default' | 'muted'
isMeta?: boolean
class?: string
label?: string
}
const { variant = 'default', isMeta = false, class: className, label } = Astro.props
const variantClass: Record<NonNullable<Props['variant']>, string> = {
default: 'text-ink leading-relaxed',
muted: 'text-ink-muted leading-relaxed',
}
---
<div class:list={[isMeta && 'font-mono font-normal', variantClass[variant], className]}>
<slot>{label}</slot>
</div>