Theme and white-label Unity UIs with typed values, selectable-state fan-out bindings, and runtime profile switching for uGUI, TextMeshPro, and custom componentsThe inclued sample is based on URP but principles and the core Theming are pipeline agnostic and can be extended and adapted to any.Most UI systems start clean and quickly drift into scattered color fields, duplicated style prefabs, and fragile manual updates whenever branding or visual direction changes. Themes addresses that drift by giving you one structured source of truth for themed values and a practical binding workflow to apply them.Instead of hard-coding values across many components, you define typed entries once in a ThemeDatabase, configure profiles (for example Light/Dark themes or Client A/Client B branded variants), and let bindings resolve and apply the active values automatically. This keeps iteration tight for designers and engineers, and it reduces the risk of accidental visual inconsistencies as the project grows.One button/toggle/selectable can act as a state source for any number of bindings, so you are not limited to a single built-in transition effect. You can drive multiple graphics and arbitrary components per state (`Normal`, `Highlighted`, `Pressed`, `Selected`, `Disabled`) from one interaction source.The package is built for real production workflows:- project-wide central database- edit-mode and runtime value application- selectable-state aware bindings with fan-out composition- helper tooling to replace existing selectables with bindable variants- full Database JSON import/export for backups, migrations, and review- Runtime JSON import for Themes- Theme any serializable typeHighly ExtendableSupports any serializable type. Built-in Bindings mainly focus on uGUI/TMP targets, but the architecture is intentionally open: you can implement custom bindings for any target component type and grow this into a broader UI/system branding layer across your entire app.- Unity version: 6000.3 or newer- Required dependencies:- com.unity.textmeshpro- com.unity.nuget.newtonsoft-json- Documentation under https://github.com/der-hugo/ThemesAPI and embedded in the packageThe package is built around a single active ThemeDatabase asset per project. It stores value definitions, constant value implementations shared across all themes, per-theme values, and the currently active theme.Built-in bindable wrappers are included for common UnityEngine.UI.Selectables:- BindableButton- BindableToggle- BindableSlider- BindableScrollbar- BindableDropdown- BindableInputField- BindableTMPDropdown- BindableTMPInputFieldA tool exists to simply replace existing normal components by the respective bindable ones without loosing references.Built-in bindings cover some common interface targets:- BindColorToGraphic- BindColorToRenderer- BindSpriteToImage- BindStringToTextMeshPro- BindBoolToGameObjectActive- BindDepthToTransform- [if Localization is installed] BindLocalizedStringToTextMeshPro- and many more. The user can however extend the system with any serializable custom value types and target bindings.AI was used as an assistant for documentation restructuring and drafting. Final technical content, wording, and package behavior were reviewed and curated manually by the publisher.




