How themes work
Discord styles its UI from a palette of named colors. A theme overrides that palette: you provide values for the color names you want to change, Unbound parses your definition, and the theme store pushes it into the app. Because a theme is just parsed JSON with nostart/stop to run, applying or removing one is instant.
Themes are governed by the same manager as plugins. They are loaded, enabled, disabled, and persisted through the same lifecycle. The one difference is that enabling a theme applies it: only one theme is active at a time, so enabling a new one replaces the previous.
What a theme defines
Manifest
Metadata (name, authors, version) identifying your theme.
Theme Types
The semantic and raw colors that make up the palette, and the base type they extend.
Backgrounds
An optional image behind the interface, with blur and opacity.
A theme can’t run logic or patch components; it only restyles. If you need behavior, that’s a plugin.