REFERENCE
Component API
Find the identifying markup, optional states and behaviour boundary for each component. Follow its example page for complete HTML.
All modules depend on the shared tokens and native base where applicable. Complete builds contain the listed component styling and common utilities. Component filenames identify styling modules; they are not independent behaviour packages.
Foundations
- Markup hook
Native headings, paragraphs, lists and inline text- Options and states
- None; choose semantic HTML.
- Styling module
reva.base.css- Behaviour
- Document structure comes from your markup.
Open demos and HTML examples
- Markup hook
.card, .container, .grid, .row, .stack- Options and states
- Optional cols-2/cols-3; shared width and gap settings.
- Styling module
reva.components.css- Behaviour
- Layouts arrange content; there is no numbered 12-column API.
Open demos and HTML examples
- Markup hook
table; .table-scroll for overflow- Options and states
- data-table; caption and native header cells.
- Styling module
reva.components.css- Behaviour
- CSS does not sort, filter or fetch records.
Open demos and HTML examples
- Markup hook
img, video, figure- Options and states
- data-ratio and data-fit; meaningful alt text.
- Styling module
reva.components.css- Behaviour
- Intrinsic media dimensions and playback are browser/application-owned.
Open demos and HTML examples
- Markup hook
dl.description-list, dt, dd- Options and states
- Native div groups for term/value pairs.
- Styling module
reva.description-lists.css- Behaviour
- Pairs adapt to their available container width.
Open demos and HTML examples
Navigation and disclosure
- Markup hook
.app-shell > aside, header, main; standalone aside.sidebar- Options and states
- Native nav links, details/summary and aria-current; unique drawer id with popover=auto and popovertarget.
- Styling module
reva.app-shell.css- Behaviour
- Responsive at 60rem. Mobile drawer is a non-modal native popover, with outside-click/Escape dismissal and ordinary Tab navigation. Applications supply destinations and data.
Open demos and HTML examples
- Markup hook
nav.nav-rail > a- Options and states
- Native links with visible labels and aria-current where applicable.
- Styling module
reva.navigation-rail.css- Behaviour
- Vertical rail becomes a wrapping horizontal layout below 40rem.
Open demos and HTML examples
- Markup hook
.drawer[popover=auto] > header, section, footer- Options and states
- Unique id and native popovertarget; shared appearance attributes inherit. CSS variables customise width and logical placement.
- Styling module
reva.drawers.css- Behaviour
- Non-modal native popover. Outside-click/Escape dismissal; ordinary Tab navigation. No focus trap, body-scroll lock or JavaScript.
Open demos and HTML examples
- Markup hook
ul.dropdown[popover=auto] > li > a or button- Options and states
- Unique id and native popovertarget; role=list and a panel label.
- Styling module
reva.dropdowns.css- Behaviour
- Native outside-click/Escape dismissal; ordinary Tab navigation, not an ARIA menu. Actions and in-page links do not automatically dismiss.
Open demos and HTML examples
- Markup hook
nav.breadcrumbs > ol > li- Options and states
- A landmark name; aria-current=page on the current location.
- Styling module
reva.breadcrumbs.css- Behaviour
- Ancestor links need actual destinations.
Open demos and HTML examples
- Markup hook
ol.steps > li > a or span- Options and states
- aria-current=step; visible state text; inherited appearance.
- Styling module
reva.steps.css- Behaviour
- Native process navigation; application supplies stage state and destinations.
Open demos and HTML examples
- Markup hook
.accordion > details > summary- Options and states
- Optional shared unique name; native open attribute.
- Styling module
reva.accordions.css- Behaviour
- Exclusive groups depend on native details name support. Inherited motion enhances expansion where intrinsic-size transitions are supported; native instant disclosure is the fallback.
Open demos and HTML examples
- Markup hook
fieldset.tabs, radio labels, .tab-panel- Options and states
- One unique radio name per instance; label immediately before its panel.
- Styling module
reva.tabs.css- Behaviour
- This is radio-selected content, not the ARIA tabs interaction contract.
Open demos and HTML examples
- Markup hook
details/summary, dialog, [popover]- Options and states
- Native open, popovertarget and popover attributes.
- Styling module
reva.base.css- Behaviour
- Dialog styling does not itself implement a modal workflow.
Open demos and HTML examples
Feedback and status
- Markup hook
.alert- Options and states
- data-variant and data-appearance, including inherited values.
- Styling module
reva.alerts.css- Behaviour
- Static messages have no automatic live region or dismissal.
Open demos and HTML examples
- Markup hook
.badge- Options and states
- data-variant and data-appearance, including inherited values.
- Styling module
reva.badges.css- Behaviour
- Passive labels; no automatic announcements or interaction.
Open demos and HTML examples
- Markup hook
progress, meter- Options and states
- Native value/max and meter thresholds; accessible labels.
- Styling module
reva.base.css- Behaviour
- Values and native indeterminate presentation are not calculated by CSS.
Open demos and HTML examples
- Markup hook
.spinner- Options and states
- Decorative aria-hidden plus visible loading text.
- Styling module
reva.loading.css- Behaviour
- Application owns loading state; reduced motion stops the spinner.
Open demos and HTML examples
- Markup hook
.skeleton- Options and states
- Hide decorative placeholders; retain meaningful loading text.
- Styling module
reva.skeletons.css- Behaviour
- Application owns aria-busy and replacing placeholders.
Open demos and HTML examples
- Markup hook
.empty-state- Options and states
- Ordinary heading, explanation and real next action.
- Styling module
reva.empty-states.css- Behaviour
- Applications determine when there are no results.
Open demos and HTML examples
Content and identity
- Markup hook
.card with header, figure and footer- Options and states
- Native structure; row for optional action arrangement.
- Styling module
reva.card-patterns.css- Behaviour
- The components bundle includes the card surface and these patterns.
Open demos and HTML examples
- Markup hook
.card > dl > dt, dd > output- Options and states
- Existing shared attributes; visible trend and comparison text.
- Styling module
reva.card-patterns.css- Behaviour
- Backend supplies values; native meter/progress optional. No JavaScript or new attributes.
Open demos and HTML examples
- Markup hook
ol.timeline > li- Options and states
- Semantic time and event text; inherited shared appearance.
- Styling module
reva.timeline.css- Behaviour
- Server supplies ordered events; no JavaScript.
Open demos and HTML examples
- Markup hook
table.calendar > caption, thead, tbody- Options and states
- Weekday headers, time[datetime], aria-current=date and native event links.
- Styling module
reva.calendar.css- Behaviour
- Server-rendered month display; no date picker, range selection or booking engine.
Open demos and HTML examples
- Markup hook
ol.message-thread > li > article.card- Options and states
- Existing data-variant=primary marks outgoing messages; native sender/time/footer and optional avatar.
- Styling module
reva.message-thread.css- Behaviour
- Ordered static history. Sending, real-time updates and announcements belong to the application.
Open demos and HTML examples
- Markup hook
figure.chart > svg, figcaption- Options and states
- Backend supplies coordinates, title/description and exact data.
- Styling module
reva.charts.css- Behaviour
- Existing line/area and doughnut patterns; no new chart types.
Open demos and HTML examples
- Markup hook
ul.list-group or ol.list-group- Options and states
- Keep role=list; ordinary links for destinations.
- Styling module
reva.lists.css- Behaviour
- Ordinary collections, not interactive listboxes.
Open demos and HTML examples
- Markup hook
.avatar on img or an initials span- Options and states
- alt text or full-name labelling when needed.
- Styling module
reva.avatars.css- Behaviour
- Failed-image replacement must be supplied by the application.
Open demos and HTML examples
SVG icon symbols, inline usage and custom sizing are documented in the icon reference.