Components

Colors

The Material 3 Expressive colour scheme — both light and dark. Every component references these tokens; there are no hardcoded colours in the library.

Using a colour token

Components reference CSS custom properties directly — no JS colour helpers, no Tailwind, no preprocessors.

Every component in the library reads from these tokens. Light and dark mode switch automatically via prefers-color-scheme and [data-theme].

.my-button {
  background: var(--color-primary);
  color: var(--color-on-primary);
  border-radius: var(--radius-full);
}

Inline in markup

This block uses --color-surface-container directly.
<div style="background: var(--color-surface-container); color: var(--color-on-surface)">
  ...
</div>

Primary

--color-primary on --color-on-primary
--color-primary-container on --color-on-primary-container

Secondary

--color-secondary on --color-on-secondary
--color-secondary-container on --color-on-secondary-container

Tertiary

--color-tertiary on --color-on-tertiary
--color-tertiary-container on --color-on-tertiary-container

Error

--color-error on --color-on-error
--color-error-container on --color-on-error-container

Success (placeholder)

--color-success on --color-on-success
--color-success-container on --color-on-success-container

Surface

--color-surface on --color-on-surface
--color-surface-dim on --color-on-surface
--color-surface-bright on --color-on-surface
--color-surface-container-lowest on --color-on-surface
--color-surface-container-low on --color-on-surface
--color-surface-container on --color-on-surface
--color-surface-container-high on --color-on-surface
--color-surface-container-highest on --color-on-surface

Outline

--color-outline on --color-surface
--color-outline-variant on --color-surface
--color-on-surface-variant on --color-surface

Inverse

--color-inverse-surface on --color-inverse-on-surface
--color-inverse-on-surface on --color-inverse-surface
--color-inverse-primary on --color-inverse-surface