CSS Reference

Token names, default values, and modifier classes for every brio component. Generated from CSS source; run brio cssref to regenerate after changing component styles.

Alert

src/css/alert.css

TokenDefaultDescription
--alert-bgvar(--color-surface-raised)The background color for the alert
--alert-header-font-sizevar(--step-0)The font-size for the alert header
--alert-header-font-weightvar(--font-weight-bold)Font weight for the alert header
--alert-colorvar(--color-text)Text color for the alert body and header
--alert-bordervar(--color-border)Border color for the alert container
--alert-accentvar(--color-border-strong)Accent color used for the icon and left-border emphasis
--alert-padding-blockvar(--ui-pad-y-snug)Vertical padding inside the alert
--alert-padding-inlinevar(--ui-pad-x-snug)Horizontal padding inside the alert
--media-gapvar(--gap-snug)Gap between the icon figure and body content
SlotDescription
.media-figureIcon slot, colored by the active accent
ClassDescription
.alertcomponent root
.is-infoInfo color variant for primary-tone alerts
.is-successSuccess color variant
.is-warningWarning color variant
.is-dangerDanger color variant
.is-compactTighter padding and gap for dense layouts

Anchor

src/css/composition.css

TokenDefaultDescription
--anchor-offset-0.75emPosition offset for the overlay child
ClassDescription
.anchorcomponent root

Avatar

src/css/extras/avatar.css

TokenDefaultDescription
--avatar-size2.5remDiameter of the avatar disc
--avatar-radiusvar(--radius-pill)Corner radius of the avatar
--avatar-bgvar(--color-fill-strong)Background color for the avatar disc
--avatar-colorvar(--color-text-muted)Text and icon color inside the avatar
--avatar-status-sizecalc(var(--avatar-size) * 0.3)Diameter of the status indicator dot
--avatar-status-ringvar(--color-surface)Ring color around the status dot for background separation
ClassDescription
.avatarcomponent root
.is-smSmall size variant (1.75rem)
.is-lgLarge size variant (3.5rem)
.is-xlExtra-large size variant (5rem)
.as-squareSquare shape for entity or team avatars

Avatar Group

src/css/extras/avatar.css

TokenDefaultDescription
--avatar-group-offset-0.75remNegative inline margin for avatar overlap
--avatar-group-border2px solid var(--color-surface)Border between overlapping avatars for visual separation
ClassDescription
.avatar-groupcomponent root

Avatar Status

src/css/extras/avatar.css

ClassDescription
.avatar-statuscomponent root
.is-onlineOnline status, colored with success
.is-awayAway status, colored with warning
.is-busyBusy status, colored with danger
.is-offlineOffline status, colored with subtle text

Badge

src/css/badge.css

TokenDefaultDescription
--badge-bgvar(--color-primary-subtle)Background color for the badge
--badge-colorvar(--color-primary-text)Text color for the badge
--badge-bordervar(--color-primary-border)Border color for the badge
--badge-radiusvar(--radius-pill)Border radius, defaults to pill shape
--badge-paddingvar(--ui-pad-y-dense) var(--ui-pad-x-compact)Inner padding for the badge
--dismiss-paddingvar(--ui-pad-square-tight)Padding override for an embedded dismiss button
SlotDescription
.dismissEmbedded dismiss button with tighter padding
ClassDescription
.badgecomponent root
.is-neutralNeutral color variant with muted text
.is-accentAccent color variant
.is-dangerDanger color variant
.is-successSuccess color variant
.is-warningWarning color variant
.as-squareTag-style square corners instead of pill
.as-circleCircular shape for counts and step indicators

Box

src/css/composition.css

TokenDefaultDescription
--box-paddingvar(--space-mdInner padding for the box
ClassDescription
.boxcomponent root
.is-borderedAdds background, border, and radius to the box

Breadcrumb

src/css/extras/breadcrumb.css

TokenDefaultDescription
--breadcrumb-gapvar(--gap-tight)Gap between crumb items and their separators
--breadcrumb-font-sizevar(--ui-text-sm)Font size for breadcrumb text
--breadcrumb-separator"/"Content string used as the visual separator between crumbs
--breadcrumb-separator-colorvar(--color-text-subtle)Color of the separator character
--breadcrumb-item-max-inline-sizenoneMaximum width per crumb before text truncation engages
ClassDescription
.breadcrumbcomponent root
.is-condensedCollapses middle crumbs at narrow container widths

Brio Media

src/css/extras/brio-media.css

TokenDefaultDescription
--brio-media-bgvar(--color-surface)Background color for the host and controls bar
--brio-media-bordervar(--color-border-subtle)Border color for the host container
--brio-media-radiusvar(--radius-md)Corner radius for the host container
--brio-media-controls-colorvar(--color-text)Icon and text color for transport controls
--brio-media-controls-hovercolor-mix(in oklch, currentColor 10%, transparent)Hover background for transport buttons
--brio-media-time-colorvar(--color-text-muted)Color for the time display
--brio-media-track-h0.25remHeight of the range track for timeline and volume
--brio-media-track-bgvar(--color-fill)Background color for the unfilled portion of range tracks
--brio-media-track-fillvar(--color-primary)Color for the filled portion of range tracks
--brio-media-thumb-size0.875remDiameter of the range thumb
--brio-media-thumb-bgvar(--color-primary)Fill color for the range thumb
ClassDescription
brio-mediacomponent root

Brio Media Controls

src/css/extras/brio-media.css

TokenDefaultDescription
--brio-media-overlay-scrimoklch(0% 0 0 / 0.85)Scrim opacity at the bottom of the overlay gradient
--brio-media-overlay-fadeopacity var(--duration-normal) var(--ease-in-out)Show and hide opacity transition for overlay controls
--brio-media-overlay-play-size2.5remDiameter of the enlarged play button in overlay mode
SlotDescription
.brio-media-timeElapsed and total duration display
.brio-media-timelineTimeline scrubber range input
.brio-media-volumeVolume slider range input
ClassDescription
.brio-media-controlscomponent root

Button

src/css/button.css

TokenDefaultDescription
--button-bgvar(--color-primary)Background color for the button
--button-colorvar(--color-on-primary)Text and icon color for the button
--button-color-hovervar(--button-color)Text color on hover, defaults to --button-color
--button-bordertransparentBorder color for the button
--button-padding-blockvar(--ui-pad-y-tight)Vertical padding inside the button
--button-padding-inlinevar(--ui-pad-x-snug)Horizontal padding inside the button
--button-radiusvar(--radius-md)Border radius for the button
--button-font-sizevar(--ui-text-sm)Font size for button text
--button-font-weightvar(--font-weight-bold)Font weight for button text
--button-icon-sizevar(--icon-sizeSize of SVG icons inside the button
SlotDescription
svgIcons act as their own slot inside a button
ClassDescription
.buttoncomponent root
.[aria-busy="true"]Setting aria-busy=true will show the spinner indicator, and alter the cursor type.
.is-accentAccent color variant
.is-dangerDanger color variant
.is-neutralNeutral fill for chrome and quiet actions
.is-outlinedTransparent fill with tinted text and border
.is-ghostTransparent background with no border
.is-bareNo visual chrome, just a clickable wrapper
.is-smSmaller size with tighter padding
.is-lgLarger size with more padding
.as-iconSquare padding for icon-only buttons
.as-blockFull-width button

Button Group

src/css/button.css

ClassDescription
.button-groupcomponent root

Card

src/css/card.css

TokenDefaultDescription
--card-bgvar(--color-surface-raised)Background color for the card
--card-bordervar(--color-border)Border color for the card
--card-radiusvar(--radius-md)Border radius for the card corners
--card-padding-blockvar(--ui-pad-y-relaxed)Vertical padding inside the card
--card-padding-inlinevar(--ui-pad-x-relaxed)Horizontal padding inside the card
--card-shadowvar(--shadow-sm)Box shadow for the card
--card-gapvar(--gap-relaxed)Vertical spacing between card regions
--card-heading-sizevar(--step-1)Font size for the card heading
--card-content-font-sizeinheritFont size for the card body content
--card-media-radiusvar(--radius-md)Border radius for the first-child media figure
--card-media-heightautoFixed height for the media image or video
SlotDescription
> figure:first-childFull-bleed slot when figure is the first child
> footerThe footer slot is pushed to the bottom edge
ClassDescription
.cardcomponent root
.is-compactTighter padding, gap, and smaller heading
.is-flatNo shadow, border, or background
.is-interactiveHover shadow and stretched heading link for whole-card click
.is-featuredPrimary-colored thick border for emphasis

Card Grid

src/css/card.css

TokenDefaultDescription
--card-grid-min18rem), 1frMinimum column width for auto-fill columns
--card-grid-rows4Number of subgrid rows each card spans
ClassDescription
.card-gridcomponent root
.card-grid.is-alignedSubgrid row alignment across uniform cards

Center

src/css/composition.css

TokenDefaultDescription
--center-max65remMaximum content width
--center-guttervar(--ui-pad-x-relaxedInline padding that narrows the content area
ClassDescription
.centercomponent root

Clamp Text

src/css/extras/clamp-text.css

TokenDefaultDescription
--clamp-lines3Number of lines to display when clamped
--clamp-fade-heightcalc(0.5em * var(--clamp-lines))Height of the fade gradient at the bottom
--clamp-fade-colorvar(--color-surface, oklch(100% 0 0))Color of the fade gradient -- matches background by default
ClassDescription
.clamp-textcomponent root
.is-1-lineClamp to 1 line
.is-2-linesClamp to 2 lines
.is-3-linesClamp to 3 lines (default)
.is-4-linesClamp to 4 lines
.is-5-linesClamp to 5 lines
.is-responsiveResponsive clamping -- no default, meant to be customized

Cluster

src/css/composition.css

TokenDefaultDescription
--cluster-wrapwrapFlex wrap behavior for the cluster
--cluster-aligncenterCross-axis alignment for cluster items
--cluster-gapvar(--gap-snug)Gap between cluster items
ClassDescription
.clustercomponent root
.is-snugTighter gap between cluster items
.is-tightTightest gap between cluster items
.is-betweenSpace-between distribution with flex grow
.is-aroundSpace-evenly distribution with flex grow
.is-centerCenter-justified cluster items
.is-endEnd-justified cluster items

Code

src/css/code.css

TokenDefaultDescription
--code-bgvar(--color-fill)Background color for the code block
--code-bordervar(--color-border-subtle)Border color for the code block
--code-radiusvar(--radius-md)Border radius for the code block
--code-paddingvar(--space-md)Inner padding for the code block
--code-font-sizevar(--step--1)Font size for code text
ClassDescription
.codecomponent root

Code Header

src/css/code.css

TokenDefaultDescription
--code-header-bgvar(--color-surface)Background color for the header bar
--code-header-bordervar(--color-border-subtle)Border color for the header bar
--code-header-radiusvar(--radius-md)Border radius for the header bar
--code-header-font-sizevar(--ui-text-xs)Font size for the header label
ClassDescription
.code-headercomponent root
.is-accentPrimary-tinted header background and border
.is-filledSubtle fill that blends with the code block

Cover

src/css/composition.css

TokenDefaultDescription
--cover-min-height100vhMinimum height for the cover container
--cover-paddingvar(--space-mdInner padding for the cover container
ClassDescription
.covercomponent root

Details

src/css/details.css

TokenDefaultDescription
--details-bordervar(--border-width-default) solid var(--color-border)Border shorthand for the details container
--details-paddingvar(--ui-pad-y-snug) var(--ui-pad-x-snug)Inner padding for the details container
--details-chevron-size0.5emSize of the chevron indicator
--details-chevron-colorvar(--color-text-muted)Color of the chevron indicator
ClassDescription
.detailscomponent root
.no-borderRemoves the border entirely
.is-flushNo border with bottom-only rule, for use inside containers
.is-filledSubtle fill when closed, raised surface when open
.is-infoInfo callout color variant
.is-warningWarning callout color variant
.is-dangerDanger callout color variant
.is-successSuccess callout color variant

Dialog

src/css/dialog.css

TokenDefaultDescription
--dialog-bgvar(--color-surface-float)Background color for the dialog surface
--dialog-colorvar(--color-text)Text color inside the dialog
--dialog-max-width32remMaximum width of the dialog
--dialog-padding-xvar(--ui-pad-x-relaxed)Horizontal padding for header, body, and footer slots
--dialog-padding-yvar(--ui-pad-y-relaxed)Vertical padding for the body slot
--dialog-radiusvar(--radius-md)Border radius for the dialog
--dialog-bordervar(--border-width-default) solid var(--color-border)Outer border for the dialog
--dialog-header-bordervar(--border-width-default) solid var(--color-border)Separator border below the header
--dialog-footer-bordervar(--border-width-default) solid var(--color-border)Separator border above the footer
--dialog-title-sizevar(--ui-text-base)Font size for the dialog title heading
--dismiss-hover-bgvar(--color-fill-on-float)Hover background for the dismiss button inside the dialog
SlotDescription
.dismissDismiss button with hover tuned for the float surface
> header,A header slot starts with a <header> element
> :is(section, article),Body slots start with <section> or <article> elements
> footer,Footer slots start with a <footer> element
ClassDescription
.dialogcomponent root
.is-smNarrow dialog at 24rem max width
.is-lgWide dialog at 48rem max width
.is-fullNear-viewport-width dialog with scrollable body
.no-borderStrips all borders from the dialog and its slots
.is-dangerDanger-tinted dialog for destructive actions

Dismiss

src/css/dismiss.css

TokenDefaultDescription
--dismiss-colorvar(--color-text-muted)Icon color at rest
--dismiss-hover-colorvar(--color-text)Icon color on hover
--dismiss-hover-bgvar(--color-shadow)Background color on hover
--dismiss-paddingvar(--ui-pad-square-snug)Inner padding around the icon
--dismiss-size1emExplicit height and width of the button
ClassDescription
.dismisscomponent root

Divider

src/css/divider.css

TokenDefaultDescription
--divider-colorvar(--color-border)Line color for the divider
--divider-spacingvar(--space-md)Margin spacing around the divider
--divider-label-gapvar(--gap-relaxed)Gap between the label text and the lines
--divider-font-sizevar(--ui-text-sm)Font size for the label text
ClassDescription
.dividercomponent root
.as-verticalVertical orientation for use inside flex rows

Drawer

src/css/drawer.css

TokenDefaultDescription
--drawer-width18remWidth of the drawer panel
--drawer-bgvar(--color-surface)Background color for the panel
--drawer-bordervar(--border-width-default) solid var(--color-border)Outer border for the panel edge facing the page
--drawer-header-bordervar(--border-width-default) solid var(--color-border)Separator border below the header
--drawer-footer-bordervar(--border-width-default) solid var(--color-border)Separator border above the footer
--drawer-text-colorvar(--color-text)Text color inside the panel
--drawer-radiusvar(--radius-sm)Border radius on the panel's page-facing corners
--drawer-title-sizevar(--ui-text-base)Font size for the drawer title heading
SlotDescription
.drawer-panelVisible sliding container pinned to one edge
.drawer-panel > headerTitle row with bordered separator
.drawer-panel > :is(section, article)scrollable middle, grows to fill the panel column
.drawer-panel > footerright-aligned action row, pinned to the bottom
ClassDescription
.drawercomponent root
.is-closingAnimated close state applied by brio-drawer before dialog.close()
.is-endSlides from the end (right in LTR) instead of the start
.no-borderStrips all borders from the drawer and its slots
.is-smNarrow drawer at 14rem
.is-lgWide drawer at 24rem
.is-xlExtra-wide drawer at 32rem

Dropdown

src/css/dropdown.css

TokenDefaultDescription
--dropdown-min-width10remMinimum width of the menu panel
--dropdown-paddingvar(--ui-pad-square-tight)Inner padding for the menu panel
--dropdown-divider-bordervar(--border-width-default) solid var(--color-border)Border for separator rules between groups
--popover-padding-xvar(--dropdown-padding)Horizontal padding override for the popover surface
--popover-padding-yvar(--dropdown-padding)Vertical padding override for the popover surface
--popover-max-widthnoneMax-width override, uncapped for menus
--dropdown-item-padding-xvar(--ui-pad-x-tight)Horizontal padding for menu items
--dropdown-item-padding-yvar(--ui-pad-y-compact)Vertical padding for menu items
--dropdown-item-colorvar(--color-text)Text color for menu items
--dropdown-item-bg-hovervar(--color-fill-on-float)Background color on item hover
--dropdown-item-bg-currentvar(--color-state-bg-on-float)Background color for the current selection
--dropdown-item-border-hovervar(--color-fill-on-float)Focus outline color on item hover
--dropdown-item-radiusvar(--radius-md)Border radius for menu items
SlotDescription
.dropdown-itemClickable menu row, also matched by [role="menuitem"]
.dropdown-labelGroup header inside the menu
.dropdown :is(hr, [role="separator"])hr or any element with role="separator" acts as a menu separator
ClassDescription
.dropdowncomponent root
.is-endEnd-aligned placement for triggers near the inline-end edge
.is-dangerDestructive action with danger coloring

Dropzone

src/css/extras/brio-dropzone.css

TokenDefaultDescription
--dropzone-border-colorvar(--color-border-strong)Border color for the dropzone container
--dropzone-border-styledashedBorder style, dashed by default to signal a drop target
--dropzone-border-width2pxBorder width for the dropzone container
--dropzone-bgvar(--color-surface)Background color for the dropzone surface
--dropzone-colorvar(--color-text-muted)Text color for the dropzone prompt
--dropzone-icon-colorvar(--color-text-subtle)Color for SVG icons inside the dropzone
--dropzone-radiusvar(--radius-md)Corner radius for the dropzone
--dropzone-padding-xvar(--ui-pad-x-spacious)Horizontal padding inside the dropzone
--dropzone-padding-yvar(--ui-pad-y-spacious)Vertical padding inside the dropzone
--dropzone-gapvar(--gap-snug)Gap between stacked children inside the dropzone
--dropzone-font-sizevar(--ui-text-sm)Font size for the prompt and hint text
--dropzone-transitionborder-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out)Transition shorthand for state color changes
ClassDescription
.dropzonecomponent root
.is-dragoverActive drag state when a file is over the dropzone
.is-acceptedFiles validated and adopted successfully
.is-rejectedFiles rejected by the accept-pattern check

Flank

src/css/composition.css

TokenDefaultDescription
--flank-gapvar(--space-lgGap between the secondary and main columns
--flank-width20remFlex basis for the secondary column
--flank-content-min50%Minimum width before wrapping to single column
ClassDescription
.flankcomponent root
.is-reversedMain content first, secondary second

Flow

src/css/composition.css

TokenDefaultDescription
--flow-spacevar(--gap-spaciousVertical spacing between flow children
ClassDescription
.flowcomponent root

Frame

src/css/composition.css

TokenDefaultDescription
--frame-ratio16 / 9Aspect ratio for the frame
--frame-aligncenterVertical alignment of frame content
--frame-justifycenterHorizontal alignment of frame content
ClassDescription
.framecomponent root

Grid

src/css/composition.css

TokenDefaultDescription
--grid-min16rem), 1frMinimum column width for auto-fill columns
--grid-gapvar(--gap-spaciousGap between grid cells
ClassDescription
.gridcomponent root

Icon Box

src/css/icon.css

TokenDefaultDescription
--icon-box-size2.5remWidth and height of the box
--icon-box-bgvar(--color-surface-raised)Background color of the box
--icon-box-colorvar(--color-text)Icon color inside the box
--icon-box-radiusvar(--radius-md)Border radius of the box
ClassDescription
.icon-boxcomponent root
.is-smSmaller box at 2rem
.is-lgLarger box at 3rem
.is-primaryPrimary color variant
.is-successSuccess color variant
.is-warningWarning color variant
.is-dangerDanger color variant
.is-accentAccent color variant

Input

src/css/input.css

TokenDefaultDescription
--input-bordervar(--color-border-stronger)Border color shared across the input family
--input-radiusvar(--radius-md)Border radius shared across the input family
--input-bgvar(--color-surface)Background color shared across the input family
--input-focus-colorvar(--color-focus)Focus ring color shared across the input family
--input-transitionvar(--transition-fast)Transition speed shared across the input family
--input-height2.25remBlock height for text inputs and select
--input-paddingvar(--ui-pad-y-compact) var(--ui-pad-x-tight)Inner padding for text inputs and select
--input-font-sizevar(--ui-text-sm)Font size for text inputs and select
--input-line-heightvar(--leading-tight)Line height for text inputs and select
--input-chevron-colorvar(--color-text-muted)Color of the select dropdown chevron
--input-check-sizevar(--ui-text-base)Size of the checkbox or radio control
--input-check-accentvar(--color-primary)Accent color when checked
--input-check-colorvar(--color-on-primary)Tick or dot color when checked
--input-switch-track-width2.25remWidth of the switch track
--input-switch-track-height1.25remHeight of the switch track
--input-switch-thumb-offset2pxInset offset for the thumb from the track edge
--input-switch-thumb-sizecalc(var(--input-switch-track-height) - var(--input-switch-thumb-offset) * 2)Computed size of the switch thumb
--input-switch-track-offvar(--color-border-stronger)Track color in the off state
--input-switch-track-onvar(--input-check-accent)Track color in the on state
--input-switch-thumbvar(--color-surface-float)Thumb color
--input-range-track-h0.375remHeight of the range track
--input-range-track-bgvar(--color-fill)Background color of the range track
--input-range-track-radiusvar(--radius-pill)Border radius of the range track
--input-range-thumb-size1.125remSize of the range thumb
--input-range-thumb-bgvar(--color-primary)Background color of the range thumb
ClassDescription
.inputcomponent root
.is-smSmaller text input with tighter padding
.is-lgLarger text input with more padding

Input Group

src/css/input.css

SlotDescription
.input-addonLabel, icon, or unit addon inside an input group
ClassDescription
.input-groupcomponent root
.is-joinedClassic shaded-endcap look with per-child borders

Media

src/css/composition.css

TokenDefaultDescription
--media-alignflex-startCross-axis alignment for media children
--media-gapvar(--gap-relaxedGap between figure and text
ClassDescription
.mediacomponent root

Media Figure

src/css/composition.css

TokenDefaultDescription
--media-figure-start0.1remBlock-start margin to nudge the figure vertically
ClassDescription
.media-figurecomponent root

src/css/nav-link.css

TokenDefaultDescription
--nav-link-padding-yvar(--ui-pad-y-compact)Vertical padding
--nav-link-padding-xvar(--ui-pad-x-tight)Horizontal padding
--nav-link-font-sizevar(--ui-text-sm)Font size for the link
--nav-link-colorvar(--color-text)Text color at rest
--nav-link-color-activevar(--color-primary)Text color on hover and for the current page
ClassDescription
.nav-linkcomponent root

Navbar

src/css/navbar.css

TokenDefaultDescription
--navbar-bgvar(--color-surface)Background color for the navbar
--navbar-bordervar(--border-width-default) solid var(--color-border-subtle)Bottom border for the navbar
--navbar-paddingvar(--ui-pad-y-snug) var(--ui-pad-x-snug)Inner padding for the navbar
ClassDescription
.navbarcomponent root
.no-borderRemoves the bottom border

Pagination

src/css/extras/pagination.css

TokenDefaultDescription
--pagination-gapvar(--gap-tight)Gap between page number items
--pagination-item-size2.25remMinimum inline and block size for each page item
--pagination-radiusvar(--radius-sm)Corner radius for page items and directional links
--pagination-font-sizevar(--ui-text-sm)Font size for page numbers and labels
--pagination-item-bg-hovervar(--color-fill)Hover background for inactive page items
--pagination-item-active-bgvar(--color-state-bg)Background color for the current page indicator
--pagination-item-active-colorvar(--color-primary)Text color for the current page indicator
SlotDescription
.pagination-listOrdered list of page number items
.pagination-itemIndividual page number link or placeholder
.pagination-prev, .pagination-nextDirectional navigation link for previous or next page
ClassDescription
.paginationcomponent root
.is-ellipsisNon-interactive ellipsis placeholder between page ranges
.is-disabledDisabled state for directional links at list boundaries
.is-compactDenser pagination with smaller items and tighter gap
.is-condensedCollapses prev/next text labels at narrow container widths

Popover

src/css/popover.css

TokenDefaultDescription
--popover-bgvar(--color-surface-float)Background color for the popover surface
--popover-colorvar(--color-text)Text color inside the popover
--popover-bordervar(--border-width-default) solid var(--color-border)Border for the popover surface
--popover-radiusvar(--radius-md)Border radius for the popover
--popover-padding-xvar(--ui-pad-x-snug)Horizontal padding inside the popover
--popover-padding-yvar(--ui-pad-y-snug)Vertical padding inside the popover
--popover-shadowvar(--shadow-lg)Box shadow for the popover
--popover-max-width20remMaximum width of the popover
--popover-offsetvar(--space-3xs)Gap between the trigger and the popover edge
SlotDescription
> header:first-childHeader slot -- full-bleed bordered separator (P2 test 2: extends through parent's --popover-padding-x via negative inline margins). Keyed to first-child so a <header> dropped mid-popover stays at UA defaults instead of breaking layout.
ClassDescription
.popovercomponent root
.is-topAnchored above the trigger
.is-startAnchored to the inline-start side of the trigger
.is-endAnchored to the inline-end side of the trigger
.is-smNarrow popover at 14rem max width
.is-lgWide popover at 32rem max width
.is-wideUncapped width
.no-borderRemoves the border

Progress

src/css/extras/progress.css

TokenDefaultDescription
--progress-height0.5remTrack height of the progress bar
--progress-radiusvar(--radius-pill)Corner radius for the bar track and fill
--progress-bgvar(--color-fill)Background color of the unfilled track
--progress-fillvar(--color-primary-soft)Fill color for the completed portion
--progress-label-colorvar(--color-text)Text color for inline percentage labels
--progress-transitionvar(--transition-normal)Transition for animated width changes on the fill
SlotDescription
.progress-barFilled portion of the bar
ClassDescription
.progresscomponent root
.is-smSmaller thickness for the progress bar
.is-lgLarger thickness for the progress bar
.progress-bar.is-successSuccess color variant for the internal progress-bar
.progress-bar.is-warningWarning color variant for the internal progress-bar
.progress-bar.is-dangerDanger color variant for the internal progress-bar
.is-stackedStacked segments, bars flush edge-to-edge inside one track. The first / last segments keep the track's outer radius; middle segments are square so the seams meet flat.
.is-indeterminateAn indeterminate bar slides across the track on a loop. Container becomes positioning context; the .progress-bar inside is absolutely positioned so the keyframe animates its own position and size without nudging the surrounding layout.

Progress Ring

src/css/extras/progress.css

TokenDefaultDescription
--progress-ring-size5remOuter diameter of the ring
--progress-ring-width0.375remThickness of the ring stroke
--progress-fillvar(--color-primary-soft)Fill color for the ring arc
--progress-bgvar(--color-fill)Background color for the unfilled portion of the ring
--progress-ring-cutout-bgvar(--color-surface)Background color of the inner cutout
--progress-value0Consumer-set progress value, 0 to 100
ClassDescription
.progress-ringcomponent root
.is-successSuccess color variant for the ring fill
.is-warningWarning color variant for the ring fill
.is-dangerDanger color variant for the ring fill
.is-smSmall ring variant (3rem diameter)
.is-lgLarge ring variant (8rem diameter)

Prose

src/css/prose.css

TokenDefaultDescription
--prose-spacingvar(--space-sm-md)Vertical rhythm between direct children
--prose-max-width65chMaximum inline size for readable line length
--prose-bordervar(--border-width-default) solid var(--color-border)Separator border for rules, table rows, and details
--prose-blockquote-border3px solid var(--color-border-strong)Inline-start accent border for blockquotes
--prose-kbd-bordervar(--border-width-default) solid var(--color-border-strong)Border for keyboard input elements
--prose-figcaption-alignstartText alignment for figure captions
--prose-mark-bgvar(--color-warning-subtleBackground color for highlighted text
ClassDescription
.prosecomponent root
.is-wideRemoves the max-width limit for full-width layouts

Rating

src/css/extras/rating.css

TokenDefaultDescription
--rating-size1.5remInline and block size of each star
--rating-iconurl("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87L18.18 22 12 18.56 5.82 22 7 14.14l-5-4.87 6.91-1.01z'/%3E%3C/svg%3E")Mask image for the star shape, swappable to any single-path SVG
--rating-colorvar(--color-border)Color of unselected stars
--rating-activevar(--color-warning)Color of selected and hovered stars
--rating-gapvar(--gap-compact)Gap between stars
ClassDescription
.ratingcomponent root
.is-readonlyDisplay-only mode using span elements instead of radio inputs
.is-smSmall size variant (1rem stars)
.is-lgLarge size variant (2rem stars)

Reel

src/css/composition.css

TokenDefaultDescription
--reel-gapvar(--gap-spaciousGap between reel items
--reel-scrollbarthinScrollbar display style for the reel
--reel-item-shrink0Whether reel items can shrink below their basis
--reel-item-sizeautoFlex basis for reel items
ClassDescription
.reelcomponent root

Sidebar

src/css/sidebar.css

TokenDefaultDescription
--sidebar-width16remWidth of the sidebar panel
--sidebar-bgvar(--color-surface)Background color for the sidebar
--sidebar-bordervar(--border-width-default) solid var(--color-border-subtle)Inline-end border of the panel
--sidebar-link-font-sizevar(--ui-text-sm)Font size for sidebar-link rows inside the panel
--sidebar-header-bordervar(--border-width-default) solid var(--color-border-subtle)Bottom border for the header region
--sidebar-footer-bordervar(--border-width-default) solid var(--color-border-subtle)Top border for the footer region
SlotDescription
> headerThe header section at the top of a sidebar
> footerThe footer secton at the bottom of a sidebar
.sidebar-toggleMobile toggle -- hidden on desktop, revealed below 64rem in place of the hidden sidebar. Styled like a minimal button; consumers wire the open action with commandfor targeting a <brio-drawer> by ID.
ClassDescription
.sidebarcomponent root
.no-borderRemoves the inline-end border

src/css/sidebar-nav.css

TokenDefaultDescription
--sidebar-link-font-sizevar(--ui-text-smFont size for sidebar links, set on .sidebar
--sidebar-icon-sizevar(--icon-sizeIcon dimensions for the leading slot
SlotDescription
.sidebar-link-iconLeading icon slot
.sidebar-link-metaTrailing slot for counts, hints, or badges
ClassDescription
.sidebar-linkcomponent root

Sidebar Nav

src/css/sidebar-nav.css

TokenDefaultDescription
--sidebar-nav-group-font-sizevar(--ui-text-xs)Font size for group labels
--sidebar-edge-padvar(--ui-pad-x-compact)Inline-start padding for labels and top-level links
--sidebar-rail-width1pxThickness of the group rail
--sidebar-rail-colorcolor-mix(in oklch, var(--sidebar-bg), var(--color-shift) 12%)Rail resting color, derived from --sidebar-bg
--sidebar-rail-color-activecolor-mix(in oklch, var(--sidebar-bg), var(--color-shift) 28%)Rail color when the group contains the current link
--sidebar-rail-marker-colorvar(--color-primary)Color of the current-row segment marker
--sidebar-group-indentvar(--ui-pad-x-snug)Inline indent applied alongside the rail
SlotDescription
.sidebar-groupSection group, either static div or collapsible details
.sidebar-group-contentDisclosed-content wrapper with inline-start rail
.sidebar-group-labelSection header label or collapsible summary
ClassDescription
.sidebar-navcomponent root
.sidebar-group.no-borderPer-group opt-out of the rail (and therefore the marker too, since the marker has nothing to overlap without the rail).

Skeleton

src/css/extras/skeleton.css

TokenDefaultDescription
--skeleton-colorvar(--color-fill-strong)Base fill tint for the skeleton block
--skeleton-highlightvar(--color-fill)Shimmer band tint for the animated sweep
--skeleton-radiusvar(--radius-sm)Corner radius for the skeleton block
ClassDescription
.skeletoncomponent root
.is-circleCircle placeholder for avatar or icon stand-ins

Spinner

src/css/spinner.css

TokenDefaultDescription
--spinner-size1.25emDiameter of the spinner
--spinner-width2pxBorder thickness of the spinner ring
--spinner-colorcurrentColorColor of the spinning arc
--spinner-trackvar(--color-shadow)Color of the background track
--spinner-speed0.6sDuration of one full rotation
ClassDescription
.spinnercomponent root
.is-smSmaller spinner at 1em
.is-lgLarger spinner at 2rem with thicker ring
.is-xlExtra-large spinner at 3rem with thicker ring
.is-primaryPrimary color arc
.is-accentAccent color arc

Stack

src/css/composition.css

TokenDefaultDescription
--stack-gapvar(--gap-snug)Gap between stack children
ClassDescription
.stackcomponent root
.is-snugTighter gap between stack children
.is-tightTightest gap between stack children
.is-centeredCross-axis centering for stack items

Stacked List

src/css/stacked-list.css

TokenDefaultDescription
--stacked-list-padding-blockvar(--ui-pad-y-snug)Row vertical padding
--stacked-list-padding-inlinevar(--ui-pad-x-snug)Row horizontal padding
--stacked-list-gapvar(--gap-snug)Gap between leading, content, and trailing regions
--stacked-list-radiusvar(--radius-sm)Row corner radius, visible on hover
--stacked-list-content-gapvar(--space-3xs)Gap between heading and description in the content region
--stacked-list-divider-colorvar(--color-border-subtle)Border color between rows when .is-divided is active
--stacked-list-leading-alignflex-startVertical alignment of the leading slot
--stacked-list-trailing-alignflex-startVertical alignment of the trailing slot
--stacked-list-header-font-sizevar(--step-0)Heading font size
--stacked-list-content-font-sizevar(--step--1)Description and paragraph font size
--stacked-list-chevron-size0.5emSize of the revealable-row chevron
--stacked-list-chevron-colorvar(--color-text-muted)Color of the revealable-row chevron
SlotDescription
> :is(.leading, aside:has(~ div))Leading slot -- .leading, or a legacy <aside> that has a content <div> after it. Aligns to flex-start by default; tokenized so consumers can center an avatar in tightly-packed rows, etc.
> :is(.trailing, div ~ aside)Trailing slot -- .trailing, or a legacy <aside> after a content <div>. Same flex-start default, independent token.
> div:not(.leading, .trailing)Content region -- bare <div> between the slots. Itself a flex column so heading and description stack with a small gap without consumers needing to wrap them in .flow.
:is(h2, h3, h4, h5, h6)Header region
ClassDescription
.stacked-listcomponent root
.is-dividedAdds 1px border between sibling rows
.is-compactDenser padding and tighter gap
.is-interactiveHover highlight and stretched heading link for whole-row click

Stat

src/css/extras/stat.css

TokenDefaultDescription
--stat-gapvar(--gap-tight)Gap between the label, value, and description slots
--stat-label-sizevar(--step--1)Font size for the metric label
--stat-value-sizevar(--step-3)Font size for the big number
--stat-description-sizevar(--step--1)Font size for the supplementary description
--stat-label-colorvar(--color-text-muted)Text color for the label
--stat-value-colorvar(--color-text)Text color for the value
SlotDescription
& .stat-labelLabel text identifying the metric
& .stat-valueLarge number or formatted value
& .stat-descriptionSupplementary text or trend indicator
ClassDescription
.statcomponent root
.is-compactTighter layout with smaller value for dense dashboard cards

Stepper

src/css/extras/stepper.css

TokenDefaultDescription
--stepper-gapvar(--gap-snug)Gap between the badge and label inside each step
--stepper-connector-minvar(--space-lg)Minimum inline size of the divider connector between steps
--cluster-wrapnowrapFlex-wrap override for the cluster composition
SlotDescription
.stepper .stepStep pair containing a badge and optional label
.stepper-connectorDivider connector line between steps
ClassDescription
.steppercomponent root
.is-compactAlways hides labels, showing badges only at every width
.is-condensedAuto-hides labels at narrow container widths via container query

Subnavbar

src/css/navbar.css

TokenDefaultDescription
--subnavbar-bgvar(--color-surface)Background color for the subnavbar
--subnavbar-bordervar(--border-width-default) solid var(--color-border-subtle)Bottom border for the subnavbar
--subnavbar-paddingvar(--ui-pad-y-compact) var(--ui-pad-x-snug)Inner padding for the subnavbar
--navbar-height4remSticky offset from the top, set on navbar or :root
ClassDescription
.subnavbarcomponent root
.no-borderRemoves the bottom border

Switcher

src/css/composition.css

TokenDefaultDescription
--switcher-wrapwrapFlex wrap behavior for the switcher
--switcher-aligncenterCross-axis alignment for switcher items
--switcher-gapvar(--gap-spaciousGap between switcher items
--switcher-threshold30rem) - 100%) * 999Container width at which items switch to column
ClassDescription
.switchercomponent root

Table

src/css/table.css

TokenDefaultDescription
--table-paddingvar(--ui-pad-y-tight) var(--ui-pad-x-tight)Cell padding for th and td
--table-border-colorvar(--color-border)Border color for cell dividers
--table-header-bgtransparentBackground color for the header row
--table-header-colorvar(--color-text)Text color for header cells
--table-stripe-bgvar(--color-fill-subtle)Background color for striped and hovered rows
ClassDescription
.tablecomponent root
.is-stripedAlternating row background on even rows
.is-borderedBorders on all cells and the table edge
.is-compactDenser padding and smaller font size
.is-hoverableHighlight rows on hover

Table Wrap

src/css/table.css

TokenDefaultDescription
--table-wrap-bordervar(--border-width-default) solid var(--color-border)Border for the outer table-wrap when .is-bordered is used
ClassDescription
.table-wrapcomponent root
.is-borderedShow the border for the table wrap

Tabs

src/css/tabs.css

TokenDefaultDescription
--tab-font-sizevar(--ui-text-sm)Font size for tab triggers
--tab-padding-xvar(--ui-pad-x-compact)Horizontal padding for tab triggers
--tab-padding-yvar(--ui-pad-y-tight)Vertical padding for tab triggers
--tab-gapvar(--gap-tight)Gap between tab triggers
--tab-colorvar(--color-text-muted)Text color for inactive tabs
--tab-color-activevar(--color-primary)Text color for the active tab
--tab-border-colorvar(--color-border)Border color for the tablist underline
--tab-active-border-colorvar(--color-primary)Border color for the active tab indicator
--tab-panel-padding-blockvar(--space-md)Vertical padding for tab panels
SlotDescription
.tabs [role="tablist"]Tablist -- styled via the role since it's a structural container, * not a separately-named slot. Inset shadow is a deliberate choice: * the active tab's bottom-border indicator overlays cleanly without * a negative margin, which would get clipped by overflow-x scrolling.
.tabs :is([role="tab"], .tab)Tab -- both .tab class and [role="tab"] are styling hooks. Same * dual-pairing pattern as .dropdown-item + [role="menuitem"].
ClassDescription
.tabscomponent root
.as-verticalSide-tab orientation with column tablist
.as-stretchedTabs grow equally to fill the tablist width
.as-pillsPill-shaped triggers with filled active state

Timeline

src/css/extras/timeline.css

TokenDefaultDescription
--timeline-gapvar(--space-md)Horizontal gap between the marker column and content column
--timeline-line-colorvar(--color-border)Color of the connecting line between events
--timeline-dot-size0.625remDiameter of the event indicator dot
--timeline-dot-colorvar(--color-primary)Fill color for the event indicator dot
SlotDescription
.timeline-markerMarker column holding the dot or avatar and connecting line
.timeline-marker .timeline-dotColored event indicator dot inside timeline-marker
.timeline-marker .timeline-lineConnecting line between event markers inside timeline-marker
.timeline-contentContent column for the event description
ClassDescription
.timelinecomponent root
.is-dashedDashed line pattern for pending or future events
.is-successSuccess color variant for the dot
.is-warningWarning color variant for the dot
.is-dangerDanger color variant for the dot
.is-accentAccent color variant for the dot
.is-neutralNeutral color variant for the dot

Toast

src/css/toast.css

TokenDefaultDescription
--toast-bgvar(--color-surface-float)Background color for the toast
--toast-colorvar(--color-text)Text color inside the toast
--toast-bordervar(--color-border)Border color for the toast
--toast-accentvar(--color-border-strong)Accent color for the icon and progress bar
--toast-min-width16remMinimum width of the toast
SlotDescription
> svg:first-childLeading icon -- first-child <svg>. Direct child only so a deeper SVG inside body content doesn't pick up slot styling.
.toast-contentContent region with title and body text
.toast-titleTitle text inside the content region
.toast-progressThe progress bar shown when a timer is counting down
ClassDescription
.toastcomponent root
.is-leavingExit state applied by toast.js before removal
.is-infoInfo color variant for primary-tone toasts
.is-successSuccess color variant
.is-warningWarning color variant
.is-dangerDanger color variant

Toast Container

src/css/toast.css

TokenDefaultDescription
--toast-max-width24remMaximum width of the toast container
--toast-enter-y-0.5remEntrance and exit direction for toasts
ClassDescription
.toast-containercomponent root
.is-top-endTop-end corner position (default)
.is-top-startTop-start corner position
.is-top-centerTop-center position
.is-bottom-endBottom-end corner position
.is-bottom-startBottom-start corner position
.is-bottom-centerBottom-center position

Tooltip

src/css/tooltip.css

TokenDefaultDescription
--tooltip-bgvar(--color-text)Background color for the tooltip surface
--tooltip-colorvar(--color-text-inverse)Text color inside the tooltip
--tooltip-padding-xvar(--ui-pad-x-tight)Horizontal padding inside the tooltip
--tooltip-padding-yvar(--ui-pad-y-compact)Vertical padding inside the tooltip
--tooltip-radiusvar(--radius-sm)Corner radius for the tooltip
--tooltip-font-sizevar(--ui-text-xs)Font size for tooltip text
--tooltip-max-inline-size16remMaximum width before text wraps
--tooltip-offset0.375remGap between the tooltip and its trigger
--tooltip-arrow-size5pxSize of the directional arrow
--tooltip-show-delay300msDelay before the tooltip appears on hover or focus
--tooltip-fade-durationvar(--duration-fast)Duration of the fade and slide animation
ClassDescription
.tooltipcomponent root
.is-bottomPositions the tooltip below its trigger
.is-startPositions the tooltip to the inline-start side of its trigger
.is-endPositions the tooltip to the inline-end side of its trigger

Tooltip Wrap

src/css/tooltip.css

ClassDescription
.tooltip-wrapcomponent root

Trend

src/css/extras/trend.css

TokenDefaultDescription
--trend-colorvar(--color-text-subtle)Chromatic color axis, remapped by direction variants
ClassDescription
.trendcomponent root
.is-upUpward trend, colored with success
.is-downDownward trend, colored with danger
.is-neutralFlat or unchanged trend, colored with subtle text