# Attribute reference

RevaCSS 2.0.0 · Erisian

Generated from the same source manifests and examples as the documentation. Use this version's API; check the getting-started guide for publication availability.

## data-palette

Supported values: `default`, `mono`.

Default: default. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Coordinated page, surface, foreground, border, link and primary colours. Light/dark follows data-theme. Success, warning and error colours stay semantic.

## data-theme

Supported values: `auto`, `light`, `dark`.

Default: auto. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Page and component colour scheme: auto follows the visitor's preference.

## data-accent

Supported values: `blue`, `violet`, `teal`, `green`, `orange`, `rose`.

Default: Palette primary. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Primary actions, badges, alerts, native accent controls and checked switches. Links retain their theme colour. Explicit accents reset their foreground; omitted accents follow data-palette.

## data-shape

Supported values: `square`, `subtle`, `rounded`, `pill`, `custom`.

Default: rounded. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Styled controls, surfaces, navigation, media, code, choice labels, avatars and placeholders. Custom uses --re-custom-surface-radius, --re-custom-field-radius and --re-custom-action-radius (nonnegative lengths; .75rem defaults). Local presets reset all three groups.

## data-fill

Supported values: `gradient`, `solid`.

Default: gradient. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Button, badge and alert gradients; optional glass sheen. Does not change material.

## data-density

Supported values: `compact`, `comfortable`, `spacious`, `custom`.

Default: comfortable. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Control and surface padding, list and description spacing, card sections and layout spacing. Custom separates surface padding (--re-custom-surface-padding, 1rem), control padding multiplier (--re-custom-control-density, 1), and content spacing (--re-custom-content-space, 1rem). Minimum control heights are preserved; local presets reset all groups.

## data-depth

Supported values: `flat`, `subtle`, `pronounced`.

Default: subtle. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Action and surface shadows. Text-control inset shadows are configured with data-controls.

## data-motion

Supported values: `none`, `subtle`, `expressive`.

Default: subtle. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Action transitions, accordion expansion and chevron rotation (expressive adds a fade), press movement, decorative edges, custom spinners, switch transitions and skeleton shimmer. Reduced motion wins; native progress is browser-owned.

## data-type

Supported values: `compact`, `standard`, `large`.

Default: standard. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Page or subtree typography.

## data-border

Supported values: `subtle`, `defined`, `none`.

Default: subtle. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Styled control and surface borders, table rules and navigation boundaries. Invalid-state and forced-colour boundaries take priority.

## data-contrast

Supported values: `auto`, `more`.

Default: auto. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Foreground and boundary contrast; optional glass becomes opaque. System preferences retain their component-specific priority.

## data-tone

Supported values: `neutral`, `cool`, `warm`.

Default: Palette surfaces. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Override page and surface temperature without resetting the palette accent, links or foregrounds.

## data-controls

Supported values: `styled`, `minimal`.

Default: styled. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Text input, select and textarea backing and inset shadow.

## data-width

Supported values: `narrow`, `standard`, `wide`, `full`, `custom`.

Default: standard. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Page-container width. Narrow, Standard and Wide cap .container at 48rem, 75rem and 90rem. Full fills the parent with 1rem side padding. Custom uses --re-custom-max-width (75rem) and --re-custom-side-padding (1rem); max width includes padding, which is reduced in narrow containers. Local presets reset width/padding. Navbar width is configured separately.

## data-table

Supported values: `plain`, `striped`, `bordered`.

Default: plain. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Table stripes and grid lines; rule thickness follows data-border.

## data-size

Supported values: `small`, `medium`, `large`.

Default: medium. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Controls, menu actions, badges, alerts, accordion summaries, breadcrumbs, pagination, form labels, choice labels, spinners and avatars.

## data-ratio

Supported values: `auto`, `square`, `landscape`, `portrait`, `wide`.

Default: auto. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Image and video aspect ratio; auto retains natural proportions.

## data-fit

Supported values: `cover`, `contain`.

Default: cover. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Image, video and avatar content within constrained dimensions.

## data-gap

Supported values: `none`, `small`, `medium`, `large`.

Default: medium. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Spacing in .grid, .row, .stack, .accordion, .pagination, .tabs and .toolbar; combines with density.

## data-material

Supported values: `solid`, `glass`, `veil`, `soft`.

Deprecated values: `veil`. Retained for compatibility; avoid in new interfaces.

Default: solid. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Solid surfaces by default; optional Glass or Soft UI surfaces and actions use their matching extension. Veil is deprecated and retained for existing sites. Explicit material boundaries stop another inherited material.

## data-edge

Supported values: `plain`, `gradient`, `shine`, `animated`.

Default: plain. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Decorative borders on buttons, .button links and cards. Shine sweeps on interaction; animated turns continuously. Native action inputs keep regular borders.

## data-variant

Supported values: `primary`, `success`, `warning`, `danger`, `neutral`.

Default: primary. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Button, action-input, .button link, badge and alert semantic colour. Primary uses the inherited accent; local legacy button classes override inherited variants, while a valid action-level attribute takes precedence.

## data-appearance

Supported values: `tinted`, `solid`, `outline`.

Default: tinted. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to supported targets

Badge and alert backing and border treatment. Does not configure buttons.

## data-navbar

Supported values: `standard`, `centered`, `floating`, `split`.

Default: standard. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to .top-menu only

Top navigation layout: standard brand and links, centered links, inset floating surface, or central brand with links on either side. Mobile retains the shared Menu button and popovers. Does not change sidebars.

## data-navbar-position

Supported values: `static`, `sticky`.

Default: static. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to .navbar-header, standalone .top-menu and .app-shell > header

Static follows normal document flow. Sticky keeps the outer header at block-start of its scroll container; layout, palette and material remain independent. Put the wrapper in the scrolling page, outside short sections.

## data-navbar-spacing

Supported values: `flush`, `spaced`.

Default: spaced. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to .navbar-header and standalone .top-menu

Flush removes the wrapper gap and Floating margins so a sticky bar meets the safe top edge. Spaced adds wrapper breathing room, reduced on small screens, and retains Floating margins.

## data-navbar-width

Supported values: `contained`, `full`.

Default: contained. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; applies to .navbar-header and .top-menu

Contained follows the shared page width and navbar layout. Full fills its parent with a navbar surface while aligning its contents to the shared page width. Use a page-wide wrapper to reach both screen edges; app-shell toolbars retain their grid column.

## data-button-material

Supported values: `default`, `solid`, `glass`, `veil`, `soft`, `liquid`.

Deprecated values: `veil`. Retained for compatibility; avoid in new interfaces.

Default: default. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; native button/submit/reset actions and .button/.scroll-top links, excluding navigation toggles and dropdown controls

Optional button material extension. Default follows data-material at the action; explicit choices override general material for actions only. Liquid is transparent neutral glass without accent tint; movement follows data-motion. Veil is deprecated and retained for existing sites.

## data-font

Supported values: `manrope`, `system`.

Default: manrope. Omit the attribute to retain the default; a default description is not necessarily a valid literal value.

Scope: Inherited; page, section or individual text/control

Body text, headings and native controls. Manrope is the framework default with system-ui/sans-serif fallback; its font stylesheet is optional. System uses system-ui/sans-serif even when Manrope is loaded. A local preset resets this choice; code remains monospace and --re-font-heading remains an optional heading override.
