Redpanda UIRedpanda UI
Components

Typography

Comprehensive typography system with headings, text variants, labels, numbers, and more

Made by shadcn

Installation

Loading component...

Usage

Apply type styles with text-* utility classes. Each class carries the full style — size, line-height, weight and tracking — on its own, and works on any element. This is the recommended approach.

<h1 className="text-heading-xl">Page title</h1>
<p className="text-lead">Intro paragraph under the title.</p>
<p className="text-body">Body copy for the page.</p>
<td className="text-caption">PARTITION</td>
<span className="text-body tabular-nums">1,284,905</span>

Type Scale

Every style is a single text-* utility. Compose freely with color, alignment, and other utilities.

Loading component...
UtilityStyleSize · line-heightWeight
text-heading-xltext-heading-xsHeadings (InterDisplay)24 → 14px · leading-tight500
text-leadLead / intro paragraph18px · leading-normal400
text-bodyBody / paragraph (default)14px · leading-normal400
text-labelForm & UI labels14px · leading-snug500
text-body-smSmall / helper text12px · leading-snug400
text-captionCaption / meta10px · leading-snug400

Line-heights use Tailwind's leading scale — leading-tight (1.25), leading-snug (1.375), leading-normal (1.5) — so they read as intentional steps, not magic numbers.

Each token bundles the type identity — size, line-height and tracking. Weight and color stay composable: for emphasis use text-body font-medium, and for muted text text-body text-muted-foreground, rather than dedicated tokens. For a raw size with no weight or tracking, use Tailwind's own scale (text-xstext-5xl), including text-2xs (10px) for dense tables and meta rows. For aligned numeric columns, compose tabular-nums onto any text style (e.g. text-body tabular-nums).

Other Elements

Structural and inline elements that pair with the type scale.

Loading component...
Loading component...
Loading component...
Loading component...
Loading component...
Loading component...
Loading component...
Loading component...
Loading component...

Choosing the Right Approach

  1. Any text style → apply the matching text-* utility to your element (recommended)
  2. Raw size only, no weight or tracking → Tailwind's text-xstext-5xl (or text-2xs for 10px)
  3. Numerical data → your text style + tabular-nums for aligned figures (e.g. text-body tabular-nums)
  4. Muted / secondary texttext-body text-muted-foreground
  5. Existing code using the deprecated <Heading> or <Text> → keeps working; migrate to the utilities

In Context

Semantic HTML elements styled with the text-* utilities, composed into a realistic document.

Loading component...

Deprecated

Recent changes

  • patchv1.2.0Pin shipped dependency floors to the version we develop against. Registry items now declare ranges like `^5.1.9` (the actual installed version) instead of collapsing to `^5.0.0`, so consumers start on the known-tested baseline while caret semantics still allow any compatible release within the same major.#133
  • minorv1.1.0Theme docs refresh, readability pass on semantic foregrounds, and consumer-facing Base UI regression fixes.#121
  • minorv1.0.0Post-Base-UI polish. Public API unchanged.#116
  • majorv1.0.0Migrate every Radix-based primitive to `@base-ui/react@^1.4.0` (Base UI).#114
  • minorv0.3.0Add theme-provider component to the registry with documentation and tests. Includes playground type improvements (export RegistryItem, remove as-const boilerplate) and docs site dark mode border color fix.#109
See full history →
Built by malinskibeniamin. The source code is available on GitHub.

On this page