Typography
A semantic typography primitive for headings, body copy, and inline code built on React Aria Components Text.
Usage
import {Typography} from "@heroui/react";Anatomy
Typography maps visual type values to semantic elements by default.
import {Typography} from "@heroui/react";
export default () => (
<Typography type="h1">Heading</Typography>
);Examples
Scale
Primitives
Typography.Headingmapslevel={1..6}totype="h1"throughtype="h6".Typography.Paragraphmapssize="base" | "sm" | "xs"to body text styles.Typography.Codemaps to the inline code style.Typography.Prosestyles rich content passed as regular HTML children.
Prose
Render Props
Use the React Aria Components-style render prop when you need to customize the rendered element.
Customization
Tailwind CSS
Global CSS
To customize the Typography component classes, you can use the @layer components directive. Learn more.
@layer components {
.typography--h1 {
@apply font-extrabold tracking-tight;
}
.typography--code {
@apply rounded-md bg-default-100 font-mono dark:bg-default-50/20;
}
}Styling Reference
HeroUI follows the BEM methodology to ensure component variants and states are reusable and easy to customize.
CSS Classes
The Typography component uses these CSS classes (View source styles):
Base Classes
.typography- Base typography primitive.typography-prose- Rich prose container
Type Classes
.typography--h1through.typography--h6.typography--body,.typography--body-sm,.typography--body-xs.typography--code
Modifier Classes
.typography--align-start,.typography--align-center,.typography--align-end,.typography--align-justify.typography--color-default,.typography--color-muted.typography--truncate.typography--weight-normal,.typography--weight-medium,.typography--weight-semibold,.typography--weight-bold
API Reference
Typography
| Prop | Type | Default | Description |
|---|---|---|---|
type | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body' | 'body-sm' | 'body-xs' | 'code' | 'body' | Semantic typography style. |
align | 'start' | 'center' | 'end' | 'justify' | 'start' | Text alignment. |
color | 'default' | 'muted' | 'default' | Text color. |
weight | 'normal' | 'medium' | 'semibold' | 'bold' | - | Font weight override. |
truncate | boolean | - | Truncates the text to one line with ellipsis. |
render | DOMRenderFunction | - | Custom render function from React Aria. |
children | ReactNode | - | Text content. |