apps/docs/content/docs/en/react/releases/v3-0-4.mdx
Patch release: new Typography compound component ported from HeroUI Pro, a docs theme selector for previewing components in different themes, min()-capped border-radius tokens across 45+ component CSS files, reworked Table focus rings, and fixes for Checkbox, Autocomplete, Tooltip, and form field padding.
Update to the latest version:
<Tabs items={["npm", "pnpm", "yarn", "bun"]}>
<Tab value="npm">
bash npm i @heroui/styles@latest @heroui/react@latest
</Tab>
<Tab value="pnpm">
bash pnpm add @heroui/styles@latest @heroui/react@latest
</Tab>
<Tab value="yarn">
bash yarn add @heroui/styles@latest @heroui/react@latest
</Tab>
<Tab value="bun">
bash bun add @heroui/styles@latest @heroui/react@latest
</Tab>
</Tabs>
New compound component for structured typography, ported from HeroUI Pro (#6479). Renders the right HTML element automatically — <h1>–<h6>, <p>, or <code> — based on the sub-component or type prop.
Sub-components: Typography.Heading, Typography.Paragraph, Typography.Code, Typography.Prose.
Props on all sub-components: align, color, weight, truncate. Typography.Heading accepts level (1–6). Typography.Paragraph accepts size ("base", "sm", "xs").
Wrap mixed content in Typography.Prose for automatic prose spacing:
<Typography.Prose>
<Typography.Heading level={3}>Getting Started</Typography.Heading>
<Typography.Paragraph>Install the package and import the component.</Typography.Paragraph>
</Typography.Prose>
The documentation site now includes a theme selector that lets you preview every component in different themes — light, dark, brutalism, and more. Your choice is saved to localStorage so it persists across sessions (#6471).
<VideoPlayer src="https://heroui-assets.nyc3.cdn.digitaloceanspaces.com/videos/heroui-oss-3.0.4-4k.mp4" muted />
All rounded-full and hardcoded border-radius values across ~45 component CSS files now use min() to cap the computed radius (#6465). Components no longer look broken when users set very large custom radius themes — the radius stops growing once it would exceed the element's dimensions.
Table row focus indicators are split across individual cells using per-cell inset shadows instead of a single box-shadow on the row. The ring now looks continuous across all cells and works correctly with virtualized table wrappers.
accent-hover background from selected/indeterminate indicator state (#6487)isDisabled now propagates from root to Trigger and ClearButton via context (#6443)px-2 py-1 to p-2 and switched border-radius to design token (#6481)accent-foreground values (#6401)accent-soft-foreground now uses a darker shade for light accent themes (Sky, Lavender, Mint), fixing barely-visible text on secondary buttons, chips, and badges. The shared theme now reads from --accent-soft-foreground with a fallback to --accentThanks to everyone who contributed to this release!
<PRContributors />