Use cases
- All on-screen text within MiHCM products.
- Headings, body copy, captions, status messages.
- Anywhere you'd reach for
<p>,<span>, or a semantic heading and want consistent typography across web + native.
When NOT to use
- For layout-only spacing. Use container utilities and keep
Textfocused on readable content.
Type scale
| Size | Use case |
|---|---|
xs | Captions, fine print, table footers |
sm | Secondary copy, form helper text |
base | Default body text — 16px |
lg | Lead paragraphs, prominent body |
xl | Subheadings |
2xl | Section headings |
3xl | Page section openers |
4xl | Page titles |
5xl | Hero / display |
Body line-length is best between 45–75 characters. The component does not enforce this; your container's max-w-prose should.
Tone
| Tone | Use when |
|---|---|
default | Body, neutral content. |
muted | De-emphasized supporting copy. |
destructive | Error / alert / delete-confirm copy. |
success | Success messages, positive metrics. |
warning | Warnings — pair with an icon, never color-only. |
Tone is never the only signal. Pair destructive/warning text with an icon or label so colorblind users are not excluded.
Composition
- Use
as="h1"–as="h6"on web for semantic headings. On native, those values map toaccessibilityRole="header"unless you override it. - Use
as="p"for paragraphs and keep the defaultas="span"for inline text. - Use
className="max-w-prose"on the container to keep body text at a readable 45–75 character line length. - Combine
tone="muted"withsize="sm"for form helper text and captions.
<Text as="h2" size="3xl" weight="bold">
Team attendance
</Text>
<Text as="p" tone="muted">
View policy exceptions and approvals in one place.
</Text>