Skip to content

[Feature] [Steam CEF Toolkit] Add CSSLoader-compatible theme loading primitives #41

Description

@NightHammer1000

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions