Skip to main content

Theme Package Format

A theme package is a zip file. Allowed files:

manifest.json
tokens.css
recipes.css
preview.png

manifest.json

Required:

{
"id": "dark-modern",
"name": "Dark Modern",
"version": "1.0.0"
}

Limits

ItemLimit
archiveMax 20 MiB
extracted totalMax 50 MiB
single fileMax 20 MiB
pathOnly allowed root-level files
duplicate fileNot allowed

id must match:

^[a-z0-9][a-z0-9_-]{1,63}$

Reserved IDs:

  • default
  • built-in theme IDs

CSS Files

tokens.css and recipes.css can only declare CSS custom properties.

Allowed selectors:

:root { ... }
[data-theme="dark"] { ... }
[data-theme="light"] { ... }

Disallowed:

  • @import
  • @font-face
  • @keyframes
  • URLs
  • selectors outside the allowed list
  • nested blocks

Pack Command

dash pack-theme -src theme-dir -out theme.zip

The output uses fixed timestamps to produce stable zip files.