The toolkit should be able to load CSSLoader-compatible themes into Steam CEF, as a reusable primitive.
This issue is only the Steam and CEF layer. The Theme Browser, Manager and Installer are a WSGM feature, tracked in #44.
Not part of the 2.0 milestone.
What the toolkit provides
Load and inject CSSLoader-compatible themes, unload them cleanly, support multiple enabled themes where CSSLoader semantics allow, keep theme order and priority, reapply after CEF recreation, hot reload or reconnect, never inject twice, expose theme metadata, enabled state and configuration schema to consumers, and restore Steam's original styling on teardown.
Compatibility
Use the CSSLoader project as the behavioural and package-format reference, covering its package layout, manifests, user-configurable variables, dependencies and shared assets, ordering rules, enable and disable semantics, and version metadata where consumers need it.
Do not invent a WSGM-only theme format unless there is no alternative. Existing CSSLoader themes should work with little or no modification.
Boundaries
The toolkit stays feature-agnostic: loading, lifecycle and configuration primitives only. No theme browser, no repository or store UI, no installer, no updater, no management UX.
The WSGM feature in #44 consumes this, plus custom right-QAM tabs (#42) and custom pages (#24).
Done when
Existing CSSLoader themes load and unload through the toolkit, the metadata WSGM needs is exposed through a stable API, theme state survives CEF reload and reconnect, teardown restores an unmodified Steam UI, and no WSGM-specific browser UX lives in the toolkit.
The toolkit should be able to load CSSLoader-compatible themes into Steam CEF, as a reusable primitive.
This issue is only the Steam and CEF layer. The Theme Browser, Manager and Installer are a WSGM feature, tracked in #44.
Not part of the 2.0 milestone.
What the toolkit provides
Load and inject CSSLoader-compatible themes, unload them cleanly, support multiple enabled themes where CSSLoader semantics allow, keep theme order and priority, reapply after CEF recreation, hot reload or reconnect, never inject twice, expose theme metadata, enabled state and configuration schema to consumers, and restore Steam's original styling on teardown.
Compatibility
Use the CSSLoader project as the behavioural and package-format reference, covering its package layout, manifests, user-configurable variables, dependencies and shared assets, ordering rules, enable and disable semantics, and version metadata where consumers need it.
Do not invent a WSGM-only theme format unless there is no alternative. Existing CSSLoader themes should work with little or no modification.
Boundaries
The toolkit stays feature-agnostic: loading, lifecycle and configuration primitives only. No theme browser, no repository or store UI, no installer, no updater, no management UX.
The WSGM feature in #44 consumes this, plus custom right-QAM tabs (#42) and custom pages (#24).
Done when
Existing CSSLoader themes load and unload through the toolkit, the metadata WSGM needs is exposed through a stable API, theme state survives CEF reload and reconnect, teardown restores an unmodified Steam UI, and no WSGM-specific browser UX lives in the toolkit.