Button

A button is a UI control that triggers an instantaneous action. It is distinct from state buttons, which toggle persistent state. Allow one primary action per panel; primary labels should be verbs.

Style variants

Variant Usage
Primary Main panel action — Launch, Apply, Add; may close panel or start long processing
Secondary Subsection actions; shorter height; may open settings dialogs
Tertiary Adjacent to a related control — Browse, Reset
Outline Brand-linked optional actions when primary is already used — Preview, Save draft, Test connection

Primary button

Primary buttons use a solid brand fill and white label. They represent the main commit action for a panel — only one primary button should appear per panel.

When to use

When not to use

With icon

Primary buttons can include a leading icon when the glyph reinforces a familiar create-or-send action. Default to text-only for dialog footers and confirmations; add an icon when it improves recognition without replacing the label.

When to use an icon

When not to use an icon

Run analysis

Analysis may take several minutes. Start when settings are ready.

Panel footers: one primary on the right; label should be a verb describing the outcome.

Secondary button

Secondary buttons use a neutral filled background and gray border. They support subsection actions, settings entry points, and dismiss controls without competing with the primary action.

When to use

When not to use

Delete measurement

This removes the selected ROI and its statistics. This action cannot be undone.

Secondary is shorter (24px) than primary (28px); dismiss sits left of primary in the footer cluster.

Tertiary button

Tertiary buttons have no fill or border by default. They sit beside a related control for lightweight, contextual actions such as browsing for a file or resetting a single field.

When to use

When not to use

Tertiary controls align on the same row as their related input; hover adds a neutral fill.

Outline button

Outline buttons use a transparent fill and brand-colored border. They signal a positive, on-brand action without competing with the single primary button in a panel.

When to use

When not to use

Icon button

Icon-only buttons save space for familiar actions (Save, Add, Settings). Always provide an accessible name via aria-label or visually hidden text.

Link buttons look like hyperlinks but use <button> semantics for in-app actions that do not navigate. For true navigation, use Hyperlinks.

Combines link appearance with a leading icon — common for help topics and external docs opened in context.

Split button

A split button pairs a primary action with a menu of related alternatives. The main area runs the default action; the chevron opens a dropdown.

With icon

Add a leading icon on the main action when the glyph aids recognition — export, save, share. The chevron toggle stays icon-only; always provide an aria-label on the toggle.

Button group

Visually joins related options so users pick one of a small set (view mode, alignment, sort order).

Color tokens

Button colors match the palette on the Color foundation page. Values below are fixed hex references; live buttons use CSS custom properties that adapt with theme.

Variant Background (light / dark) Text (light / dark)
Primary
#2967c4
#395386
Aa #ffffff
Aa #ffffff
Primary hover
#2358a7
#2967c4
Aa #ffffff
Aa #ffffff
Secondary
#f1f1f1
#474747
Aa #000000
Aa #ffffff
Secondary hover
#e6e6e6
#525252
Tertiary
transparent
transparent
Aa #000000
Aa #ffffff
Outline
transparent
transparent
Aa #2967c4
Aa #6ea8fe
Outline hover
rgba(41, 103, 196, 0.1)
rgba(110, 168, 254, 0.12)
Aa #2358a7
Aa #9ec5fe
Disabled
#f1f1f1
#474747
Aa #a0a0a0
Aa #525252

State matrix

Each variant is shown in default, hover, focus, and disabled states. Light and dark panels render side by side; use the header theme toggle to preview either mode full-page.

Light mode

Primary
Secondary
Tertiary
Outline
Default
Hover
Focus
Disabled

Dark mode

Primary
Secondary
Tertiary
Outline
Default
Hover
Focus
Disabled

State reference

State Primary Secondary Tertiary Outline
Default Brand background, white label Neutral fill, gray border, theme text Transparent, no border Transparent, brand border and link-colored label
Hover Darker blue (light) / lighter blue (dark) Secondary hover fill Neutral hover fill Light brand tint fill; darker border and label
Focus 2px primary outline, 2px offset — all variants
Disabled Neutral gray fill and muted label Muted label on neutral fill Muted label; stays transparent Muted label and border; stays transparent

Appearance

Usage guidelines

Platform-specific button catalogs for desktop, web, and portal products are deferred from this unified spec — report back if those should be merged later.