Design System Showcase

Design tokens and component library

base

Colors

Color primitives organized into scales. Each scale has numbered shades from light to dark, plus semantic variants (muted, subtle) for transparency effects.

Blue

--color-blue-*
25#f9f9fe
50#e5e5fe
100#bcbefe
200#989cfe
300#666afe
400#5157fe
500#3e44fe
600#2e34e5
700#1217b2
800#11145f
900#090b34
Default:
#3e44fe

Purple

--color-purple-*
25#fdfaff
50#f7ebff
100#ebccff
200#d599ff
300#c26bff
400#b752ff
500#aa33ff
600#8829cc
700#600f99
800#400a66
900#200533
Default:
#aa33ff

Neutral

--color-neutral-*
25#f3f3f8
50#e4e4f0
100#d8d8e8
200#c0c0d1
300#aaaabd
400#8b8b9e
500#676776
600#4a4a57
700#3c3c48
800#25252e
900#1e1f28
950#181921
1000#13141c
Default:
#676776

Warning

--color-warning-*
25#fffdfa
50#fff9f2
100#ffecd9
200#ffd9b2
300#ffc68c
400#ffb266
500#ff9f40
600#d97716
700#99520b
800#592e04
900#331900
Default:
#ff9f40

Success

--color-success-*
25#fafffb
50#f2fff6
100#d4fae0
200#abf5c1
300#84f0a4
400#5eeb88
500#33cc61
600#13bf47
700#008c2a
800#00591b
900#00330f
Default:
#33cc61

Info

--color-info-*
25#fafcff
50#f2f7ff
100#d7e6fd
200#afcdfa
300#88b4f7
400#629cf5
500#3d85f2
600#1358bf
700#0a3e8c
800#042659
900#001433
Default:
#3d85f2

Error

--color-error-*
25#fffafa
50#fff2f2
100#fdd7d7
200#faafaf
300#f78888
400#f56262
500#f23d3d
600#bf1313
700#8c0a0a
800#590404
900#330000
Default:
#f23d3d

Base Colors

Fundamental color values

black#13141c
white#ffffff
transparent#00000000
imageOverlay#00000099

Spacing

Consistent spacing scale based on a base unit. Use these tokens for margins, padding, and gaps.

--spacing-00px
--spacing-18px
--spacing-216px
--spacing-324px
--spacing-432px
16px - standard padding (4 x 4px base)
--spacing-540px
--spacing-648px
--spacing-864px
--spacing-1080px
--spacing-1296px
--spacing-offset-10px
--spacing-offset-20px
--spacing-offset-30px
--spacing-offset-40px
--spacing-component-spacing0px
--spacing-internal-padding32px
Internal padding between content elements within a component
--spacing-column-count4px
--spacing-gutter16px
--spacing-margin24px
--spacing-2-col-offset-min-width280px
--spacing-3-col-offset-min-width300px
--spacing-min-width340px
--spacing-default-width360px
--spacing-max-width767px
--spacing-horizontal-padding16px
--spacing-block-vertical-padding2.5rem
--spacing-block-transition2.5rem
Vertical gap inserted between two adjacent blocks only when their width class changes (full ↔ immersive ↔ bleed). Same width class gets no gap.
--spacing-block-vertical-padding-card1rem
--spacing-block-internal-s0.5rem
--spacing-block-internal-l1.5rem
--spacing-block-internal-m1rem

Corner Radius

Border radius values for rounding corners. Applied consistently across the design system.

--corner-medium8px
--corner-full400px
--corner-large12px
--corner-small4px

Shadows

Elevation shadows create depth and hierarchy. Use sparingly - shadows are more prominent in light mode.

none
--shadow-none
focus
--shadow-focus
focusRing
--shadow-focus-ringVisible focus indicator for interactive elements (form fields, buttons, links). Use this on `:focus-visible` to meet WCAG 2.2 visible-focus requirements. `shadow.focus` is a softer drop-shadow used in non-keyboard contexts; this token is the keyboard-a11y ring.
focusDanger
--shadow-focus-danger
large
--shadow-large
medium
--shadow-medium
small
--shadow-small
glow
--shadow-glow
glowSecondary
--shadow-glow-secondary
pressed
--shadow-pressed

Typography

Type system including font families, sizes, weights, and line heights.

Text Styles

Composite typography tokens combining font properties into ready-to-use styles.

body--text-style-body
FontAvenirNextLTPro,sans-serif
Weight400
Base Size1rem
Line Height1.6
Spacingnormal
The quick brown fox jumps over the lazy dog
body-1--text-style-body-1
FontAvenirNextLTPro,sans-serif
Weight400
Base Size1rem
Line Height1.6
Spacingnormal
The quick brown fox jumps over the lazy dog
body-2--text-style-body-2
FontAvenirNextLTPro,sans-serif
Weight400
Base Size0.875rem
Line Height1.6
Spacingnormal
The quick brown fox jumps over the lazy dog
body-3--text-style-body-3
FontAvenirNextLTPro,sans-serif
Weight400
Base Size0.875rem
Line Height1.6
Spacingnormal
The quick brown fox jumps over the lazy dog
caption--text-style-caption
FontAvenirNextLTPro,sans-serif
Weight600
Base Size0.75rem
Line Height1
Spacingnormal
The quick brown fox jumps over the lazy dog
eyebrow--text-style-eyebrow
FontAvenirNextLTPro,sans-serif
Weight600
Base Size0.75rem
Line Height1
Spacingnormal
The quick brown fox jumps over the lazy dog
h1--text-style-h1
FontAvenirNextLTPro,sans-serif
Weight600
Base Size2.5rem
Line Height1.2
Spacingnormal
The quick brown fox jumps over the lazy dog
h2--text-style-h2
FontAvenirNextLTPro,sans-serif
Weight600
Base Size2rem
Line Height1.2
Spacingnormal
The quick brown fox jumps over the lazy dog
h3--text-style-h3
FontAvenirNextLTPro,sans-serif
Weight600
Base Size1.75rem
Line Height1.3
Spacingnormal
The quick brown fox jumps over the lazy dog
h4--text-style-h4
FontAvenirNextLTPro,sans-serif
Weight400
Base Size1.5rem
Line Height1.3
Spacingnormal
The quick brown fox jumps over the lazy dog
h5--text-style-h5
FontAvenirNextLTPro,sans-serif
Weight600
Base Size1.25rem
Line Height1.3
Spacingnormal
The quick brown fox jumps over the lazy dog
h6--text-style-h6
FontAvenirNextLTPro,sans-serif
Weight600
Base Size1rem
Line Height1.4
Spacingnormal
The quick brown fox jumps over the lazy dog
h7--text-style-h7
FontAvenirNextLTPro,sans-serif
Weight600
Base Size1rem
Line Height1.4
Spacingnormal
The quick brown fox jumps over the lazy dog

Type Hierarchy

Display (h1)
Design Tokens
Heading (h3)
Section heading for content areas
Body (body-1)
Body text forms the foundation of any interface. It needs to be readable at various screen sizes, from compact mobile layouts to expansive desktop monitors. Good body typography balances line length, line height, and font size to maintain comfortable reading across all breakpoints. This paragraph demonstrates how body text reflows and scales as the viewport changes — notice how the text remains legible and well-spaced regardless of screen width.
Caption (caption)
Small text for captions, labels, and supporting information

Font Families

The quick brown fox jumps over the lazy dog
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789 !@#$%^&*()
base--typography-font-family-basePrimary font for body text and UIAvenirNextLTPro,sans-serif
The quick brown fox jumps over the lazy dog
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789 !@#$%^&*()
mono--typography-font-family-monomonospace,sans-serif

Font Sizes

--typography-font-size-h12.5rem
The quick brown fox jumps over the lazy dog
--typography-font-size-h22rem
The quick brown fox jumps over the lazy dog
--typography-font-size-h31.75rem
The quick brown fox jumps over the lazy dog
--typography-font-size-h41.5rem
The quick brown fox jumps over the lazy dog
--typography-font-size-h51.25rem
The quick brown fox jumps over the lazy dog
--typography-font-size-h61rem
The quick brown fox jumps over the lazy dog
--typography-font-size-body1remBody text
The quick brown fox jumps over the lazy dog
--typography-font-size-caption0.75rem
The quick brown fox jumps over the lazy dog
--typography-font-size-body-11rem
The quick brown fox jumps over the lazy dog
--typography-font-size-body-20.875rem
The quick brown fox jumps over the lazy dog
--typography-font-size-body-30.875rem
The quick brown fox jumps over the lazy dog
--typography-font-size-h71rem
The quick brown fox jumps over the lazy dog
--typography-font-size-eyebrow0.75rem
The quick brown fox jumps over the lazy dog

Font Weights

The quick brown fox
--typography-font-weight-lightlight (300)300 weight - light text
The quick brown fox
--typography-font-weight-regularregular (400)
The quick brown fox
--typography-font-weight-semiboldsemibold (600)600 weight - buttons, labels
The quick brown fox
--typography-font-weight-mediummedium (500)500 weight
The quick brown fox
--typography-font-weight-boldbold (700)

Line Heights

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.
--typography-line-height-100100 (100%)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.
--typography-line-height-120120 (120%)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.
--typography-line-height-130130 (130%)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.
--typography-line-height-140140 (140%)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.
--typography-line-height-160160 (160%)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.
--typography-line-height-relaxedrelaxed (200%)
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.
--typography-line-height-tighttight (100%)

Letter Spacings

Aa Bb Cc
--typography-letter-spacing-normalnormal (0em)Normal letter spacing
Aa Bb Cc
--typography-letter-spacing-tighttight (-0.025em)Tighter - large headings
Aa Bb Cc
--typography-letter-spacing-widewide (0.05em)Wider - overlines, all-caps

Borders

Composite border tokens combining width, style, and color.

--border-standardstandardStandard 1px solid border
--border-inputinput1px solid high-contrast border for form-field inputs
--border-transparenttransparent
--border-errorerror
--border-dasheddashed

Opacity

Opacity levels for creating tinted variants and transparency effects.

--opacity-softsoft (15%)
--opacity-mutedmuted (50%)Half opacity (50%)
--opacity-subtlesubtle (25%)Mostly transparent (25%)
--opacity-strongstrong (60%)

Animation

Motion tokens for consistent, purposeful animations across the UI.

Duration

Hover to preview
--duration-normalnormal (200ms)Normal - button feedback, tooltips

Easing

Hover to preview
--easing-easeeasecubic-bezier(0.25, 0.1, 0.25, 1)General purpose easing

Theme Tokens

Semantic tokens that adapt to light/dark mode. These reference primitive tokens but switch values based on the active theme.

Surfaces

Layered backgrounds for creating depth

Light
#ffffff
Dark
#13141c
--theme-surface-11Base canvas - the lowest layer
Light
#e4e4f0
Dark
#25252e
--theme-surface-22Raised surface - cards, panels
Light
#d8d8e8
Dark
#3c3c48
--theme-surface-33Overlay surface - modals, popovers
Light
#f3f3f8
Dark
#1e1f28
--theme-surface-defaultdefault
Light
#f3f3f8
Dark
#181921
--theme-surface-alternativealternative
Light
#c0c0d1
Dark
#3c3c48
--theme-surface-interactive-defaultdefault
Light
#8b8b9e
Dark
#676776
--theme-surface-interactive-hoverhover
Light
#f3f3f8
Dark
#3c3c48
--theme-background-subtlesubtle
Light
#d8d8e8
Dark
#4a4a57
--theme-background-hoverhover
Light
#ffffff
Dark
#13141c
--theme-background-sitesiteBase page background color applied to <body> via layout.css. Do not remove without updating layout.css.

Text Colors

Light
#13141c
Dark
#ffffff
--theme-text-inverseinverse
Light
#3c3c48
Dark
#aaaabd
--theme-text-secondarysecondary
Light
#4a4a57
Dark
#8b8b9e
--theme-text-mutedtextMuted

Border Colors

Light
#c0c0d1
Dark
#3c3c48
--theme-borderborder
Light
#d8d8e8
Dark
#25252e
--theme-border-subtleborderSubtle

Feedback States

Light
#33cc61
Dark
#5eeb88
--theme-color-successsuccess
Light
#1358bf
Dark
#3d85f2
--theme-color-infoinfo
Light
#f23d3d
Dark
#f56262
--theme-color-errorerror

Elevation

--theme-elevation-11Subtle lift - cards
Light
0px 1px 2px 0px [object Object]
Dark
0px 0px 0px 0px [object Object]
--theme-elevation-22Medium lift - dropdowns
Light
0px 4px 6px 0px [object Object]
Dark
0px 0px 0px 0px [object Object]
--theme-elevation-33High lift - modals
Light
0px 10px 15px 0px [object Object]
Dark
0px 10px 15px 0px [object Object]

Color

Light
#aa33ff
Dark
#b752ff
--theme-color-accent-defaultdefault
Light
#8829cc
Dark
#aa33ff
--theme-color-accent-hoverhover
Light
#d599ff
Dark
#600f99
--theme-color-accent-low-contrastlowContrast
Light
#2e34e5
Dark
#5157fe
--theme-color-primary-hoverhover

Stroke

Light
#666afe
Dark
#989cfe
--theme-stroke-focus-borderfocusBorder
Light
#aaaabd
Dark
#8b8b9e
--theme-stroke-high-contrast-defaultdefault
Light
#8b8b9e
Dark
#c0c0d1
--theme-stroke-high-contrast-hoverhover
Light
#1e1f28
Dark
#f3f3f8
--theme-stroke-high-contrast-activeactive
Light
#13141c
Dark
#ffffff
--theme-stroke-high-contrast-inverseinverse
Light
#c0c0d1
Dark
#3c3c48
--theme-stroke-soft-contrast-defaultdefault
Light
#8b8b9e
Dark
#676776
--theme-stroke-soft-contrast-hoverhover
Light
#676776
Dark
#8b8b9e
--theme-stroke-soft-contrast-activeactive
Light
#d8d8e8
Dark
#25252e
--theme-stroke-soft-contrast-dividerdivider

Border

Light
ref
1px solid {color.neutral.600}
Dark
ref
1px solid {color.neutral.200}
--border-standardstandardStandard 1px solid border
Light
ref
1px solid {color.neutral.300}
Dark
ref
1px solid {color.neutral.400}
--border-inputinput1px solid high-contrast border for form-field inputs

Components

Button

Primary action trigger

Primary
Primary Disabled
Secondary

IconButton

Icon-only button

Primary
Secondary Outlined
Secondary Filled

Link

Navigation link

Default
Learn more
With Arrow
Learn more
External Link
Visit GitHub

PlayButton

Media play button

Default
Small
Large

DropdownMenu

Action menu

Default
Edit
Duplicate
Rename
Delete
Open
Edit
Duplicate
Rename
Delete
FileMenu
New FileCtrl+N
Open...Ctrl+O

SaveCtrl+S
Save As...Ctrl+Shift+S

Export
CloseCtrl+W

ContextMenu

Right-click menu

Default
OpenEnter
Open With...
VS Code
Sublime Text
Vim

Cut⌘X
Copy⌘C
Paste⌘V

RenameF2
Duplicate⌘D

Move to Trash⌘⌫
Small
OpenEnter
Open With...
VS Code
Sublime Text
Vim

Cut⌘X
Copy⌘C
Paste⌘V

RenameF2
Duplicate⌘D

Move to Trash⌘⌫
Large
OpenEnter
Open With...
VS Code
Sublime Text
Vim

Cut⌘X
Copy⌘C
Paste⌘V

RenameF2
Duplicate⌘D

Move to Trash⌘⌫

Pagination

Page navigation

Default
......
First Page
...
Last Page
...

Input

Text input field

Default
(Optional)
With Value
(Optional)
Required
(Optional)

InputGroup

Input with addons

Default
@
With Action
$
Error
@

TextArea

Multi-line text input

Default
(Optional)
With Value
(Optional)
Required
(Optional)

Select

Dropdown selection

Default
Apple
Banana
Cherry
Date
Elderberry
Open
Apple
Banana
Cherry
Date
Elderberry
WithValue
Apple
Banana
Cherry
Date
Elderberry

Checkbox

Boolean selection control

Default
Checked
Disabled

Radio

Single selection from options

Default
Select an option
Small
Select an option
Large
Select an option

Toggle

Press toggle button

Default
Pressed
Disabled

Slider

Range value selection

Default
50
Controlled
30
Range
25, 75

NumberInput

Numeric input

Default
WithValue
WithMinMax

PinInput

PIN/OTP input

Default
SixDigits
WithValue

DatePicker

Date selection

Default
SMTWTFS
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
Open
SMTWTFS
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
WithValue
SMTWTFS
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029

ColorPicker

Color selection

Default
WithSwatches
WithAlpha

TagsInput

Tag management

Default
WithTags
ManyTags

Combobox

Searchable select

Default
React
Vue
Angular
Svelte
Solid
Preact
Astro
Qwik
Open
React
Vue
Angular
Svelte
Solid
Preact
Astro
Qwik
WithValue
React
Vue
Angular
Svelte
Solid
Preact
Astro
Qwik

FileUpload

File input

Default
Drag and drop files here, or click to browseSingle file only
Multiple
Drag and drop files here, or click to browseUp to 1 files
ImagesOnly
Drag and drop files here, or click to browseSingle file only

SignaturePad

Signature capture

Default
Signature
Small
Signature
Large
Signature

Form

Form container

Default
Horizontal
Compact Spacing

Switch

On/off toggle switch

Default
Checked
Disabled Checked

PasswordInput

Password input field

Default
WithPlaceholder
Disabled

RatingGroup

Star rating input

Default
WithValue
ReadOnly

SegmentGroup

Segmented control

Default
WithLabel
View Mode
Small

ToggleGroup

Grouped toggle buttons

Default
Multiple
Disabled

Editable

Inline editable text

Default
Click me to edit
WithLabel
johndoe
DoubleClickActivation
Double-click me

Field

Form field wrapper

Default
WithHelperText
We'll never share your email.
WithError
Email is required.

Fieldset

Form field group

Default
Personal Information
WithHelperText
Contact DetailsPlease provide your contact information.
WithError
Account SettingsPlease fix the errors below.

Tabs

Tabbed content panels

Default
Full Width
With Disabled Tab

Accordion

Expandable content sections

Default
Is it accessible?
Yes. It adheres to the WAI-ARIA design pattern for accordions.
Is it styled?
Yes. It comes with default styles using design tokens that match the other components.
Is it animated?
Yes. It uses CSS animations for smooth expand/collapse transitions.
Multiple Open
Is it accessible?
Yes. It adheres to the WAI-ARIA design pattern for accordions.
Is it styled?
Yes. It comes with default styles using design tokens that match the other components.
Is it animated?
Yes. It uses CSS animations for smooth expand/collapse transitions.
All Collapsed
Is it accessible?
Yes. It adheres to the WAI-ARIA design pattern for accordions.
Is it styled?
Yes. It comes with default styles using design tokens that match the other components.
Is it animated?
Yes. It uses CSS animations for smooth expand/collapse transitions.

Tour

Guided tour

Default
WithProgress
Small

TreeView

Hierarchical data display

Default

Files

src
components
Button.tsx
Card.tsx
Dialog.tsx
utils
helpers.ts
constants.ts
index.ts
public
favicon.ico
robots.txt
package.json
README.md
Organization

Team

Engineering
Frontend
Alice
Bob
Backend
Charlie
Diana
Design
Eve
Frank
Small

Files

src
components
Button.tsx
Card.tsx
Dialog.tsx
utils
helpers.ts
constants.ts
index.ts
public
favicon.ico
robots.txt
package.json
README.md

Collapsible

Expandable/collapsible section

Default
Toggle
InitiallyOpen
Toggle

Steps

Step-by-step workflow

Default
Enter your email and password to create your account.
Add your name, avatar, and bio.
Your account is ready to use.
All steps completed!
Vertical
Enter your email and password to create your account.
Add your name, avatar, and bio.
Your account is ready to use.
All steps completed!
WithCompletedContent
Upload your files.
Processing your files...
All files processed successfully!
All steps completed!

Card

Content container

Video
Sample image

Card Heading

This section is where descriptive content would normally appear. It helps demonstrate how text flows.

Square
Sample image

Card Heading

This section is where descriptive content would normally appear. It helps demonstrate how text flows.

Portrait
Sample image

Card Heading

This section is where descriptive content would normally appear. It helps demonstrate how text flows.

Dialog

Modal dialog overlay

Default

Edit Profile

Make changes to your profile here. Click save when done.

Dialog content

Small

Confirm Action

Are you sure you want to continue?

Dialog content

Large

Settings

Configure your application settings.

Dialog content

Tooltip

Contextual help on hover

Default
This is a tooltip
PlacementBottom
Bottom tooltip
PlacementLeft
Left tooltip

HoverCard

Rich hover content

Default
Small
Large

Toast

Notification message

Info

Information

This is an informational message.

Success

Success!

Your changes have been saved successfully.

Warning

Warning

This action cannot be undone.

FloatingPanel

Floating container

Default
Small
Large

Popover

Floating content panel

Default

Popover Title

This is a popover with some descriptive text.

WithDescription

Settings

Adjust your preferences below.

Small

Quick Info

A small popover.

Image

Image display

Default
A beautiful landscape
Square
Square image
Video Aspect
16:9 aspect ratio

Icon

Icon display

Default
Extra Small
Small

Avatar

User avatar display

Default
John Doe
Fallback
John Doe
Small
Jane Smith

Carousel

Sliding content carousel

Default
MultiSlide
SnapProximity

Clipboard

Copy to clipboard

Default
WithLabel
CustomTimeout

Listbox

List selection

Default
Apple
Banana
Cherry
Date
Elderberry
WithLabel
Select a fruit
Apple
Banana
Cherry
Date
Elderberry
MultiSelect
Select multiple
Apple
Banana
Cherry
Date
Elderberry

Progress

Progress indicator

Default
Loading
ZeroPercent
Not Started
FullProgress
Complete

QrCode

QR code generator

Default
WithOverlay
Small

Splitter

Resizable split panes

Default
ThreePanels
Vertical

Layout Grid

Token-driven page layout. Press Ctrl+G to toggle the debug overlay.

Use PageLayout as your starting template — it shares this grid system with debug off by default. Import grid-debug.css and callinitGridDebug(container) to enable Ctrl+G toggling.

Site Header / Navigation

Main Content

Two-thirds width on desktop, full width on mobile

Sidebar

One-third width on desktop, stacks below on mobile

Card 1
Card 2
Card 3
Card 4
Two-thirds — col-two-thirds
One-third — col-third
Centered — col-half col-center
Left-aligned — col-third
Right-aligned — col-third col-end
Site Footer

Full-bleed section — content extends to viewport edges

Generated with DTK