Paketformat
Aufbau einer Theme-.zip: theme.json, Stile, Templates, Header/Footer, Assets und Screenshots.
theme.json Pflicht
config/settings_data.json Stile (Presets)
templates/index.json Startseite
templates/product.json Produktseite (+ product.<name>.json als Alternativen)
templates/collection.json Kollektionsseite (+ collection.<name>.json)
templates/page.json Inhaltsseiten (+ page.<name>.json)
sections/header-group.json Header
sections/footer-group.json Footer
assets/theme.css optional
assets/*.webp|png|jpg|avif Bilder
screenshots/<stil>[-n].webp Vorschaubilder je StilJSON darf //-Kommentare und abschließende Kommas enthalten. Ein einzelner Ordner auf oberster Ebene im Archiv ist erlaubt. Limits: Zip 20 MB, 80 Dateien, 10 MB pro Datei.
#theme.json
{
"format": 1,
"name": "Atelier",
"handle": "atelier", // optional, sonst aus dem Namen
"version": "1.0.0", // Pflicht, semver – muss bei Updates steigen
"author": "…",
"description": "…",
"preview": "assets/preview.webp"
}#config/settings_data.json
{
"current": "Leinen",
"presets": {
"Leinen": {
"colors": { "background": "#f7f2ea", "foreground": "#1f1c18", "primary": "#2f4a3a",
"primaryForeground": "#f7f2ea", "accent": "#e9dfcd", "muted": "#efe7da" },
"schemes": { // optional; fehlende Werte werden aus "colors" abgeleitet
"default": { "background": "…", "foreground": "…", "primary": "…", "primaryForeground": "…", "muted": "…", "border": "…" },
"muted": {}, "primary": {}, "accent": {}, "contrast": {}
},
"style": {
"pageWidth": "narrow | normal | wide | full",
"sectionSpacing": "compact | normal | airy",
"buttonShape": "theme | square | rounded | pill",
"buttonCase": "normal | uppercase",
"headingWeight": "regular | medium | semibold | bold",
"headingCase": "normal | uppercase",
"headingTracking": "tight | normal | wide",
"cardStyle": "border | shadow | plain",
"imageRatio": "square | portrait | landscape"
},
"radius": "none | sm | md | lg",
"fontHeading": "inter",
"fontBody": "inter"
}
}
}Schriften: system, inter, dm-sans, manrope, space-grotesk, archivo, fredoka, lora, playfair, cormorant, fraunces – selbst gehostet und nur geladen, wenn sie verwendet werden.
#Templates
Siehe Templates und Sections.
#Screenshots
screenshots/<stil-slug>.webp, -2.webp, -3.webp – je Stil z. B. Startseite, Produktseite, Kollektionsseite, 1200 × 750 px. Der Stil-Slug ist der Name des Presets in Kleinbuchstaben mit Bindestrichen (Neon Tokyo → neon-tokyo). Die Vorschau im Dashboard zeigt beim Wechsel des Stils dessen Bilder.
#Packen
python themes/packages/zip.py atelier
# → themes/packages/dist/atelier-1.0.0.zipZuletzt aktualisiert am 21. Oktober 2026