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.| Theme | Font family token | Typeface |
|---|---|---|
| BEEQ default | --bq-font-family | Outfit |
| Endava | --bq-font-family | Poppins |
Typography reset
BEEQ’s Tailwind preset includes an opinionated reset that makes typography predictable before you add any component or layout styles.| Reset behavior | What it does |
|---|---|
html sets font-family and font-size | The page starts with the active theme font and a 16px base size. |
body sets text color and line height | Body copy uses var(--bq-text--primary) and the regular 150% line height by default. |
* removes margin and inherits font styles | Browser spacing and font defaults are removed so BEEQ tokens control the rhythm. |
| Form controls inherit font styles | Inputs, buttons, selects, and textareas use the same typography as the surrounding interface. |
| Paragraphs and headings wrap long words | Text is less likely to overflow narrow layouts. |
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.| Style | Selector | Size token | Value | Line height |
|---|---|---|---|---|
| Display | .display | --bq-font-size--xxl5 | 64px | --bq-font-line-height--small / 120% |
| H1 | h1, .h1 | --bq-font-size--xxl4 | 56px | --bq-font-line-height--small / 120% |
| H2 | h2, .h2 | --bq-font-size--xxl3 | 48px | --bq-font-line-height--small / 120% |
| H3 | h3, .h3 | --bq-font-size--xxl2 | 40px | --bq-font-line-height--small / 120% |
| H4 | h4, .h4 | --bq-font-size--xxl | 32px | --bq-font-line-height--small / 120% |
| H5 | h5, .h5 | --bq-font-size--xl | 24px | --bq-font-line-height--regular / 150% |
| H6 | h6, .h6 | --bq-font-size--l | 18px | --bq-font-line-height--regular / 150% |
| Body | default text | --bq-font-size--m | 16px | --bq-font-line-height--regular / 150% |
| Caption | figcaption, .caption | --bq-font-size--s | 14px | --bq-font-line-height--regular / 150% |
| Overline | .overline | --bq-font-size--xs | 12px | --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 asbody-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 style | Code composition | Notes |
|---|---|---|
display-regular | display | Largest display style with regular weight. |
display-medium | display + medium weight token | Design style only; no dedicated .medium typography modifier. |
display-bold | display bold | Use sparingly for strong visual impact. |
h1-regular | h1 or .h1 | Native h1 applies the same visual style. |
h1-medium | h1 or .h1 + medium weight token | Design style only; no dedicated .medium typography modifier. |
h1-bold | h1 bold or .h1 bold | Use for high-emphasis headings. |
body-regular | body default or text-m leading-regular | Body text is the default page text style. |
body-medium | body default + medium weight token | Design style only; body does not have a semantic .medium modifier. |
body-bold | body default + bold weight token | Use for strong emphasis inside body copy. |
body-link-regular | bq-link | Brand-colored link treatment with animated underline. |
body-link-medium | bq-link + medium weight token | Design style only; use when the design requires 500. |
body-link-bold | bq-link + bold weight token | Reserve for high-priority links. |
caption-regular | caption | Supporting text and metadata. |
caption-medium | caption + medium weight token | Design style only; no dedicated .medium typography modifier. |
caption-bold | caption bold | Compact text with strong emphasis. |
caption-link-regular | caption bq-link | Supporting link text with BEEQ link styling. |
caption-link-medium | caption bq-link + medium weight token | Design style only; use when the design requires 500. |
caption-link-bold | caption bq-link bold | Supporting link text with strong emphasis. |
overline-regular | overline | Short section labels. |
overline-medium | overline + medium weight token | Design style only; no dedicated .medium typography modifier. |
overline-bold | overline bold | Section labels with strong emphasis. |
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.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.
Usage guidelines
Use the BEEQ type scale
Use the BEEQ type scale
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.
Keep structure semantic
Keep structure semantic
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.Use weight intentionally
Use weight intentionally
Start with the regular weight provided by the semantic style. Use
.semibold or .bold when emphasis helps users scan or compare information.Keep long text comfortable
Keep long text comfortable
Use body text for paragraphs, keep long lines around 50-90 characters, and avoid center alignment for content that wraps across several lines.
Use color as support
Use color as support
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.
Avoid unnecessary truncation
Avoid unnecessary truncation
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.