Theme tutorial: colors to CSS
Start with a colors theme, then upgrade to packaged CSS when needed. Index → Workshop SDK.
The AI theme guide produces echo-next.custom-theme JSON for Settings import. Workshop themes are separate packages published through the SDK and Steam. Do not mix formats.
Pick a tier
Section titled “Pick a tier”| Tier | What changes | Min ECHO | Start with |
|---|---|---|---|
colors | Light/dark hex tones | 26.8.15 | --recipe colors-theme |
skin | Declarative chrome / stages | 26.8.15 | --recipe skin-theme |
stylesheet | Packaged CSS | 26.8.20 | --recipe css-theme |
runtime | Sandboxed HTML/CSS/JS UI | 26.8.20 | --recipe custom-ui |
Upgrade without restarting:
node .\bin\echo-workshop-sdk.mjs scaffold .\my-theme --preset stylesheetWalkthrough A: minimal colors theme
Section titled “Walkthrough A: minimal colors theme”- Copy the official example:
Terminal window node .\bin\echo-workshop-sdk.mjs example minimal-theme .\harbor-colorscd .\harbor-colors - Edit
content/theme.json— change hex values underlight/dark. - Keep
basePreseton a public preset such asclassic. Do not useFINAL,nyanCat, ordarkSideMoon. - Verify:
Terminal window npm run checknpm run dev - Replace
preview.png(256×256) and update listing copy withnpm run set -- --title "Your title".
For colors tier, set compatibility.minEchoVersion to 26.8.15 in the outer manifest.
Walkthrough B: packaged CSS theme
Section titled “Walkthrough B: packaged CSS theme”- Create or upgrade:
Or:
Terminal window node .\bin\echo-workshop-sdk.mjs init .\harbor-css --recipe css-themecd .\harbor-cssscaffold . --preset stylesheeton an existing project. - Edit
content/theme.css. Every rule must sit under your pack id:html[data-workshop-theme-pack="echo.harbor-css"] {--color-bg: #10131a;--color-text: #d8e8f3;color-scheme: dark;} - Set
minEchoVersionto 26.8.20 or newer. npm run check→npm run devfor fixture preview and gate summary.
Inline scripts, remote @import, and non-raster url() values are rejected. Stylesheet overrides skin; runtime replaces visible chrome but must keep emergency-exit host chrome.
Walkthrough C: runtime UI (overview)
Section titled “Walkthrough C: runtime UI (overview)”--recipe custom-ui or scaffold . --preset runtime generates content/ui/. See .echo-sdk/echo-workshop-ui-runtime.d.ts for the postMessage bridge.
node .\bin\echo-workshop-sdk.mjs snippet ui-runtime-initnode .\bin\echo-workshop-sdk.mjs guide themeBefore publish
Section titled “Before publish”- Clean
npm run check - Non-placeholder 256×256
preview.png -
minEchoVersionmatches the oldest ECHO you tested - CSS selector pack id matches manifest id
- Use once in ECHO Authoring Studio
User subscribe/use flow → Steam Workshop.