Skip to page content
Proof Docs
Design systemshadcn / Base UI / Nova

Proof style guide

The parts that make Proof feel like Proof. These are live components from the site, with the same shared styles. Use the theme control above to compare light and dark mode.

01

Colors

Colors come directly from the site's CSS variables. Each swatch changes with the active theme. Status colors also have soft surface colors.

Page

--background

Main text

--foreground

Cards

--card

Primary action

--primary

Secondary action

--secondary

Quiet surface

--muted

Supporting text

--muted-foreground

Hover / selection

--accent

Borders

--border

Input border

--input

Focus ring

--ring

Destructive action

--destructive

Editorial surface

--paper

Editorial text

--ink

Success

--proof-success

Success surface

--proof-success-soft

Needs attention

--proof-warning

Attention surface

--proof-warning-soft

Denied / failure

--proof-denied

Failure surface

--proof-denied-soft

02

Typography

Nunito gives display and shared headings rounded edges. Geist Sans stays clear in controls and body text; Geist Mono labels code.

Nunito · display · semibold

Know what still works.

Nunito · heading · semibold

An important customer outcome

text-base · regular

Customers can finish checkout and keep their cart after sign-in.

text-sm · muted-foreground

Supporting text explains what happened and what to do next.

Geist Mono · test_001 · 0123456789

03

Spacing

Spacing uses Tailwind's shared scale. Small gaps group controls. Larger gaps separate content. Corner samples use Proof's radius variables.

1 · 4px
2 · 8px
3 · 12px
4 · 16px
6 · 24px
8 · 32px
12 · 48px
16 · 64px
radius-sm
radius-md
radius-lg
radius-xl

04

Buttons

Use the primary variant for the main action. Secondary and outline support it. Ghost is quiet. Destructive marks an action that removes something. Tab through the examples to see focus rings. Hover and press a button to see its motion.

Try a button to inspect its response.

05

Inputs

Shared fields include labels, help text, disabled controls, and errors. The invalid example stays invalid so its appearance is easy to inspect.

Give the project a clear name.

07

Tables

Shared table headers, rows, cells, and badges. Change the visible columns in View options above. Sample data only.

Example tests · no live project data
TestImportanceStatus
Complete checkoutCriticalPassed
Keep cart after sign-inImportantNeeds review
Update profileSupportingNot run

08

Cards & boxes

Cards group related content with a title, description, body, and optional footer. Both sizes below use the shared Card component without visual overrides.

Checkout behavior
Default card · 16px padding

Customers can place an order and receive confirmation.

Example behavior
Checkout behavior
Compact card · 12px padding

Customers can place an order and receive confirmation.

Example behavior

09

Feedback & navigation

Badges label short states. Alerts explain a condition. Tabs switch related content. Dialogs focus attention. Skeletons show a loading state.

defaultsecondaryoutlineghostdestructivelink

The customer outcome that matters.

Rounded pills for public examples.

10

Checkboxes & switches

Checkboxes select independent options. Switches turn a setting on or off. These controls only change this example.

Evidence to collect

Example preference. No tests will run.

Automatic tests: on

11

Radio groups & toggles

Radio buttons choose one option from a list. Toggle groups offer compact choices, such as a view or filter.

Test frequency

Selected view: list

A standalone toggle selects one independent display option.

12

Sliders & progress

Sliders select a numeric value. Progress shows completion. Move the slider or use its arrow keys to update both examples.

Use Left and Right to change by five percent.

Review progress
x

13

Avatars

Avatars identify people and teams. Initials remain visible when an image is missing. Three shared sizes and a group are shown here.

AMsm
AMdefault
AMlg
AMJRSK

15

Tooltips & popovers

Tooltips explain a control on hover or keyboard focus. Popovers hold a small amount of interactive content.

16

Sheets

A sheet opens a side panel while keeping the current page in context. Try it with a keyboard, and press Escape to close it.

17

Empty states

An empty state explains what is missing and offers a useful next action. This example can switch between empty and populated states.

No tests yet
Add an example to see how this state changes.

18

Button groups

Group related actions into a compact toolbar. Selection controls belong in a toggle group; these buttons perform separate actions.

Choose a review action.
Built from Proof's shared components and global styles. Changes to those sources appear here automatically.