Skip to content
Deckard
Esc
navigateopen⌘Jpreview
On this page

Theme gallery

Every built-in Deckard theme, previewed as a real slide canvas painted by that theme's own stylesheet, switchable between light and dark.

Each card applies one theme to the same slide in light and dark mode. The previews are [data-slide-canvas] elements with the chrome and progress bar the runtime renders. The stylesheet painting them is packages/themes/src/<name>/theme.css, the same file a deck loads.

Switch a card between light and dark, or enlarge it to take the full row. Every one of them carries both color modes; defaultColorMode decides which one a browser opens on.

Pick one by importing it:

import { meridian } from "@thebuilder/deckard-themes"

Or switch an existing deck with deckard add theme meridian. See the themes guide for ejecting and for writing your own.

meridian

defaultColorMode: "system", both modes. This is the theme a new deck opens in.

The quietest theme here. A near-white blue-gray in light mode and a cool near-black in dark, flat surfaces with a hairline border and softly rounded corners, no shadow in either mode. A white card on a white sheet with no shadow asks a lot of its border. If a deck of yours reads flat rather than calm, that is the thing to put back.

Light

--background
oklch(0.988 0.002 250)
--card
oklch(1 0 0)
--muted
oklch(0.962 0.004 250)
--border
oklch(0.885 0.005 250)
--primary
oklch(0.505 0.145 258)
--foreground
oklch(0.205 0.012 250)

Dark

--background
oklch(0.185 0.008 250)
--card
oklch(0.225 0.01 250)
--muted
oklch(0.28 0.012 250)
--border
oklch(0.325 0.012 250)
--primary
oklch(0.735 0.135 258)
--foreground
oklch(0.965 0.003 250)

aurora

defaultColorMode: "dark", both modes.

A live field behind the slides that open, break, state, and close a deck. Four background variants paint in a WebGL canvas rather than in CSS: hero and breaker take banded curtains, closing an undulating band, and statement a soft noise wash. Under every canvas the theme paints a gradient of the same three colours, and that gradient is the slide while the runtime loads, on a machine with no WebGL, and after a lost context. Reduced motion, a capture, and the presenter preview each hold the field on one fixed frame, so two screenshots of a slide are the same image.

Dark is home. Light mode carries its own field colours rather than the dark ones lightened, and both sets sit in theme.css beside the rest of the paint. Body copy runs light in Manrope under tightly tracked Space Grotesk display type.

The aurora card in the gallery is showing that painted gradient. The gallery renders slide markup and no runtime, so the card carries the hero variant’s fallback rather than a canvas.

Light

--background
oklch(0.985 0.006 275)
--card
oklch(0.955 0.012 275)
--muted
oklch(0.955 0.012 275)
--border
oklch(0.885 0.016 275)
--primary
oklch(0.45 0.155 195)
--foreground
oklch(0.215 0.032 275)

Dark

--background
oklch(0.165 0.032 275)
--card
oklch(0.215 0.038 275)
--muted
oklch(0.215 0.038 275)
--border
oklch(0.345 0.036 275)
--primary
oklch(0.755 0.155 195)
--foreground
oklch(0.975 0.008 275)

blueprint

defaultColorMode: "dark", both modes.

A drafting sheet. The background variant that carries the theme is grid, which draws a cell pitch and a division pitch over each other from the same corner. Nothing is rounded and nothing is tinted: a section number sits boxed in three strokes of the accent, a card grid is butted together over a field of the line colour so the gutters read as drawn divisions, and an opener’s meta row becomes the title block along the foot of the sheet. Body copy runs a weight under regular in both modes, which is what keeps a slide reading as a drawing rather than as a web page.

Light

--background
oklch(0.985 0.006 240)
--card
oklch(0.955 0.012 240)
--muted
oklch(0.955 0.012 240)
--border
oklch(0.855 0.024 240)
--primary
oklch(0.505 0.135 235)
--foreground
oklch(0.235 0.036 245)

Dark

--background
oklch(0.185 0.032 245)
--card
oklch(0.235 0.036 245)
--muted
oklch(0.235 0.036 245)
--border
oklch(0.375 0.04 240)
--primary
oklch(0.795 0.135 205)
--foreground
oklch(0.965 0.012 220)

ledger

defaultColorMode: "system", both modes.

A bound report. Nothing is rounded and nothing is raised; rules carry the structure a shadow would carry elsewhere. Three families on one slide, each with exactly one job: serif says what the section is, sans argues it, mono numbers it. The accent is oxblood on paper and a warmer rust after dark.

Light

--background
oklch(0.982 0.008 88)
--card
oklch(0.955 0.012 88)
--muted
oklch(0.955 0.012 88)
--border
oklch(0.845 0.012 80)
--primary
oklch(0.475 0.145 28)
--foreground
oklch(0.225 0.018 60)

Dark

--background
oklch(0.185 0.012 60)
--card
oklch(0.225 0.014 60)
--muted
oklch(0.285 0.016 60)
--border
oklch(0.335 0.014 70)
--primary
oklch(0.735 0.125 42)
--foreground
oklch(0.955 0.012 88)

nexus

defaultColorMode: "dark", both modes.

A flight console. Dark is home. Every heading is capitalised with a hair of positive tracking, and h1, h2, and the StatGrid figure carry an accent halo through --slide-halo. The halo is none in light mode, so light mode reads as the printed version of the same document rather than as a second theme.

Light

--background
oklch(0.975 0.004 258)
--card
oklch(0.945 0.008 258)
--muted
oklch(0.945 0.008 258)
--border
oklch(0.835 0.012 258)
--primary
oklch(0.535 0.155 48)
--foreground
oklch(0.205 0.025 258)

Dark

--background
oklch(0.155 0.022 258)
--card
oklch(0.205 0.026 258)
--muted
oklch(0.255 0.03 258)
--border
oklch(0.335 0.03 258)
--primary
oklch(0.79 0.155 68)
--foreground
oklch(0.96 0.008 258)

phosphor

defaultColorMode: "dark", both modes.

A green CRT. One monospace family for every word on the slide, scanlines painted across every background variant, and a phosphor bloom on display headings. It also runs a thinner status bar than the rest, taking --slide-footer-space below the contract default, which hands the space back to the slide. Light mode turns the tube off, for handouts and for printing.

Light

--background
oklch(0.975 0.008 150)
--card
oklch(0.945 0.012 150)
--muted
oklch(0.945 0.012 150)
--border
oklch(0.8 0.035 150)
--primary
oklch(0.475 0.135 148)
--foreground
oklch(0.245 0.055 150)

Dark

--background
oklch(0.145 0.012 155)
--card
oklch(0.185 0.016 155)
--muted
oklch(0.235 0.02 155)
--border
oklch(0.335 0.045 150)
--primary
oklch(0.855 0.185 148)
--foreground
oklch(0.905 0.075 150)

atelier

defaultColorMode: "system", both modes.

A print poster. --slide-rule and --slide-surface-border are both the foreground, so every line on the slide is full-strength ink at the theme’s own 4px measure rather than a tint at one. Headings are Archivo capitals at the heaviest weight the face carries, and the display size runs well past every other theme here. Grid cells and the highlighted table row are flooded with the accent and flip their ink rather than taking a tint. Nothing is rounded and nothing is raised.

Light

--background
oklch(0.965 0.012 95)
--card
oklch(0.995 0.004 95)
--muted
oklch(0.915 0.02 95)
--border
oklch(0.155 0.01 60)
--primary
oklch(0.575 0.215 28)
--foreground
oklch(0.155 0.01 60)

Dark

--background
oklch(0.165 0.008 60)
--card
oklch(0.225 0.01 60)
--muted
oklch(0.305 0.012 60)
--border
oklch(0.965 0.012 95)
--primary
oklch(0.665 0.19 30)
--foreground
oklch(0.965 0.012 95)

cotton

defaultColorMode: "system", both modes.

The other pole from atelier. Body copy is Outfit at weight 300, headings are Bricolage Grotesque with its optical size axis mapped rather than pinned, and the corners are the largest in the gallery. --slide-accent-soft carries the tinted card, the metrics panel and the filled capsule; the accent itself is kept for the breaker, the closing plate and the dots. --slide-surface-shadow is the one lift in the theme, and only data-slide-panel reads it, so a slide raises at most one surface however many blocks it composes.

Light

--background
oklch(0.975 0.016 62)
--card
oklch(0.995 0.006 62)
--muted
oklch(0.935 0.032 60)
--border
oklch(0.895 0.024 58)
--primary
oklch(0.735 0.135 42)
--foreground
oklch(0.285 0.036 42)

Dark

--background
oklch(0.235 0.026 42)
--card
oklch(0.285 0.03 42)
--muted
oklch(0.345 0.034 42)
--border
oklch(0.375 0.03 44)
--primary
oklch(0.795 0.125 46)
--foreground
oklch(0.965 0.014 62)

noir

defaultColorMode: "dark", both modes.

A fashion lookbook. Every rule is one pixel, the opener, the breaker, the statement and the quote all centre their content, and Cormorant Garamond sets the display at weight 300 with the italic kept for the statement and the quotation. There is no monospace family: --slide-font-mono carries the body sans, and tracked capitals up to --slide-track stand where another theme sets mono. Code keeps a monospaced stack of its own so a sample still lines up.

Light

--background
oklch(0.975 0.006 80)
--card
oklch(0.945 0.008 80)
--muted
oklch(0.945 0.008 80)
--border
oklch(0.855 0.008 78)
--primary
oklch(0.545 0.075 68)
--foreground
oklch(0.185 0.008 60)

Dark

--background
oklch(0.155 0.006 60)
--card
oklch(0.205 0.008 60)
--muted
oklch(0.205 0.008 60)
--border
oklch(0.345 0.01 70)
--primary
oklch(0.815 0.075 82)
--foreground
oklch(0.955 0.008 80)

quorum

defaultColorMode: "light", both modes.

A board pack. A short type scale inside a short frame, which is what lets a segment table and a five-figure band sit on one slide without shrinking. Figures and pull quotes are set in a serif and everything else in the sans, so a number being reported reads differently from a number being described. Cards hang off a stroke on their leading edge rather than sitting in a box. background: "accent" inverts the sheet rather than flooding it with the accent, in both colour modes.

Light

--background
oklch(0.995 0.002 250)
--card
oklch(0.965 0.008 250)
--muted
oklch(0.965 0.008 250)
--border
oklch(0.885 0.012 250)
--primary
oklch(0.435 0.145 258)
--foreground
oklch(0.235 0.032 258)

Dark

--background
oklch(0.205 0.028 258)
--card
oklch(0.255 0.03 258)
--muted
oklch(0.255 0.03 258)
--border
oklch(0.355 0.026 258)
--primary
oklch(0.685 0.125 258)
--foreground
oklch(0.965 0.006 250)

About the swatches

Each palette above is read out of the theme’s stylesheet when this page builds: the sheet, the card, the muted surface, the border, the accent, and the text. A theme is a hundred-odd declarations and its own THEME.md explaining them, so this is a small slice. The preview shows you what the theme looks like; the swatches tell you what to type when you want that green.

Was this page helpful?