Skip to content

Themes

Themes control the visual identity of your presentations, including colors, fonts, logos, and slide styling.

Every presentation in Deckyard uses a theme. Themes define:

  • Colors - Background colors, accent colors, text colors
  • Typography - Fonts for headings and body text
  • Logos - Organization logos for title slides
  • Assets - Background images and visual elements

Themes settings page showing custom theme management with Create Theme button

Deckyard supports two theme directories:

LocationPurpose
themes/*.jsonCore themes shipped with the system
custom-themes/*.jsonOrganization-specific custom themes

Custom themes take precedence over core themes with the same ID.

When creating a new presentation, select a theme from the available options. The default theme is configured by your administrator.

To change a presentation’s theme:

  1. Open the presentation settings
  2. Select a new theme from the dropdown
  3. Preview the changes
  4. Save to apply

Note: Changing themes may affect the visual appearance of existing slides. Review your presentation after switching themes.

Six themes ship in themes/. Only one of them is Deckyard’s own; the rest are neutral archetypes meant to be picked, forked or ignored.

Note that the id and the label are not the same string: the id is what a deck stores and what DEFAULT_THEME takes, the label is only what the UI shows.

idlabelAccentHeading fontBody font
brandForestForest green #254d38 with brass #b8860f on warm paper — the defaultBricolage GrotesqueInter
deckyardDeckyardViolet #7c3aed — was the default until the brand theme landedBricolage GrotesqueInter
corporateBoardroomBlue #2563ebArchivoManrope
editorialEditorialCarmine #9f1239FrauncesWork Sans
midnightMidnightCyan #38bdf8 on near-blackSpace GroteskInter
playfulSunsetOrange #ea580cPoppinsNunito

The default is brand because a theme is meant to be your house style rather than the product’s: Deckyard’s own colours live in one theme among six, not in the fallback everyone inherits by accident.

Organizations can create branded themes with custom colors, fonts, and logos.

  1. Create a theme file in custom-themes/:
{
"id": "your-org",
"label": "Your Organization",
"assets": {
"logo": "/custom-assets/images/logo.svg",
"logoAlt": "Your Organization"
},
"cssVars": {
"--t-color-accent": "#0066cc",
"--t-slide-bg-lime": "#your-brand-color"
}
}
  1. Add your logo to custom-assets/images/

  2. Set as default in .env:

DEFAULT_THEME=your-org
  1. Restart the server

A theme file includes:

FieldRequiredDescription
idYesUnique identifier (must match filename)
labelYesDisplay name in the UI
assetsYesLogo paths and alt text
cssVarsYesCSS custom properties
embedFontsNoCustom font definitions
backgroundPresetsNoBackground image options
slideTypesNoSlide type availability

Control colors via CSS variables:

{
"cssVars": {
"--t-color-accent": "#0066cc",
"--t-slide-bg-lime": "#00cc66",
"--t-slide-bg-mist": "#f0f4f8",
"--t-slide-bg-night": "#1a1a2e",
"--t-text-color-light": "#ffffff",
"--t-text-color-dark": "#212121"
}
}

All theme CSS variables must start with --t-.

Deckyard includes 40 curated Google Fonts that are available out of the box. You can also add custom fonts from uploads, Adobe Fonts, Monotype, and Google Fonts through the Font Management settings.

For JSON-based themes, embed font files directly using the embedFonts array:

{
"embedFonts": [
{
"family": "Your Brand Font",
"path": "custom-assets/fonts/YourFont-Regular.woff2",
"weight": 400,
"style": "normal"
},
{
"family": "Your Brand Font",
"path": "custom-assets/fonts/YourFont-Bold.woff2",
"weight": 700,
"style": "normal"
}
]
}

Then reference the font in your CSS variables:

{
"cssVars": {
"--t-font-heading": "'Your Brand Font', sans-serif",
"--t-font-body": "'Your Brand Font', sans-serif",
"--t-heading-weight": "700"
}
}

Embedded fonts are:

  • Loaded in the browser for editing and presenting
  • Base64-embedded in HTML exports for offline viewing
  • Available in PDF and PNG exports

See Font Management for the full guide on adding and managing fonts.

Provide background images for title slides:

{
"backgroundPresets": [
"/custom-assets/images/backgrounds/bg1.jpg",
"/custom-assets/images/backgrounds/bg2.jpg",
"/custom-assets/images/backgrounds/bg3.jpg"
]
}

These appear in the background picker for slide types that support background images.

  • Format: SVG preferred, PNG also supported
  • Size: Design for ~200px width display
  • Variants: Consider light and dark versions
{
"assets": {
"logo": "/custom-assets/images/logo.svg",
"logoAlt": "Organization Name",
"titleLogo": "/custom-assets/images/title-logo.svg",
"payoffLogo": "/custom-assets/images/payoff-logo.svg"
}
}
AssetUsage
logoDefault logo for slides
titleLogoSmaller logo variant for title slides
payoffLogoLogo for payoff/tagline slides

Themes can control which slide types are available:

{
"slideTypes": {
"exclude": ["stock-team-overview-slide"],
"include": ["your-custom-slide"]
}
}
  • exclude: Hide slide types from the “add slide” UI
  • include: Enable theme-specific custom slide types

Note: Excluding a slide type only affects inserting new slides. Existing slides still render and can be edited.

Complete custom theme setup:

custom-themes/
└── your-org.json
custom-assets/
├── fonts/
│ ├── YourFont-Regular.woff2
│ └── YourFont-Bold.woff2
└── images/
├── logo.svg
├── title-logo.svg
└── backgrounds/
├── bg1.jpg
└── bg2.jpg
{
"id": "acme-corp",
"label": "Acme Corporation",
"assets": {
"logo": "/custom-assets/images/acme-logo.svg",
"logoAlt": "Acme Corp",
"payoffLogo": "/custom-assets/images/acme-payoff.svg",
"payoffAlt": "Acme Corp"
},
"defaultTitleSlide": "title-slide",
"cssVars": {
"--t-color-accent": "#0066cc",
"--t-slide-bg-lime": "#00cc66",
"--t-slide-bg-mist": "#f0f4f8",
"--t-slide-bg-night": "#1a1a2e",
"--t-text-color-light": "#ffffff",
"--t-text-color-dark": "#212121"
},
"embedFonts": [
{
"family": "Acme Sans",
"path": "custom-assets/fonts/AcmeSans-Medium.woff2",
"weight": 500,
"style": "normal"
}
],
"backgroundPresets": [
"/custom-assets/images/backgrounds/acme-bg-1.jpg",
"/custom-assets/images/backgrounds/acme-bg-2.jpg"
],
"slideTypes": {
"exclude": [],
"include": []
}
}