Components

The fourteen elements of the design system, at a glance.

Every element is a custom element: it works in any framework, it carries its own styles in a shadow root, and it takes a dark property instead of reading a global theme. The one exception is tuix-table, which has none. The previews on these pages are live: they follow the theme selected in the sidebar, so each element is shown with dark set to match.

Every example comes in Angular, Vue and React / Next.js the selector above the code switches between them. The one-time setup per framework is in React and Next.js, Vue and Angular.

Typography and icons

Actions

Form controls

Surfaces and feedback

What every component shares

darkEvery element but tuix-table takes it; nothing is inherited from an ancestor or a provider
AttributesLowercase, always: iconright, not iconRight. Objects and arrays must be set as properties
SlotsText goes in the default slot; the elements with several regions name theirs
EventsCustomEvents that bubble, with the payload in event.detail, usually event.detail.value
StateNever owned by the component. It reports a change; the application writes the new value back
TypographyRubik, through tuix-text, at the sizes in the type scale

Variants at a glance

ElementVariantsSizesStates
tuix-text16 colours14 text stylesNone
tuix-iconany colour + fillsmall medium large fullNone
tuix-buttonprimary secondaryresponsivedisabled, full, icons
tuix-icon-buttonprimary secondaryresponsivedisabled
tuix-linkprimary secondaryNonedisabled
tuix-paperelevation 0 to 44 radiiNone
tuix-inputtext search password textareaNonedisabled, readonly, 5 description states
tuix-dropdownsingle searchNonedisabled, description states
tuix-checkboxlabel left / rightNonechecked, disabled, error
tuix-radio-buttonlabel left / rightNonedisabled, error
tuix-toggle-buttonlabel left / rightNonechecked, disabled
tuix-tabletable / card layoutNoneloading, paginated
tuix-toasttext warning error successNonenone (hidden)
tuix-modalNoneNonevisible, scrollable

On this page