Design system
Preparation
DELIVERY SAAS / COMPONENT LIBRARY64 components

One language. Every component.

The complete shadcn library, adapted to our Supernova design reference. Explore the controls and states before we build the product screens.

Examples use local demo data. No project changes are saved.

Foundations

The shared language beneath every component: warm surfaces, readable type, deliberate emphasis and state expressed with words.

Light theme

Color roles

Choose the role before the hue. Ember is earned by emphasis and interaction; neutral ink carries everyday actions. This preparation library is light only.

Canvas

--background#f8f7f4

Surface

--card#ffffff

Ink

--foreground#121212

Ember

--primary#ff2e0d

Warm fill

--muted#eeece9

Secondary text

--muted-foreground#666663

Surface and text pairs

Card

Card foreground

Warm fill

Secondary text

Ember

White text on brand orange

Navigation uses the same language

Sidebar surface

Selected destination

Supporting destination

State has a shape and a name

CompletedIn progressNeeds attentionFailedNo signal

Color reinforces meaning. Keep the label and distinct mark together. Unknown is not zero; no recorded failure is not proof of health.

Chart palettes

Standard component slots

Brand

--chart-1#ff2e0d

Ink

--chart-2#121212

Grey

--chart-3#666663

Soft grey

--chart-4#9e9c99

Orange

--chart-5#ff5a30

Overview categories

Category 1

--viz-cat-1#d63a12

Category 2

--viz-cat-2#2a78d6

Category 3

--viz-cat-3#1baf7a

Category 4

--viz-cat-4#eda100

Category 5

--viz-cat-5#e87ba4

Category 6

--viz-cat-6#4a3aa7

Sequential scale

Step 1

--viz-seq-1#86b6ef

Step 2

--viz-seq-2#5598e7

Step 3

--viz-seq-3#2a78d6

Step 4

--viz-seq-4#1c5cab

Step 5

--viz-seq-5#104281

Category order stays consistent. Positive, attention and adverse colors remain reserved for states. Some marks need labels or outlines to be distinguishable; every real chart provides the same records in a table.

Readable color pairs

Normal text needs at least 4.5:1 contrast. Large text needs 3:1. Brand-orange surfaces use white text and icons, following our shared rule. The measured white/red pair is below 4.5:1; the table records the actual contrast. Muted large labels and chart marks are not body-text colors.

PairSpecimenContrastNormal text
Main text / canvasAa 12317.49:1Passes 4.5:1
Secondary text / canvasAa 1235.38:1Passes 4.5:1
White / brand orangeAa 1233.72:1Below 4.5:1
Failure text / whiteAa 1237.21:1Passes 4.5:1
Attention text / whiteAa 1236.46:1Passes 4.5:1
Positive text / whiteAa 1237.54:1Passes 4.5:1

Typography

Reading title

Space Grotesk · 32px

Clarity before complexity.

Work-list title

Space Grotesk · 24px

Work in focus

Section heading

Space Grotesk · 20px / 600

A clear next action

Subheading

Space Grotesk · 16px / 600

Supporting context

Reading prose

Instrument Sans · 17px / 1.75

Make room for the work. Authored explanations stay readable in a single column, with complete criteria and enough space between groups. The page grows to fit the content.

UI and body

Instrument Sans · 15px

Compact controls, useful labels and quiet supporting text.

Technical values

IBM Plex Mono · 12.5px

UC-01 · request_id · 10 Oct 2026, 09:30 IST

Reading: 46rem. Forms and indexes: 48rem. Work lists: 56rem. Genuine tables and charts: up to 72rem. Wide authored text never disappears behind truncation.

Spacing

A 4px base rhythm. Compact controls and rows; generous separation between groups.

4px
8px
12px
16px
24px
32px
48px
64px

One-line row: 44px. Useful two-line row: approximately 60px. Wrapped authored text grows.

Radius

The shared base is 14px. Actions are pills; supporting surfaces use the calibrated radius scale.

sm

8.4px

md

11.2px

lg

14px

xl

19.6px

2xl

25.2px

3xl

30.8px

4xl

36.4px

pill

Full

Surfaces and elevation

Canvas

No elevation. The work surface stays quiet.

Raised surface

A small shadow and surface contrast.

Contextual overlay

Enough lift to show a separate layer.

Use surface contrast and elevation before borders. Reserve dividers for functional separation. Avoid repeated bordered cards and nested cards.

Control states and motion

Warm fill becomes white with one ember border.

Disabled controls cannot be activated.

Keyboard focus stays visible. Buttons use one outline; filled inputs use one border. Color and opacity settle in 150–250ms when useful. Navigation stays still, and reduced motion is respected.

Near-black by default. Red for emphasis, with quieter secondary and destructive actions.

36px default · 32px small · 44px large · Use one emphasis action per surface

Button Group

Documentation ↗

Related actions share a single group, with clear boundaries and keyboard focus.

Sample 1 of 3: Understand

A pressed state for one optional formatting or view preference.

Try formatting this text.

Toggle Group

Documentation ↗

Related options with single or multiple selection.

MULTIPLE SELECTION / FORMATTING

A local formatting preview.

SINGLE SELECTION / VIEW

ContextChangeEvidence

A visual hint for a keyboard shortcut. The hint itself does not bind a shortcut.

Keyboard notationCtrlK⌘KEscEnter

Hints only; no global shortcuts bound by this example.

Warm filled controls, one accent border on focus, and explicit disabled and invalid states.

Click or tab into the control to see its focus treatment.

Prefixes, suffixes, and contextual actions within one field.

3 matches
  • Invite a team member
  • Review a delivery plan
  • Inspect verification evidence

Illustrative requirements, filtered locally.

https://
.delivery.example
Plain text preview

Multi-line authored content stays readable and can grow.

0 / 500 characters

Every form control has a visible, associated label.

Labels, descriptions, controls, and errors form one accessible unit.

Project details

A clear name, at least 3 characters.

Submit empty fields to inspect validation, then correct them.

Independent choices with checked, unchecked, and disabled states.

Checkbox states

Completed items hidden.

Group is partially selected.

One choice from a set, with a shared accessible name.

Delivery priority

Selected: normal

An immediate, reversible on/off preference.

Notifications enabled in this preview.

Compact switch is on.

A custom single-choice menu with a selected value.

Selected: normal

Inspect the full long label, then scroll through 24 options. Use arrow keys, Home/End, and Enter to select.

Selected: Product discovery and requirements clarification across multiple connected repositories, services and delivery teams

Native Select

Documentation ↗

The browser’s native select for simple choices.

Selected team: engineering.

Search and select from a list. Try typing a role.

Type to filter. Use arrow keys and Enter to select.

No role selected.

Open to inspect scrolling and the full long label. Type “product” to filter, or use arrow keys and Enter to select.

No inspection topic selected.

A grouped, keyboard-accessible one-time code input. This demo does not verify codes.

Paste a code or enter digits. No verification request is sent.

Incomplete code: 0 of 6 digits entered.

1
2
3
4

Adjust a continuous value, with the selected amount shown in words.

25% to 75% capacity. Use arrow keys on a thumb to adjust.

Selected amount: 40%.

Locked at 60% in this preview.

Keyboard-accessible date selection in our warm-neutral palette.

October 2026

Selected: 12 Oct. Weekends are disabled.

A composition of Popover, Button, and Calendar.

Selecting a date closes the popover and updates the trigger.

Selected: 12 Oct.

Questionnaire

Documentation ↗

A progressive form with choices and explicit previous, next, and submit controls.

Question 1 of 3
What is your role?

Choose one. Letter shortcuts work while this question is active.

Answers stay in this demo. Nothing is saved or sent.

Explicit page navigation. This example changes its current page locally.

  • Button states
  • Field states
  • Overlay states

Page 1 of 3 · Showing 1–3 of 9 sample rows

Always underlined. Transparent tabs use an underline and stronger text for selection, never pills or filled segments.

Underline tabs, always

The selected tab has an underline and stronger text. All tab backgrounds stay transparent. This is a product-wide rule.

Filter commands and select a local demo action.

Use arrow keys, then Enter.

Selected command: None

--background: #f8f7f4

A focused task, with a visible title, description, and dismiss control.

Preview title: Design review

Alert Dialog

Documentation ↗

A confirmation pattern for a consequential action. This demo changes no records.

Sample note: Review the spacing of this confirmation.

A side surface for short supporting information.

Switch sides, then open. Escape returns focus to the trigger.

A bottom surface that keeps its initiating context nearby.

Open the drawer; drag the handle down to dismiss.

A small contextual surface anchored to a control.

A sample surface with a committed width of 280px. It shrinks to fit a narrow viewport.

Applied width: 280px

A short hint available on hover and keyboard focus.

Hints supplement a visible label or accessible name.

Supporting context for an identity, available without navigating away.

Context Menu

Documentation ↗

Secondary actions opened with a right click or the keyboard menu key.

Right-click here, or focus and press the context menu key.

No context action selected. Sample is not marked reviewed.

Related disclosures expand in place, with clear expanded state.

A single supporting section disclosed on demand.

A raised surface for one coherent piece of content. Avoid nesting cards.

One coherent surface
Card is available when content needs a distinct home.
Use elevation and surface contrast. Keep a clear title and avoid surrounding every row with a card.

An identity image with a legible fallback.

PMDVQAAB
PMDVQA
+2

Image, initials fallback, size, presence badge, and a grouped identity set.

Compact labels. Status also needs words and a shape.

DefaultRepositoryDraft Failed Completed

Compact rows with a title, description, and supporting action.

Preserve the complete acceptance criteria when a requirement spans several repositories and includes permission-sensitive behaviour

Long authored text wraps. It remains readable in the row, without a line clamp hiding the condition that makes the requirement meaningful.

Implementation plan

Keep authored content readable.

A file identity with its name, type, and size preserved.

product-requirements-with-full-cross-repository-acceptance-criteria.pdfPDF · 240 KB · Ready specimen

Choose a visual state or remove and restore the example. No file is uploaded.

Aspect Ratio

Documentation ↗

A predictable frame for visual content.

CodeDeliveryProduct twin

Space Grotesk headings, Instrument Sans body, and IBM Plex Mono technical values.

A reading page title

A compact work-list title

A section heading

Supporting structure

A story connects intended behaviour to the change needed to deliver it. Keep its acceptance criteria visible, readable, and connected to the evidence that verifies the outcome.

UI copy uses Instrument Sans at a comfortable 14–15px.

request_id: preview-01
Code describes implementation. Requirements describe intent. Test results provide verification evidence.

A quiet header and readable rows, with horizontal scrolling contained to the table.

Illustrative data only. Changes stay in this example.

Three illustrative delivery items. Test counts describe example cases, not passing results.
ItemOwnerStatusTest cases
Workspace navigation
EX-001
MiraComplete3
Requirement review
EX-002
ArunIn progress5
Release checklist for cross-repository changes, migration evidence and regression coverage
EX-003
SamNeeds attention2

A TanStack Table composition with filtering, sorting, selection, and pagination.

Illustrative data only. Changes stay in this example.

Sort, filter and select these seven illustrative items. Selection is a local preview only, with no bulk operation.
Workspace navigation
EX-001
MiraComplete3
Requirement review
EX-002
ArunIn progress5
Release checklist for cross-repository changes, migration evidence and regression coverage
EX-003
SamNeeds attention2

0 selected · 7 matching items

Page 1 of 3

A labeled trend with an equivalent data table. All values here are illustrative.

Illustrative data only. Changes stay in this example.

Planned and completed items

Count per week · illustrative five-week trend

PlannedCompleted

Planned is dashed in the line view and hatched in the bar view. Completed is solid in both. Use the table for exact values.

Inline context or failure information, with an icon and useful words.

Design examples use local data
Interactions are safe to explore and reset when this page reloads.

Explain what is absent and what can happen next.

Illustrative data only. Changes stay in this example.

No example items yet
Add an illustrative item to see how the empty state gives way to content.

Determinate completion with a matching text value.

Example import
x

40% complete in this local example.

A temporary shape for known loading content.

Loading example content.

Indeterminate activity, paired with a text label.

Loading example content

Loading example content.

Transient feedback that reports the actual outcome. These are local demo messages.

Illustrative data only. Changes stay in this example.

Example item present

No notification sent yet.

Notifications announce their own content. Dismiss with the close button. Hover pauses the timeout; loading waits for the outcome you choose.

A functional divider, used sparingly between content groups.

Separate groups when their relationship benefits from a divider.

CodeRequirementsEvidence

Overflow stays within its own surface, without widening the page.

Scroll or focus the viewport and use arrow keys. Overflow is contained here.

Two-dimensional work can give its panes adjustable space.

Drag the divider, or focus it and use left / right arrow keys to resize. Panes stack on narrow screens.

Navigation

A resizable supporting pane.

Work surface

Content adapts to available space.

A provider for right-to-left layout, without changing the page’s global direction.

Interface direction preview

01Controls keep their logical order

The provider and HTML direction apply only to this preview.

Compact conversational content with restrained background treatments.

Could we inspect the change impact?
Start with the affected code and its connected requirements.

An authored message with identity, content, and time.

PM
Product manager · Demo
Let’s review the proposed change before we begin implementation.
DV
Developer · Demo
I’ll check the plan and the affected dependencies.

Message Scroller

Documentation ↗

A conversation viewport with a control to return to its end.

Illustrative data only. Changes stay in this example.

Author · example 1

Illustrative message 1: reviewing one delivery detail.

Reviewer · example 2

Illustrative message 2: reviewing one delivery detail.

Author · example 3

Illustrative message 3: reviewing one delivery detail.

Reviewer · example 4

Illustrative message 4: reviewing one delivery detail.

Author · example 5

Illustrative message 5: reviewing one delivery detail.

Reviewer · example 6

Illustrative message 6: reviewing one delivery detail.

Author · example 7

Illustrative message 7: reviewing one delivery detail.

Reviewer · example 8

Illustrative message 8: reviewing one delivery detail.

Author · example 9

Illustrative message 9: reviewing one delivery detail.

Reviewer · example 10

Illustrative message 10: reviewing one delivery detail.

10 local messages · maximum 20

Scroll up to reveal the return-to-end control. New messages stay in this preview. Reset restores the original ten.

A quiet marker for dates or events within a conversation.

10 Oct 2026 · Sample date
Earlier activity
Start of the sample conversation