VisorVisor
Blocks

Design System Deck

A complete, registry-driven design system presentation deck with navigable slides, dot navigation, keyboard nav, and fullscreen support.

Preview

Design System

Visor

A theme-agnostic component system built on CSS custom properties. Tokens adapt. Components follow.

Contents

Table of Contents

Foundation
Visual Language
Utility
Components
Foundation

Theme Colors

Primary and neutral scales — fully theme-aware and responsive to the active theme.

Brand Color
Primary
#cfdfe7
100
#adc8d5
200
#89aec0
300
#6093aa
400
#397a96
500
#2a647c
600
#1a4e64
700
#0b3a4c
800
#002938
900
#001c29
950
Neutral
#f3f4f6
100
#e5e7eb
200
#d1d5db
300
#9ca3af
400
#6b7280
500
#4b5563
600
#374151
700
#1f2937
800
#111827
900
#030712
950
Foundation

Status Colors

Success, warning, error, and info — semantic color scales for system feedback.

Success
#f0fdf4
50
#dcfce7
100
#22c55e
500
#16a34a
600
#15803d
700
#14532d
900
Warning
#fffbeb
50
#fef3c7
100
#f59e0b
500
#d97706
600
#b45309
700
#78350f
900
Error
#fef2f2
50
#fee2e2
100
#ef4444
500
#dc2626
600
#b91c1c
700
#7f1d1d
900
Info
#f0f9ff
50
#e0f2fe
100
#0ea5e9
500
#0284c7
600
#0369a1
700
#0c4a6e
900
Foundation

Semantic Tokens

Named by purpose, not by value. These tokens switch automatically when the theme changes — components never need to know which theme is active.

Text
Text
text-primary
text-secondary
text-tertiary
text-link
Surface
Surface
surface-page
surface-card
surface-subtle
surface-overlay
Border
Border
border-default
border-muted
border-focus
Foundation

Display Scale

Large-format type for headings and hero text. Bold weights, tight line-heights, designed to command attention.

4xl36px
Display text
3xl30px
Page heading
2xl24px
Section heading
xl20px
Subsection heading
Foundation

Body & Utility

Reading text and supporting sizes. Optimized for comfortable line lengths, generous line-heights, and clear hierarchy.

lg18px
Large body text for emphasis and introductions
base16px
Default body text for reading — the workhorse of the system
sm14px
Small text for labels, captions, and supporting information
xs12px
Fine print, metadata, and legal text
Visual Language

Text Opacity

Semantic text color tokens create a natural reading hierarchy.

The quick brown fox
text-primaryPrimary content, headings
The quick brown fox
text-secondarySupporting text, labels
The quick brown fox
text-tertiaryCaptions, metadata
The quick brown fox
text-disabledDisabled states
Foundation

Theme Architecture

A 3-tier token system. Primitives define the palette. Semantic tokens name by purpose. Adaptive tokens switch with the theme.

1
Primitives

Raw values — colors, spacing, font sizes. The building blocks.

--color-blue-500: #3b82f6
2
Semantic

Named by purpose. Components reference these, never primitives.

--text-link: var(--color-blue-600)
3
Adaptive

Theme-aware reassignments. Switch themes by swapping this layer.

.theme-dark { --text-primary: var(--color-gray-50) }
Visual Language

Elevation & Surfaces

Shadow tokens for depth and surface tokens for layering hierarchy.

Shadows

xs

--shadow-xs

sm

--shadow-sm

md

--shadow-md

lg

--shadow-lg

xl

--shadow-xl
Surfaces
Page--surface-page
Card--surface-card
Subtle--surface-subtle
Muted--surface-muted
Overlay--surface-overlay
Accent Subtle--surface-accent-subtle
Accent Default--surface-accent-default
Accent Strong--surface-accent-strong
Visual Language

Border Radius

Radius scale from sharp corners to fully rounded.

none0px
sm2px
md4px
lg8px
xl12px
2xl16px
3xl24px
full9999px
Visual Language

Motion

Duration and easing tokens that control transition feel.

Durations
100ms
--motion-duration-100
150ms
--motion-duration-150
200ms
--motion-duration-200
300ms
--motion-duration-300
500ms
--motion-duration-500
800ms
--motion-duration-800
Easing Curves
linear
linear
ease-in
cubic-bezier(0.4, 0, 1, 1)
ease-out
cubic-bezier(0, 0, 0.2, 1)
ease-in-out
cubic-bezier(0.4, 0, 0.2, 1)
spring
cubic-bezier(0.34, 1.56, 0.64, 1)
Utility

Icons

Phosphor icons at multiple sizes. All icons from @phosphor-icons/react.

Size Scale
16px
20px
24px
32px
Icon Map
HouseHome / dashboard
MagnifyingGlassSearch
GearSettings
UserProfile / account
BellNotifications
EnvelopeSimpleMessages / email
PlusAdd / create
XClose / dismiss
CheckConfirm / success
WarningWarning / caution
InfoInformation
ArrowRightNavigate / next
CaretDownExpand / dropdown
DotsThreeMore actions
PencilSimpleEdit
TrashDelete
Utility

Accessibility

WCAG contrast ratios for the most common text and background pairs.

Aa
text-primary / surface-page15.4:1
AA AAA
Aa
text-secondary / surface-page5.74:1
AA AAA
Aa
text-tertiary / surface-page4.75:1
AA AAA
Aa
text-link / surface-page4.62:1
AA AAA
Aa
text-inverse / surface-overlay14.7:1
AA AAA
Aa
text-error / surface-page5.25:1
AA AAA
Components

Buttons

Five variants across three sizes. All variants inherit theme tokens automatically.

Variants
Sizes
Disabled
Components

Form Controls

Core input components in their default state.

Text Input
Select
Checkbox
Switch
Radio Group
Toggle Group
Components

Component Showcase

A selection of Visor components composed together.

Card
Card Title

Card content with body text and semantic surface tokens.

Badge
DefaultSecondaryOutlineDestructive
Alert
Progress
25%
75%
100%
Tabs

Overview content goes here.

Separator

Content above

Content below

Visor Design System

Start Building

Install components with the registry CLI. Tokens ship via npm. Themes are just CSS.

Installation

npx visor add --block design-system-deck

This copies the deck block and all its dependencies into your project:

  • blocks/design-system-deck/design-system-deck.tsx — thin wrapper around DeckRenderer
  • blocks/design-system-deck/registry.ts — declarative slide list with id/title/section/component
  • blocks/design-system-deck/slides/ — 12 slide components covering foundations, visual language, utility, and components

Usage

import { DesignSystemDeck } from '@/blocks/design-system-deck/design-system-deck';

export default function DesignSystemPage() {
  return <DesignSystemDeck />;
}

Without Table of Contents

<DesignSystemDeck showTOC={false} />

Fullscreen Only

<DesignSystemDeck fullscreen fullscreenLabel="View Design System" />

Props

PropTypeDefaultDescription
showTOCbooleantrueShow an auto-generated table of contents slide
tocImagestringBackground image for the TOC slide
showFooterbooleantrueShow a footer with section navigation
brandNamestring'Low Orbit Studio'Brand name displayed in the footer
fullscreenbooleanfalseRender as a fullscreen overlay with trigger button
fullscreenLabelstring'Fullscreen'Label for the fullscreen trigger button
classNamestringAdditional CSS class for the root element

Slides

The deck includes 12 slides organized into 4 sections:

Foundation

  • Color Palette — primitive and semantic color tokens
  • Typography — full type scale from display to fine print
  • Spacing — 4px-based spacing scale

Visual Language

  • Elevation & Surfaces — shadow levels and surface tokens
  • Border Radius — radius scale
  • Motion — duration and easing tokens
  • Text Opacity — semantic text color hierarchy

Utility

  • Icons — Phosphor icons at multiple sizes
  • Accessibility — WCAG contrast pairs with AA/AAA indicators

Components

  • Buttons — all variants, sizes, and interactive states
  • Form Controls — input, checkbox, radio, select, switch, slider, toggle group
  • Component Showcase — card, badge, alert, progress, tabs, separator
  • Scroll — vertical scroll between slides
  • Keyboard — arrow keys, Page Up/Down, Home/End
  • Dot navigation — clickable dots on the right side with slide title tooltips

Theme Responsive

The deck is fully theme-responsive. Switch themes using the docs header theme switcher to see every slide update in real-time. This is the primary way to preview what a design system looks like under any given theme.

About Blocks

Blocks are complete UI patterns made up of multiple Visor components. Unlike individual components, blocks represent larger, composed sections of UI. Blocks are copy-and-own, just like components — install them into your project and customize freely.