Button Components

Buttons set a clear visual hierarchy for the actions a user takes. Follow the style guide per hierarchy — avoid ad-hoc styling. Use them to trigger an action or to navigate to another page.


Components

Buttons split into four types by style and intent — Primary, Secondary, Tertiary, and Extra. Each splits further by icon presence and background-color treatment. The first three are the main types used across the system.

1. Main Type (Primary, Secondary, Tertiary Type)

Primary is the most common type — used with a text label, or with an icon paired alongside. Secondary mirrors Primary's shape but with a different color treatment for second-tier actions. Tertiary is icon-only — and Tertiary itself splits into Primary and Secondary by action hierarchy.

A

A. Primary Button Type (Contained Button)

B

B. Secondary Button Type (Outlined Button)

C

C. Tertiary Button Type (Icon Button)

2. Extra Type

Extra Button types — Segment, Progress Status, Text, and Combo — aren't primary actions, but they show up frequently across Zoomable. Each is shaped by its specific function and purpose.

D-1
ButtonButton

D-1. Extra Button Type — Text Button

D-2
Blade ABlade B
WeeksMonths

D-2. Extra Button Type — Segment Button

D-3
ApprovedIn Review

D-3. Extra Button Type — Progress Status

D-4
Action 1
Action 2
Action 3

D-4. Extra Button Type — Combo Button


Primary & Secondary Button

Buttons set a clear visual hierarchy for the actions a user takes. Follow the style guide per hierarchy — avoid ad-hoc styling. Use them to trigger an action or to navigate to another page.


Button

The base button. Adjust detail properties based on hierarchy and intent — see Variants and the Figma Properties table below.

Delete Task

Are you sure you want to delete the "AWZ Unit 1 Repair"?

Standard Primary + Secondary pairing example.

Anatomy

2
1
3
1Button Container
2Text Label
3Icon

Variants

Primary

Primary buttons mark the key action on a page — use at most one per page. Examples: the Login button on the sign-in page, the Start / Done action on the Image Quality Check page.

Secondary

Secondary buttons support the Primary action. Examples: Back to Login on the sign-in page, Reset All on the OSD Viewer.

Button Sizes

Size

Sizes use height: Large, Medium, Small, xSmall, 2xSmall. Font size, icon size, radius, and padding vary per size. Heights below 28 (Tiny) are avoided — they fall below the minimum touch target.

Table of Figma Properties

Property
Values
Default Value
Type
Primary, Secondary
Primary
Size
Large, Medium, Small, xSmall, 2xSmall
Medium
State
Default, Hovered, Clicked, Disabled
Default
Icon
False, True
False

Spec

Button Specs

Sizes

Heights — Large (48px), Medium (40px), Small (32px), xSmall (28px), 2xSmall (24px). Font size, icon size, radius, and padding vary per size. Heights below 28 (Tiny) are avoided — they fall below the minimum touch target.

Minimum Width

Buttons reserve a minimum of 16 padding for a 2-character label or more. Below that breaks the minimum size rule. Page-level buttons (outside modals) hold a minimum width of 80px.

Full Width Buttons

Buttons fixed in position on scroll inherit padding from their containing frame. OSD Viewer cases typically use 16px padding on all sides.

Usage & Placement

Rule for Full Width Buttons

Rule for Full Width Buttons

By default, buttons hug their text label, except when below the conventional minimum widths (64px, 71px, 80px, 90px). When the remaining container width is less than the button width, divide the container width equally for each button. A single button can also fill the full width for visual consistency or by intent.

(e.g. OSD Viewer, Login)

Placement of Button Group

Placement of Button Group

Buttons hug their text label by default. Within frames that satisfy the Full Width rule, button groups align right. Common pattern inside modals.

Requirement Feedback

Rule for Button Activation

Rule for Button Activation

Buttons inside modals default to active, even when required fields aren't filled. If a user triggers an unmet state, surface the missing requirements through an Alert.

Exception Case of Button Disabled

Exception Case of Button Disabled

Two exceptions where a modal button stays disabled — when the action's task is unmistakable inside the modal. Today: PDF Export while the file is processing, and Remove List when no checkbox is selected.

Loading Status

State = Default
State = Loading
Type AType B

Loading Type

Loading type differs by Primary or Secondary. Icon presence doesn't change it — loading renders on the container. Primary surfaces it on the Green 500 container; Secondary on white.

Loading Spinner Size

Loading Spinner Size

The spinner inside a button matches the text height for that button size. While loading, the width stays equal to the width used immediately before the loading began.


Tertiary Button (Icon Button)

Icon Buttons are buttons without a text label — icon only.


Icon Button

Icon Buttons have no text label. Prefer a labeled button when possible — but when space is limited, or when the icon is clearly understood on its own, an icon-only button is acceptable. Icon Buttons can also act as toggles (On / Off selection). Icon Buttons must always pair with a Tooltip.

Icon Button Preview

Anatomy

Icon Button Anatomy

Variants

Primary Type

Primary Type

Icon Buttons split into three types — Primary, Secondary, Tertiary — applied flexibly per content. Use at most one Primary Icon Button per page.

Secondary Type

Secondary Type

Icon Buttons split into three types — Primary, Secondary, Tertiary — applied flexibly per content. Use at most one Primary Icon Button per page.

Tertiary Type

Tertiary Type

Tertiary Icon Buttons have neither container nor outline — their treatment shifts with the surrounding background color. Three variants apply flexibly per content. Use at most one Primary Icon Button per page.

Icon Button State

State

Icon Buttons have four base states — Default, Hover, Clicked, Disabled.

Icon Button Size

Size

Heights — Large, Medium, Small, xSmall, 2xSmall, 3xSmall, 4xSmall. Container size, icon size, radius, and padding vary per size.

Table of Figma Properties

Property
Values
Default Value
Type
Primary, Secondary, Tertiary
Primary
Size
Large, Medium, Small, xSmall, 2xSmall, 3xSmall, 4xSmall
Medium
State
Default, Hovered, Clicked, Disabled
Default

Icon Button in Table

Space Icon Buttons 4 or 8 px apart. When combined with table headers, watch the margin. Inside a table, Icon Button groups drive per-row actions and align right.

Icon Button in Table

Popup Tooltip

Use a Tertiary Icon Button with an Information icon to surface a Popup Tooltip. State matches the standard Tertiary Icon Button, paired with a Header. The button's action shows a contextual Tooltip; clicking the button again — or anywhere outside — dismisses it.

Popup Tooltip

Usage & Placement

Icon Button Usage & Placement

Header with Icon

When an Icon sits inside a Header, the entire row acts as the touch target — and the action is signaled through the icon. No state styling on the Icon Button itself — it stays clickable without Hover or Clicked states.

(e.g. Item List → Expand Icon, OSD Viewer Panel → Expand Icon)


Extra Button (Text, Segment, Progress Status, Combo Button)

Extra Button types aren't primary actions, but they appear frequently across Zoomable. The family includes Segment, Progress Status, Text, and Combo — each shaped by its specific function and purpose.


Text Button

Text Buttons render without a container or outline — used inline. They combine with text (label) or appear as a linked underline. Used as part of a sentence or standalone — for navigating to another page, moving within the current page, or surfacing additional info.

Text Button Example
Text Button Label Underline

Variants

Text Button Type

Type

Text Buttons split into two types — Label (Primary, Secondary) and Link — applied flexibly per content.

Text Button State

State

Text Buttons have four base states — Default, Hover, Clicked, Disabled.

Text Button Size

Size

Text Button sizes match the body scale — Medium, Small, Xsmall. When used for navigation (e.g., "See more"), match the body font size.

Table of Figma Properties

Property
Values
Default Value
Type
Label, Link
Label
Size
Medium, Small, Xsmall
Xsmall
State
Default, Hovered, Clicked, Disabled
Default

Segment Button

Segment Buttons group similar content on a page and let users move between sections without leaving. They expose hierarchy-equivalent content for browsing in place. Visual consistency matters — selected state communicates location quickly. Segment Buttons always have one item selected; no unselected-all state.

Segment Button Example
Segment Button Anatomy

Variants

Segment Button Type

Type

Segment Buttons take two shapes — Label or Icon — and two placements — Floating=true or Floating=false. Applied flexibly per content and resolution.

Segment Button State

State

Two states — Clicked, Unclicked. Clicked uses Inter / Medium weight and Green 500 color.

Segment Button Size

Size

Two sizes — Large, Medium. Standard Large is 40px elsewhere; Segment Button Large is 36px.


Progress Status Button

Progress Status Buttons signal a stage-level hierarchy for the user's task progress. Follow the style guide per stage — avoid ad-hoc styling. Used in the Wind OSD Viewer's Progress Status to surface state and workflow per step.

Progress Status Button Example
Progress Status Button Anatomy

Variants

Progress Status Button Type

Type

Two types — Approved, In Review — applied flexibly per stage and situational hierarchy.

Progress Status Button State

State

Two states — Default, Hover — matched to the progress stage.

Progress Status Button Size

Size

A single size — Width = 58px, Height = 18px.


Combo Button

A button paired with a dropdown list — used when related actions need multiple options. In the Wind Do Task view, supports multi-format export (Export PDF, CSV, AI Hub). Uses a Primary Button with an icon.

Combo Button Example
Combo Button Anatomy

Variants

Combo Button Type

Type

Currently a single type — a Secondary-styled Combo Button can be composed if needed.

Combo Button State

State

Four states — Default, Hover, Clicked, Disabled — mirroring Dropdown's state set.

Combo Button Menu

Combo Button Menu

The menu surfaced on Combo Button selection uses the same Dropdown Menu component at matching size. Menu items hold the same width as the button.