Skip to main content

Buttons

Buttons are key interactive elements in the design system. Below is a table showing the different states, token names, and their corresponding color values.

brand

PreviewStateDesign Token NameColor ValueColor Preview
Enabled--interactive-primary-brand-enabled#ccc
Hovered--interactive-primary-brand-hovered#ccc
Focused--interactive-primary-brand-focused#ccc
Pressed--interactive-primary-brand-pressed#ccc
Ring--interactive-primary-brand-ring#ccc
Label--interactive-primary-brand-label#ccc
Accent--interactive-primary-brand-accent#ccc

product

PreviewStateDesign Token NameColor ValueColor Preview
Enabled--interactive-primary-product-enabled#ccc
Hovered--interactive-primary-product-hovered#ccc
Focused--interactive-primary-product-focused#ccc
Pressed--interactive-primary-product-pressed#ccc
Ring--interactive-primary-product-ring#ccc
Label--interactive-primary-product-label#ccc
Accent--interactive-primary-product-accent#ccc

secondary

PreviewStateDesign Token NameColor ValueColor Preview
Enabled--interactive-primary-secondary-enabled#ccc
Hovered--interactive-primary-secondary-hovered#ccc
Focused--interactive-primary-secondary-focused#ccc
Pressed--interactive-primary-secondary-pressed#ccc
Ring--interactive-primary-secondary-ring#ccc
Label--interactive-primary-secondary-label#ccc
Accent--interactive-primary-secondary-accent#ccc

info

PreviewStateDesign Token NameColor ValueColor Preview
Enabled--interactive-primary-info-enabled#ccc
Hovered--interactive-primary-info-hovered#ccc
Focused--interactive-primary-info-focused#ccc
Pressed--interactive-primary-info-pressed#ccc
Ring--interactive-primary-info-ring#ccc
Label--interactive-primary-info-label#ccc
Accent--interactive-primary-info-accent#ccc

success

PreviewStateDesign Token NameColor ValueColor Preview
Enabled--interactive-primary-success-enabled#ccc
Hovered--interactive-primary-success-hovered#ccc
Focused--interactive-primary-success-focused#ccc
Pressed--interactive-primary-success-pressed#ccc
Ring--interactive-primary-success-ring#ccc
Label--interactive-primary-success-label#ccc
Accent--interactive-primary-success-accent#ccc

warning

PreviewStateDesign Token NameColor ValueColor Preview
Enabled--interactive-primary-warning-enabled#ccc
Hovered--interactive-primary-warning-hovered#ccc
Focused--interactive-primary-warning-focused#ccc
Pressed--interactive-primary-warning-pressed#ccc
Ring--interactive-primary-warning-ring#ccc
Label--interactive-primary-warning-label#ccc
Accent--interactive-primary-warning-accent#ccc

critical

PreviewStateDesign Token NameColor ValueColor Preview
Enabled--interactive-primary-critical-enabled#ccc
Hovered--interactive-primary-critical-hovered#ccc
Focused--interactive-primary-critical-focused#ccc
Pressed--interactive-primary-critical-pressed#ccc
Ring--interactive-primary-critical-ring#ccc
Label--interactive-primary-critical-label#ccc
Accent--interactive-primary-critical-accent#ccc

neutral

PreviewStateDesign Token NameColor ValueColor Preview
Enabled--interactive-primary-neutral-enabled#ccc
Hovered--interactive-primary-neutral-hovered#ccc
Focused--interactive-primary-neutral-focused#ccc
Pressed--interactive-primary-neutral-pressed#ccc
Ring--interactive-primary-neutral-ring#ccc
Label--interactive-primary-neutral-label#ccc
Accent--interactive-primary-neutral-accent#ccc

Each button state uses a design token from the Figma system, ensuring consistency across the UI.

Usage Guidelines

Buttons are essential for user interaction and should be used consistently throughout the UI. Follow these guidelines:

  • Primary Buttons: Used for main actions, such as submitting a form.
  • Secondary Buttons: Used for less prominent actions.
  • Disabled Buttons: Indicate that an action is not available.
  • Size Guidelines: Maintain a minimum width of 48px height for touch accessibility.

Button Variations

TypeExampleDescription
Primary<button class="btn btn-primary">Click Me</button>Used for main actions
Secondary<button class="btn btn-secondary">Click Me</button>Used for secondary actions
Disabled<button class="btn btn-primary" disabled>Disabled</button>Disabled state
Outline<button class="btn btn-outline">Outline</button>A button with only a border

Code Snippets

Basic HTML

<button class="btn btn-primary">Click Me</button>

SCSS Styling

.btn-primary {
background-color: var(--interactive-primary-brand-enabled);
&:hover { background-color: var(--interactive-primary-brand-hovered); }
&:focus { background-color: var(--interactive-primary-brand-focused); }
}

React Example

import React from 'react';

const Button = ({ label }) => (
<button className="btn btn-primary">{label}</button>
);

export default Button;

Interactive Preview

An interactive button preview is coming soon! This will allow users to test different button states and configurations directly on this page.

Accessibility Considerations

To ensure buttons are accessible to all users:

  • Contrast Ratio: Buttons should have a minimum contrast ratio of 4.5:1.
  • Keyboard Navigation: Ensure buttons are focusable using the tab key.
  • ARIA Labels: Use aria-label for buttons that only contain icons.

Example:

<button aria-label="Close" class="btn-icon">
<svg>...</svg>
</button>

Figma & Resources

By following these guidelines, we ensure a consistent, accessible, and scalable button system for our design system.