Heading
ImplementedPolymorphic heading component H1-H6.
components/atoms/Heading/Heading.tsxSemantic heading atom for page and section titles, with independent control over the rendered level and visual size.
Heading
Typography atom — Family 1
Renders an h1 through h6 by default. Use size when the visual scale should differ from the document outline, and use as only when the rendered tag needs to differ from the semantic level.
Event dashboard
Upcoming events
Featured event
This component supports light and dark mode.
Usage
Choose level from the page outline first. Use size when a heading needs a different visual scale without changing the document hierarchy. Keep heading levels sequential for screen-reader users.
import { Heading } from '@epasslive/design-system'
<Heading level={1}>Events</Heading>
<Heading level={2} id="upcoming">Upcoming events</Heading>
<Heading level={3} size="display">Summer festival</Heading>Dark mode
Heading text uses the theme-aware text-ep-text-heading token and adapts automatically when the surrounding design-system theme switches to dark mode.
Props
level1 | 2 | 3 | 4 | 5 | 62Semantic heading level and default visual scale.
size1 | 2 | 3 | 4 | 5 | 6 | 'display'Visual scale token; defaults to the level.
as1 | 2 | 3 | 4 | 5 | 6Override the rendered heading tag while preserving the component styling.
children*React.ReactNodeHeading content.
classNamestringAdditional classes appended to the component classes.
idstringOptional id for in-page navigation and accessible labelling.
Props
Heading
levelHeadingLevel /** Visual scale token. Defaults to the rendered level (`as ?? level`). */2Synced from source — no interface JSDoc yet; document on `Heading.tsx`.
sizeHeadingLevel | 'display' /** Override the rendered element. Still a real <h1>-<h6>, so heading * semantics come from the element itself — there are no class-based * semantics. Visual scale follows `as` unless `size` is passed. */—Visual size preset.
<Heading />Usage
Import
import { Heading } from "@epasslive/design-system"Example 1
<Heading />Example 2
<Heading variant="default" />Anti-patterns
— Do not compose atoms directly — use molecules instead
— Avoid inline styles on atoms