Typography

Headings for page structure

Use Heading to mirror your outline with semantic tags while tuning visual scale via displayLevel when marketing layouts need different sizing.

Heading level 1

Heading level 2

Heading level 3

Typography foundations

Explicit size, weight, leading and tracking override preset styling. Explicit weight also overrides the legacy bold prop. Existing defaults remain unchanged; fluid sizing is opt-in.

Fluid heading and text presets


A readable scale for every screen

Product update

Lead copy introduces a section with a relaxed, readable rhythm.

Caption copy supports the main content.

12,345.67

Variants showcase

Tone tokens align with dark shells across Zentauri previews—swap surfaces thoughtfully.

Tone: default

Tone: muted

Tone: primary

Tone: secondary

Tone: accent

Tone: destructive

Tone: info

Tone: success

Tone: warning

Tone: error

Tone: gradient-pink-violet

Tone: gradient-cyan-violet

Tone: gradient-cyan-blue

Tone: gradient-cyan-green

Tone: gradient-cyan-orange

Tone: gradient-cyan-red

Tone: gradient-cyan-purple

Tone: gradient-cyan-pink

Formatting showcase

Boolean emphasis props layer Tailwind utilities consistently.

Bold + italic

Underline + strike

Combination examples

Patterns you can paste into marketing pages and dashboards.

Hero-style heading combo

Typography variants examples

Density mirrors other previews: each row pairs live output with the matching import and JSX. Use Show output / Show code on every row; snippets start with Variant naming the token row.


Variant: HEADING · TONE · DEFAULT

Section title


Variant: HEADING · TONE · MUTED

Section title


Variant: HEADING · TONE · PRIMARY

Section title


Variant: HEADING · TONE · SECONDARY

Section title


Variant: HEADING · TONE · ACCENT

Section title


Variant: HEADING · TONE · DESTRUCTIVE

Section title


Variant: HEADING · TONE · INFO

Section title


Variant: HEADING · TONE · SUCCESS

Section title


Variant: HEADING · TONE · WARNING

Section title


Variant: HEADING · TONE · ERROR

Section title


Variant: HEADING · TONE · GRADIENT-PINK-VIOLET

Section title


Variant: HEADING · TONE · GRADIENT-CYAN-VIOLET

Section title


Variant: HEADING · TONE · GRADIENT-CYAN-BLUE

Section title


Variant: HEADING · TONE · GRADIENT-CYAN-GREEN

Section title


Variant: HEADING · TONE · GRADIENT-CYAN-ORANGE

Section title


Variant: HEADING · TONE · GRADIENT-CYAN-RED

Section title


Variant: HEADING · TONE · GRADIENT-CYAN-PURPLE

Section title


Variant: HEADING · TONE · GRADIENT-CYAN-PINK

Section title


Variant: HEADING · LEVEL · 1

Heading level 1


Variant: HEADING · LEVEL · 2

Heading level 2


Variant: HEADING · LEVEL · 3

Heading level 3


Variant: HEADING · LEVEL · 4

Heading level 4


Variant: HEADING · LEVEL · 5

Heading level 5

Variant: HEADING · LEVEL · 6

Heading level 6

Variant: HEADING · EMPHASIS · BOLD + UNDERLINE + PRIMARY

Callout title

Typography API

Generated from the package prop types and variant definitions.

Blockquote

BlockquoteProps

Variants

PropTypeDefault
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default

Behavior

PropTypeDefault
attributionAttribution label; distinct from the native cite URL attribute.string | undefinednone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLQuoteElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLQuoteElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

CodeBlock

CodeBlockProps

Variants

PropTypeDefault
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default

Behavior

PropTypeDefault
languagestring | undefinednone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLPreElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLPreElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

DescriptionList

DescriptionListProps

Variants

PropTypeDefault
layout
inlineresponsivestacked
responsive
separators
falsetrue
false
size
baselgsm
base
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLDListElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLDListElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

DescriptionListDetails

DescriptionListDetailsProps

Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

DescriptionListItem

DescriptionListItemProps

Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLDivElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLDivElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

DescriptionListTerm

DescriptionListTermProps

Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

Emphasis

EmphasisProps

Variants

PropTypeDefault
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

ExpandableText

ExpandableTextProps

Behavior

PropTypeDefault
buttonClassNamestring | undefinednone
contentClassNamestring | undefinednone
contentIdstring | undefinednone
defaultExpandedboolean | undefinednone
expandedboolean | undefinednone
lessLabelstring | undefinednone
linesnumber | undefinednone
moreLabelstring | undefinednone
onExpandedChange((expanded: boolean) => void) | undefinednone
showToggleAlways exposes the control when layout measurement is unavailable.'overflow' | 'always' | undefinednone
text*stringnone
Inherited HTML props
PropTypeDefault
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLDivElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLDivElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

FootnoteBacklink

FootnoteBacklinkProps

Behavior

PropTypeDefault
label*stringnone
noteId*stringnone
referenceId*stringnone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
downloadanynone
idstring | undefinednone
onClickMouseEventHandler<HTMLAnchorElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLAnchorElement> | undefinednone
referrerPolicyHTMLAttributeReferrerPolicy | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
targetHTMLAttributeAnchorTarget | undefinednone
titlestring | undefinednone

FootnoteItem

FootnoteItemProps

Behavior

PropTypeDefault
noteId*stringnone
number*numbernone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
onClickMouseEventHandler<HTMLLIElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLLIElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

FootnoteReference

FootnoteReferenceProps

Behavior

PropTypeDefault
noteId*stringnone
number*numbernone
referenceId*stringnone
Inherited HTML props
PropTypeDefault
classNamestring | undefinednone
downloadanynone
onClickMouseEventHandler<HTMLAnchorElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLAnchorElement> | undefinednone
referrerPolicyHTMLAttributeReferrerPolicy | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
targetHTMLAttributeAnchorTarget | undefinednone
titlestring | undefinednone

Footnotes

FootnotesProps

Behavior

PropTypeDefault
scopeIdstring | undefinednone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLDivElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLDivElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

FootnotesList

FootnotesListProps

Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLOListElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLOListElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

Heading

HeadingProps

Variants

PropTypeDefault
align
centerendjustifystart
none
leading
normalrelaxedtight
none
level*
123456
none
measure
nonereadablewide
none
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default
tracking
normaltightwide
none
weight
boldmediumnormalsemibold
none
wrap
balancenormalnowrappretty
none

Behavior

PropTypeDefault
boldExplicit weight takes precedence over bold.boolean | undefinednone
displayLevelVisual scale; defaults to level. Does not change the semantic heading tag.HeadingLevel | undefinednone
displaySizeMarketing display size. Takes precedence over displayLevel.NonNullable<'md' | 'sm' | 'lg' | null | undefined> | undefinednone
italicboolean | undefinednone
scaleFluid sizing is opt-in; default retains the existing responsive scale.'default' | 'fluid' | undefinednone
strikethroughboolean | undefinednone
underlineboolean | undefinednone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLHeadingElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLHeadingElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

HighlightText

HighlightTextProps

Behavior

PropTypeDefault
caseSensitiveUnicode simple case folding, without locale or accent normalization.boolean | undefinednone
markClassNamestring | undefinednone
query*string | readonly string[]none
text*stringnone
Inherited HTML props
PropTypeDefault
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLSpanElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLSpanElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

InlineCode

InlineCodeProps

Variants

PropTypeDefault
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

List

ListProps

Variants

PropTypeDefault
marker
circlediscnone
disc
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default

Behavior

PropTypeDefault
orderedboolean | undefinednone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLOListElement> | MouseEventHandler<HTMLUListElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).((instance: HTMLUListElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLUListElement | null> | ((instance: HTMLOListElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLOListElement | null> | null | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

ListItem

ListItemProps

Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLLIElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLLIElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

Mark

MarkProps

Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

NumberText

NumberTextProps

Variants

PropTypeDefault
align
centerendjustifystart
none
font
bodymono
none
leading
normalrelaxedtight
none
measure
nonereadablewide
none
numeric
normaltabular
tabular
size
baselgsmxlxs
base
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default
tracking
normaltightwide
none
weight
boldmediumnormalsemibold
none
wrap
balancenormalnowrappretty
none

State

PropTypeDefault
value*number | bigintnone

Behavior

PropTypeDefault
as'div' | 'p' | 'span' | undefinednone
formatOptionsIntl's style is separate from the native React CSS style prop.Intl.NumberFormatOptions | undefinednone
localestring | string[] | undefinednone
partClassNamesStyles native parts without replacing their text or order.Partial<Record<keyof Intl.NumberFormatPartTypeRegistry, string>> | undefinednone
Inherited HTML props
PropTypeDefault
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLDivElement> | MouseEventHandler<HTMLSpanElement> | MouseEventHandler<HTMLParagraphElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).((instance: HTMLDivElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLDivElement | null> | ((instance: HTMLSpanElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLSpanElement | null> | ((instance: HTMLParagraphElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLParagraphElement | null> | null | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

Prose

ProseProps

Variants

PropTypeDefault
measure
nonereadablewide
readable
size
baselgsm
base
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default

Behavior

PropTypeDefault
as'div' | 'article' | undefinednone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLDivElement> | MouseEventHandler<HTMLElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).((instance: HTMLDivElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLDivElement | null> | ((instance: HTMLElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLElement | null> | null | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

Small

SmallProps

Variants

PropTypeDefault
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

Strong

StrongProps

Variants

PropTypeDefault
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLElement> | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

Text

TextProps

Variants

PropTypeDefault
align
centerendjustifystart
none
font
bodymono
none
leading
normalrelaxedtight
none
measure
nonereadablewide
none
numeric
normaltabular
none
preset
bodycaptionleadoverline
body
size
baselgsmxlxs
base
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default
tracking
normaltightwide
none
underline
alwayshovernone
always
weight
boldmediumnormalsemibold
none
wrap
balancenormalnowrappretty
none

Behavior

PropTypeDefault
as'div' | 'label' | 'p' | 'span' | undefinednone
boldExplicit weight, then a preset's weight, take precedence over bold.boolean | undefinednone
highlightVisual highlighting only; use semantic emphasis for importance.boolean | undefinednone
italicboolean | undefinednone
strikethroughboolean | undefinednone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLDivElement> | MouseEventHandler<HTMLSpanElement> | MouseEventHandler<HTMLParagraphElement> | MouseEventHandler<HTMLLabelElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).((instance: HTMLDivElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLDivElement | null> | ((instance: HTMLSpanElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLSpanElement | null> | ((instance: HTMLParagraphElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLParagraphElement | null> | ((instance: HTMLLabelElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLLabelElement | null> | null | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

TextLink

TextLinkProps

Variants

PropTypeDefault
align
centerendjustifystart
none
leading
normalrelaxedtight
none
measure
nonereadablewide
none
size
baselgsmxlxs
base
tone
accentdefaultdestructiveerrorgradient-cyan-bluegradient-cyan-greengradient-cyan-orangegradient-cyan-pinkgradient-cyan-purplegradient-cyan-redgradient-cyan-violetgradient-pink-violet+6
default
tracking
normaltightwide
none
underline
alwayshovernone
always
weight
boldmediumnormalsemibold
none
wrap
balancenormalnowrappretty
none

Behavior

PropTypeDefault
externalIndicatorDecorative external-link marker; does not change target or accessible name.boolean | undefinednone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
downloadanynone
hrefstring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLAnchorElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).Ref<HTMLAnchorElement> | undefinednone
referrerPolicyHTMLAttributeReferrerPolicy | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
targetHTMLAttributeAnchorTarget | undefinednone
titlestring | undefinednone

TruncateText

TruncateTextProps

Behavior

PropTypeDefault
as'div' | 'p' | 'span' | undefinednone
linesnumber | undefinednone

Content

PropTypeDefault
children*stringnone
Inherited HTML props
PropTypeDefault
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLDivElement> | MouseEventHandler<HTMLSpanElement> | MouseEventHandler<HTMLParagraphElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).((instance: HTMLDivElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLDivElement | null> | ((instance: HTMLSpanElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLSpanElement | null> | ((instance: HTMLParagraphElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLParagraphElement | null> | null | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

VisuallyHidden

VisuallyHiddenProps

Behavior

PropTypeDefault
as'div' | 'span' | undefinednone
focusableReveal on focus-within, for example when containing a skip-link anchor.boolean | undefinednone
Inherited HTML props
PropTypeDefault
childrenReactNodenone
classNamestring | undefinednone
idstring | undefinednone
onClickMouseEventHandler<HTMLDivElement> | MouseEventHandler<HTMLSpanElement> | undefinednone
refAllows getting a ref to the component instance. Once the component unmounts, React will set `ref.current` to `null` (or call the ref with `null` if you passed a callback ref).((instance: HTMLDivElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLDivElement | null> | ((instance: HTMLSpanElement | null) => void | (() => VoidOrUndefinedOnly) | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLSpanElement | null> | null | undefinednone
relstring | undefinednone
styleCSSProperties | undefinednone
titlestring | undefinednone

What it does

Maps level 1–6 to native heading tags with shared tone and emphasis toggles.

scroll-m-20 aids anchor navigation without extra wrappers.

Composition and API

Combine tone with bold, italic, underline, or strikethrough when specs call for emphasis.

Avoid skipping heading ranks inside the same container.

Common use cases

  • Hero titles and section titles in docs.
  • Admin shells with predictable heading scale.
  • Landing pages that keep one clear h1.
  • Cards where visual size differs from outline rank.

Accessibility

Expose the correct level for screen reader outlines.

Do not style plain divs as headings—use the semantic tag.

Next.js integration notes

Import Heading from `@zentauri-ui/zentauri-components/ui/typography`.

Keep interactive playgrounds in client components only when needed.

FAQ

Can heading level differ from visual size?

Yes. Use displayLevel to adjust Tailwind scale classes while keeping the semantic tag from level.

Do headings include spacing presets?

Spacing is left to layout utilities; primitives stay predictable so page shells control rhythm.

Are tones accessible on dark backgrounds?

Defaults target slate surfaces used across Zentauri previews; verify contrast if you change surfaces.