Skip to main content
BEEQ typography overview - light mode
Typography helps people scan, understand, and act on information. BEEQ uses a shared type system for hierarchy, comfortable reading, and consistent implementation across product interfaces. The system is built from a typeface, a size scale, line-height tokens, semantic text styles, and utility classes that let you adjust weight or link treatment when a design style needs it.

Typeface and themes

BEEQ’s default theme uses Outfit, an open-source typeface designed for clear interface text. Outfit is used for headings, body copy, captions, controls, and data-heavy product surfaces. The Endava theme uses Poppins through the same typography tokens. This keeps the implementation stable while allowing the visual identity to change by theme.
ThemeFont family tokenTypeface
BEEQ default--bq-font-familyOutfit
Endava--bq-font-familyPoppins
Use typography classes and tokens instead of hardcoded font values. The active theme resolves the font family for you.

Typography reset

BEEQ’s Tailwind preset includes an opinionated reset that makes typography predictable before you add any component or layout styles.
Reset behaviorWhat it does
html sets font-family and font-sizeThe page starts with the active theme font and a 16px base size.
body sets text color and line heightBody copy uses var(--bq-text--primary) and the regular 150% line height by default.
* removes margin and inherits font stylesBrowser spacing and font defaults are removed so BEEQ tokens control the rhythm.
Form controls inherit font stylesInputs, buttons, selects, and textareas use the same typography as the surrounding interface.
Paragraphs and headings wrap long wordsText is less likely to overflow narrow layouts.
This reset is why body text does not need a class. Use semantic typography selectors for display, headings, captions, and overlines, then add layout spacing intentionally with BEEQ spacing tokens.

Type scale

BEEQ’s type scale moves from large display text to compact supporting text. Larger styles use tighter line height to keep headings visually grouped, while body, caption, and overline styles use a more open line height for readability.
StyleSelectorSize tokenValueLine height
Display.display--bq-font-size--xxl564px--bq-font-line-height--small / 120%
H1h1, .h1--bq-font-size--xxl456px--bq-font-line-height--small / 120%
H2h2, .h2--bq-font-size--xxl348px--bq-font-line-height--small / 120%
H3h3, .h3--bq-font-size--xxl240px--bq-font-line-height--small / 120%
H4h4, .h4--bq-font-size--xxl32px--bq-font-line-height--small / 120%
H5h5, .h5--bq-font-size--xl24px--bq-font-line-height--regular / 150%
H6h6, .h6--bq-font-size--l18px--bq-font-line-height--regular / 150%
Bodydefault text--bq-font-size--m16px--bq-font-line-height--regular / 150%
Captionfigcaption, .caption--bq-font-size--s14px--bq-font-line-height--regular / 150%
Overline.overline--bq-font-size--xs12px--bq-font-line-height--regular / 150%

Text styles

Display

Display text is the largest style in the system. Use it for short, high-impact messages, marketing moments, editorial layouts, or large numerals where the text needs strong visual presence.

Headings

Headings create structure and help readers scan. Use native heading elements for document structure, and use visual heading classes when the visual size needs to differ from the semantic level.

Body

Body text is the default reading style. Use it for paragraphs, descriptions, helper copy, instructions, empty states, and most product content.

Caption

Caption text supports nearby content. Use it for timestamps, metadata, image captions, short helper details, and lower-emphasis information.

Overline

Overline text labels a section before the main heading. Use it for short category labels, context markers, or eyebrow text above a title.

Using typography in code

BEEQ applies body typography globally through its base styles. For headings, use native heading tags when they match the document structure. Use BEEQ’s visual classes when the visual hierarchy and semantic hierarchy need to be different. Weight modifiers can be applied to BEEQ’s semantic text styles. The typography implementation intentionally supports .semibold and .bold on display, heading, caption, and overline styles.

Design text styles in code

Design tools may name text styles as combinations such as body-medium, caption-link-regular, or h1-bold. In code, these styles are composed from BEEQ’s semantic type styles plus intentional weight and link treatment. medium styles in design use a 500 font weight, but BEEQ’s semantic typography selectors do not define a .medium modifier. Use the medium weight token only when you need to match a design text style exactly. For standard BEEQ typography modifiers, use .semibold or .bold. For exact medium-weight matches, apply font-weight: var(--bq-font-weight--medium) in a scoped class for that specific use case. Use .bq-link for BEEQ-styled links. It applies brand color, focus styling, and an animated underline that matches the design system.
Design styleCode compositionNotes
display-regulardisplayLargest display style with regular weight.
display-mediumdisplay + medium weight tokenDesign style only; no dedicated .medium typography modifier.
display-bolddisplay boldUse sparingly for strong visual impact.
h1-regularh1 or .h1Native h1 applies the same visual style.
h1-mediumh1 or .h1 + medium weight tokenDesign style only; no dedicated .medium typography modifier.
h1-boldh1 bold or .h1 boldUse for high-emphasis headings.
body-regularbody default or text-m leading-regularBody text is the default page text style.
body-mediumbody default + medium weight tokenDesign style only; body does not have a semantic .medium modifier.
body-boldbody default + bold weight tokenUse for strong emphasis inside body copy.
body-link-regularbq-linkBrand-colored link treatment with animated underline.
body-link-mediumbq-link + medium weight tokenDesign style only; use when the design requires 500.
body-link-boldbq-link + bold weight tokenReserve for high-priority links.
caption-regularcaptionSupporting text and metadata.
caption-mediumcaption + medium weight tokenDesign style only; no dedicated .medium typography modifier.
caption-boldcaption boldCompact text with strong emphasis.
caption-link-regularcaption bq-linkSupporting link text with BEEQ link styling.
caption-link-mediumcaption bq-link + medium weight tokenDesign style only; use when the design requires 500.
caption-link-boldcaption bq-link boldSupporting link text with strong emphasis.
overline-regularoverlineShort section labels.
overline-mediumoverline + medium weight tokenDesign style only; no dedicated .medium typography modifier.
overline-boldoverline boldSection labels with strong emphasis.
Treat design text-style names as recipes. The implementation starts with BEEQ’s semantic typography selectors, then adds the exact weight or link treatment only when the design requires it.

Hierarchy, line height, and line length

Typography creates hierarchy through size, weight, placement, and color. A larger style can introduce a new section, a heavier weight can highlight a key value, and supporting text can step back with a smaller size or lower-emphasis color.
Typography hierarchy - light mode
Line height keeps text legible. BEEQ uses 120% for display and larger headings because they need tighter grouping, and 150% for smaller headings, body, captions, and overlines because they need more reading space.
Line height - light mode
Line length affects how easily readers move from one line to the next. Aim for 50-90 characters per line for long-form text, including spaces.
Line length - light mode

Usage guidelines

Use the defined type scale instead of one-off font sizes. Custom sizes can weaken hierarchy, create uneven rhythm, and make product screens harder to maintain.
Use native heading elements in document order. Apply visual classes like .h1 or .h2 only when the visual size needs to differ from the semantic level.
Start with the regular weight provided by the semantic style. Use .semibold or .bold when emphasis helps users scan or compare information.
Use body text for paragraphs, keep long lines around 50-90 characters, and avoid center alignment for content that wraps across several lines.
Use text color tokens to reinforce hierarchy and status, but do not rely on color as the only signal. Check contrast when text appears on custom backgrounds.
Let text wrap when possible, especially labels, titles, and critical content. Use truncation only when space is constrained and the full value is available elsewhere.

Accessibility

Typography accessibility depends on readable sizes, sufficient contrast, meaningful structure, and content that remains understandable when layouts change.
  • Use semantic headings in order. There should be one main page h1, followed by nested heading levels that match the content structure.
  • Keep paragraphs readable with comfortable line length, enough line height, and left alignment for left-to-right languages.
  • Do not use color as the only way to communicate importance, status, or errors.
  • Avoid all-caps text for long labels or paragraphs because it slows reading.
  • Let text wrap when possible. If truncation is necessary, make the full text available through the surrounding experience.
  • Test content at small and large viewport widths so typography still supports scanning and comprehension.

Resources

Global CSS variables

Review the font family, size, weight, and line-height custom properties used by BEEQ themes.

Tailwind typography source

See the source that defines BEEQ’s semantic typography selectors.