Skip to content

🎨 Theme Implementation Guide

This guide is designed for external theme creators and renderer implementors who want to create custom themes for ZiraDocs presentations or implement ZiraDocs rendering in their own applications.

You don’t need to know the internal details of the ZiraDocs CLI - this guide focuses purely on the theme specification and rendering requirements.

  • Designers wanting to create custom presentation themes
  • Organizations needing branded presentation templates
  • Community contributors creating theme packages
  • Developers building alternative ZiraDocs renderers
  • Integration teams adding ZiraDocs support to existing tools
  • Platform developers creating ZiraDocs-compatible viewers
  1. Read the Theme Specification
  2. Follow the Theme Creation Guide
  3. Use the theme templates as starting points
  1. Understand the CSS Variables System
  2. Review Renderer Implementation
  3. Test with example themes

ZiraDocs uses CSS custom properties (variables) with the --slidelang- namespace for theming. This ensures:

  • Isolation: No conflicts with existing CSS
  • Consistency: Standardized variable names across all themes
  • Flexibility: Easy customization without CSS knowledge
  • Embedded Themes: Built into the CLI, used via --theme embedded:<name>
  • External Themes: JSON files, used via --theme external:<path>
  • Custom Renderers: Implement the variable system in any rendering engine

ZiraDocs presentations have specific slide types that themes must support:

  • Title slides
  • Section dividers
  • Content slides
  • Closing slides
  • Special elements (code blocks, charts, callouts)

For the shipped theme list and the --theme resolution order, see the root README. The CSS pipeline itself (slidelang/internal/generator/css/) is documented in the code.


Next: Start with the Theme Specification to understand the CSS variables system.