Recipes / Text Block
Text Block
<TextBlock />StableCanonical heading + body pair. Two variants — md (14 px semibold heading · 14 px body) and lg (20 px semibold heading · 14 px body). Set iconName + iconTone to drop in a soft tonal icon square (same tone palette as Badge), with iconPlacement choosing left or top. Drop a Badge inside the heading slot for an inline tag. CTAs are NOT part of the recipe — compose buttons at the call site.
Explorer
Edit any prop in the inspector — preview and code update together. Hover any color for hex + token.
Variant
Align
Eyebrow
Body
Icon
Icon tone
Heading badge
Content
Marcus ReedSigned
2,847 yards · 24 TDs across six straight wins.
<TextBlock variant="md" iconName="Trophy" iconTone="success" iconPlacement="left"><TextBlockHeading>Marcus Reed<Badge tone="success" appearance="soft" size="xs">Signed</Badge></TextBlockHeading><TextBlockBody>2,847 yards · 24 TDs across six straight wins.</TextBlockBody></TextBlock>
Inspector
Edit one prop at a time and see the token chain resolve. The preview re-renders, the code panel updates, and the resolves-to column shows every Tailwind class → CSS variable → final value.
TextBlock. Add it to app/_components/playground/registry.tsx.Composition
Marcus ReedSigned
QB · Class of 2027 · 2,847 yards · 24 TDs.
<div className="rounded-xl border border-border bg-card p-4"><TextBlockvariant="md"iconName="Trophy"iconTone="success"iconPlacement="left"><TextBlockHeading>Marcus Reed<Badge tone="success" appearance="soft" size="xs">Signed</Badge></TextBlockHeading><TextBlockBody>QB · Class of 2027 · 2,847 yards · 24 TDs.</TextBlockBody></TextBlock></div>
Source
The wrapper is a thin re-export; the actual styling lives in the shadcn primitive.