Default Box
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Three HSL palettes — primary, secondary, and neutral — each with five light variants, a base value, and five dark variants.
Primary
l-6
l-5
l-4
l-3
l-2
l-1
base
d-1
d-2
d-3
d-4
d-5
d-6
Transparency Variants
t-1
t-2
t-3
t-4
t-5
t-6
t-7
t-8
t-9
t-10
t-11
Secondary
l-6
l-5
l-4
l-3
l-2
l-1
base
d-1
d-2
d-3
d-4
d-5
d-6
Transparency Variants
t-1
t-2
t-3
t-4
t-5
t-6
t-7
t-8
t-9
t-10
t-11
Neutral
l-6
l-5
l-4
l-3
l-2
l-1
base
d-1
d-2
d-3
d-4
d-5
d-6
Transparency Variants
t-1
t-2
t-3
t-4
t-5
t-6
t-7
t-8
t-9
t-10
t-11
Near-black and near-white tokens with full transparency scales.
Base Values
--color-white
--color-black
White Transparency
t-5
t-10
t-20
t-30
t-40
t-50
t-60
t-70
t-80
t-90
t-95
Black Transparency
t-1
t-2
t-3
t-4
t-5
t-6
t-7
t-8
t-9
t-10
t-11
Semantic status colours in OKLCH. Each has a matching -surface variant for background use.
Status Base & Surface
--color-success
--color-success-surface
--color-danger
--color-danger-surface
--color-warning
--color-warning-surface
--color-info
--color-info-surface
Role-based aliases that map to palette primitives — the tokens you use in production. They resolve correctly in light and dark modes.
Surfaces
Layered surface hierarchy for cards, panels, modals, and backgrounds.
--color-surface-sunken
--color-surface
--color-surface-raised
--color-surface-overlay
Backgrounds
Page-level and themed backgrounds. Use --color-bg for the default page background.
--color-bg
--color-bg-alt
--color-bg-light
--color-bg-dark
--color-bg-primary
--color-bg-secondary
--color-bg-neutral
Foreground & Text
Text and heading colours. --color-text is the default body colour.
--color-heading
--color-text
--color-text-muted
--color-text-inverted
Borders
Border colours.
--color-border
--color-border-muted
Interactive
Links, buttons, and interactive element colours.
--color-interactive
--color-interactive-hover
--color-interactive-text
Shadow Colours
Tints used by the shadow scale.
--color-shadow
--color-shadow-strong
Three family tokens. --font-family defaults to --font-sans and is applied to the body.
Sans --font-sans
The quick brown fox jumps over the lazy dog.
Serif --font-serif
The quick brown fox jumps over the lazy dog.
Mono --font-mono
The quick brown fox jumps over the lazy dog.
Eight steps from --text-size-xs to --text-size-4xl, fluid to the viewport via Utopia clamp().
--text-size-xs · step −2
The quick brown fox jumps over the lazy dog
--text-size-sm · step −1
The quick brown fox jumps over the lazy dog
--text-size-md · step 0
The quick brown fox jumps over the lazy dog
--text-size-lg · step 1
The quick brown fox jumps over the lazy dog
--text-size-xl · step 2
The quick brown fox jumps over the lazy dog
--text-size-2xl · step 3
The quick brown fox jumps over the lazy dog
--text-size-3xl · step 4
The quick brown fox jumps over the lazy dog
--text-size-4xl · step 5
The quick brown fox jumps over the lazy dog
.fluid-text-containerThe same --text-size-* aliases, but inside a .fluid-text-container they re-point to --fl-step-* and size against the container width (cqi) instead of the viewport. Drag the right edge to resize.
--text-size-xs · fl-step −2
The quick brown fox jumps over the lazy dog
--text-size-sm · fl-step −1
The quick brown fox jumps over the lazy dog
--text-size-md · fl-step 0
The quick brown fox jumps over the lazy dog
--text-size-lg · fl-step 1
The quick brown fox jumps over the lazy dog
--text-size-xl · fl-step 2
The quick brown fox jumps over the lazy dog
--text-size-2xl · fl-step 3
The quick brown fox jumps over the lazy dog
--text-size-3xl · fl-step 4
The quick brown fox jumps over the lazy dog
--text-size-4xl · fl-step 5
The quick brown fox jumps over the lazy dog
↔ Drag the right edge to resize the container
Applied directly to h1–h6 via the base layer.
--heading-size-1
--heading-size-2
--heading-size-3
--heading-size-4
--heading-size-5
--heading-size-6
Seven weight tokens from light to black. --font-weight defaults to --font-weight-regular (400).
--font-weight-light · 300
The quick brown fox jumps over the lazy dog.
--font-weight-regular · 400
The quick brown fox jumps over the lazy dog.
--font-weight-medium · 500
The quick brown fox jumps over the lazy dog.
--font-weight-semibold · 600
The quick brown fox jumps over the lazy dog.
--font-weight-bold · 700
The quick brown fox jumps over the lazy dog.
--font-weight-extrabold · 800
The quick brown fox jumps over the lazy dog.
--font-weight-black · 900
The quick brown fox jumps over the lazy dog.
Five line-height tokens. --line-height defaults to --line-height-base (1.5).
--line-height-none · 1
This text demonstrates the line-height token — adjust the leading between wrapped lines of body copy.
--line-height-tight · 1.25
This text demonstrates the line-height token — adjust the leading between wrapped lines of body copy.
--line-height-base · 1.5
This text demonstrates the line-height token — adjust the leading between wrapped lines of body copy.
--line-height-relaxed · 1.625
This text demonstrates the line-height token — adjust the leading between wrapped lines of body copy.
--line-height-loose · 2
This text demonstrates the line-height token — adjust the leading between wrapped lines of body copy.
Five tracking tokens from --letter-spacing-tighter to --letter-spacing-wider.
--letter-spacing-tighter · −0.05ch
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
--letter-spacing-tight · −0.025ch
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
--letter-spacing-normal · 0ch
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
--letter-spacing-wide · 0.16ch
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
--letter-spacing-wider · 0.22ch
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
Character-based width constraints. --prose-width defaults to --prose-width-base (60ch).
--prose-width-narrow · 45ch
--prose-width-base · 60ch
--prose-width-wide · 80ch
--prose-width-max · 100ch
Seven radius steps from --radius-none (0) to --radius-full (100vw pill).
Steps
none
0
xs
0.25rem
sm
0.5rem
md
0.75rem
lg
1rem
xl
1.5rem
full
100vw
Five elevation levels using --color-shadow and --color-shadow-strong for consistent tinting.
Levels
--shadow-xs
--shadow-sm
--shadow-md
--shadow-lg
--shadow-xl
Scale
Nine fluid steps from --space-3xs to --space-3xl, generated with clamp() to scale smoothly between viewport breakpoints. --space aliases --space-md.
--space-3xs
--space-2xs
--space-xs
--space-sm
--space-md
--space-lg
--space-xl
--space-2xl
--space-3xl
Pairs
One-up fluid jumps — each pair spans from one scale step to the next. Use for responsive gaps that grow more aggressively than single-step tokens.
--space-3xs-2xs
--space-2xs-xs
--space-xs-sm
--space-sm-md
--space-md-lg
--space-lg-xl
--space-xl-2xl
--space-2xl-3xl
Aliases
Semantic gap tokens for common layout contexts. --gap-content defaults to --gap-content-md; --gap-container is for large section-level spacing.
--gap-content-sm
--gap-content-md
--gap-content-lg
--gap-container
Inline-flex button with a full custom-property API for colour, border, radius, icon, and transitions. Size via --button-* tokens.
Colour Variants
Outline
Ghost
Sizes
With Icons
Icon Only
Surface container with padding, background, border, radius, and shadow — all via --card-* custom properties.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Default image styles aspect-ratio, object-fit, radius, border, box-shadow — all via --image-* custom properties.

Surface container with padding, background, border, radius, and shadow — all via --card-* custom properties.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Uses framework surface, border, and shadow defaults.
Custom Card
Overridden with a primary-tint background and medium shadow.
Vertical navigation list with hover-row styling. Add .inline for a horizontal bar, .divided for separators.
Icon list with inline SVG markers. Add .divided for gradient-fade dividers between items.
Default
Divided
The native Bricks Slider (nested) element, Splide-powered. A .slider wrapper pastes with default options (3→2→1 per page, autoplay, drag) plus arrows and pagination — tune per-slider in Bricks. Assign arrow icons in Bricks.
Pure-CSS scroll-snap carousel — no JavaScript. Items snap to start on horizontal scroll. Set item width with --swiper-item-inline-size.
Horizontal
Scroll horizontally →
Scroll horizontally →
Scroll horizontally →
Scroll horizontally →
Scroll horizontally →
Vertical
Scroll vertically ↓
Scroll vertically ↓
Scroll vertically ↓
Scroll vertically ↓
Scroll vertically ↓
Native <details> / <summary> with animated open/close. The + marker rotates 45° on open.
Native
Accordion 1
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Accordion 2
A modern, token-driven CSS framework built on custom properties, cascade layers, and fluid typography.
Bricks accordion element
Bricks
Accordion 1
Lorem ipsum dolor ist amte, consectetuer adipiscing eilt. Aenean commodo ligula egget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quak felis, ultricies nec, pellentesque eu, pretium quid, sem.
Accordion 2
Lorem ipsum dolor ist amte, consectetuer adipiscing eilt. Aenean commodo ligula egget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quak felis, ultricies nec, pellentesque eu, pretium quid, sem.
Gravity Form styled with .form
"*" indicates required fields
Inline-flex pill for labels, tags, and status indicators.
Variants
Status
Left-border accent box for notices, tips, and alerts. Status modifiers set the border colour and surface automatically.
Status Variants
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Danger — errors, destructive actions, critical warnings.
Warning — cautions, deprecations, non-critical alerts.
Success — confirmations and completed actions.
Info — tips, notes, supplementary information.
Vertical flex column with configurable gap. Override with --stack-gap.
Horizontal wrapping flex row — tag groups, button bars, nav links.
Targets a column count with --grid-cols; wraps below --grid-min.
Like auto-cols but stretches remaining items to fill the row.
Two explicit columns; stacks at the threshold width.
Three equal columns; stacks at narrow widths.
Equal responsive columns via flex-basis calc. Target count with --flex-cols.
Two-column layout that stacks at a threshold. Proportions via --flex-first / --flex-second.
Full-width named-track grid. Children default to the content track; opt wider with .inset, .breakout, .full.
.full.breakout.content (default).insetCharacter-based max-width for optimal reading measure. Defaults to 60ch; modifiers set --prose-width.
Five duration steps from instant to slower. Bar width is illustrative.
--duration-instant · 0ms
--duration-fast · 200ms
--duration-normal · 300ms
--duration-slow · 400ms
--duration-slower · 500ms
Pre-composed transition shorthands — property + duration + easing in one token. Hover each.
--transition-color + --transition-bg
--transition-border
--transition-opacity
--transition-transform
--transition-shadow
--transition-filter
Six easing curves including linear() spring and bounce. Hover to compare.
--ease-linear
--ease-in
--ease-out
--ease-in-out
--ease-spring
--ease-bounce
Adds vertical spacing between direct children. .flow is content-level, .flow-prose is text-level (1em). Override with --flow-gap.
.flow
.flow-prose
First paragraph of text content.
Second paragraph — the gap is 1em, relative to font-size.
Second paragraph — the gap is 1em, relative to font-size.
.self-center sets margin-inline: auto; .self-end pushes to the inline end.
Sets aspect-ratio: var(--ratio). Use with any --ratio-* token.
square
1/1
widescreen
16/9
landscape
4/3
Fades content edges with a transparent gradient mask. Base masks all edges; modifiers target one side. Override --mask-amount (25%).
.has-mask
.has-mask.top
.has-mask.bottom
.has-mask.left
.has-mask.right
Layers a generated pattern over the background colour. Chain a preset onto .has-texture; override --texture-color / --texture-spacing.
.dots
.lines-horizontal
.grid
.halftone
Semantic background utilities mapping to --color-bg-* tokens.
.bg-alt
.bg-light
.bg-dark
.bg-primary
.bg-secondary
.bg-neutral
A real list keeps its semantics; .no-list or [role="list"] strips the bullets and indent while preserving the list role for screen readers (add role="list" so Safari/VoiceOver keep it).
Default list:
[role="list"] applied:
.text-balance evens lines; .text-pretty avoids orphans; .text-nowrap keeps one line.
.text-balance
Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat.
.text-pretty
Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat.
.text-nowrap
Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat.
External links (target="_blank") get an automatic ↗ arrow inside content areas (.brxe-post-content / .brxe-text). .is-plain is a container modifier — chain it on the content class (.brxe-post-content.is-plain) to suppress the arrow on all links within. .is-external is the explicit opt-in — put it on a link itself, or on a wrapper to give every a inside it the arrow.
Automatically applied to rich text
Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis.
.is-plain removes indicator
Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis.
.is-external adds indicator
Lorem ipsum dolor sit amet consectetur adipiscing elit sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam quis.
[hidden] is display: none; .visually-hidden hides visually but stays for screen readers (revealed on :focus-within).
[hidden] — removed from layout entirely.
.visually-hidden — Tab to reveal the skip link: