OverviewGetting startedInstallationComponentsFoundationsToken architectureColorTypographySpacingBorders and radiiElevationMotionThemesResponsive behaviorCore and stateTheming and layoutAgent toolingAI toolingChange impactRecipesArchitectureRoadmapHelp and releasesOverviewToken architectureColorTypographySpacingBorders and radiiElevationMotionThemesResponsive behavior

Named conditions

A condition is written once in the theme and emitted as a literal query, because var() cannot appear in a query. Thresholds are rem lengths, so they follow the reader’s font size.

Named conditions
ConditionKindEmitted as
motion.reducedmedia@media (prefers-reduced-motion: reduce)
navigation.expandedcontainer@container shell (min-inline-size: 48rem)
page.mediummedia@media (min-width: 40rem)
page.widemedia@media (min-width: 64rem)

Layout roles

Pages and recipes lay out with these roles. Below, the same items in a container as wide as layout.item-min and in one as wide as layout.measure.

Layout roles
TokenValue
layout.gap1rem
layout.inset1.5rem
layout.item-min16rem
layout.main-min20rem
layout.measure40rem
layout.sidebar-width16rem
layout.item-min: 16rem
  • layout.gap
  • layout.inset
  • layout.item-min
  • layout.main-min
  • layout.measure
  • layout.sidebar-width
layout.measure: 40rem
  • layout.gap
  • layout.inset
  • layout.item-min
  • layout.main-min
  • layout.measure
  • layout.sidebar-width

Profiles

A profile is a named set of role overrides. It never inspects or rewrites descendants: it declares custom properties where it applies, through data-odd-profile or a recipe condition, and they inherit.

Profiles in the default theme
ProfileRoles it sets
navigation.compactnavigation.indent, navigation.item.gap, navigation.item.padding.block, navigation.item.padding.inline
layout.compactlayout.gap, layout.inset

Keep concerns separate

Concerns kept apart
ConcernMechanismMust not
Responsive layoutRecipe conditions + profilesShrink text or targets automatically
Densitydata-odd-densityChange font size
Typography preferenceUser agent / root font sizeBe overridden by layout conditions
Interaction target sizeComponent roles with a documented minimum (WCAG 2.5.8 target size minimum as baseline)Drop below the minimum in any profile or density