SKINT¶
Purpose¶
A theming layer for Unity editor UI. SKINT gives editor windows a consistent, user-customisable look: themed labels, toggles, sliders, fields, popups, panels and progress bars, all driven by a single theme the user edits in a visual designer and saves as named presets.
It is editor-only. Nothing in SKINT ships in a player build, and that is enforced by a test rather than by convention.
Owns¶
- The theme model and its persistence
- Theme-aware
GUIStyleand geometry generation - The themed widget set consumers draw with
- The Theme Designer and Widget Gallery windows
- Named preset save / load / delete, with a restorable trash
- Resolving its own install location at runtime
Does NOT Own¶
- Runtime UI of any kind — uGUI, UI Toolkit, IMGUI in play mode
- Game or editor behaviour beyond presentation
- Any render pipeline concern
- Project or scene state
- Another product's preferences, including anything under a
SnapPro_key
Allowed Dependencies¶
SKINT may depend on:
UnityEditorandUnityEngine- The .NET base class library
SKINT depends on nothing else. No packages, no third-party code, no network access, no telemetry. The assembly definition is editor-only (includePlatforms: ["Editor"]), which is what keeps it out of player builds.
Notes¶
The territory boundary here is narrow on purpose: SKINT draws editor chrome and nothing else. It was extracted from Snap Studio Pro's Editor/UI/Styling territory, which still describes the same concern inside that product.
EditorPrefs is global to a Unity installation rather than per project, which shapes several decisions in this package. The active theme is therefore shared across every project opened in the same Unity version, and SKINT is careful to write only keys it owns — a guarantee PrefKeyTests asserts directly.
SKINT is distributed as a folder the customer copies in, not as a UPM package. That is a settled choice across these tools. SkintPaths resolves the install location at runtime from the assembly definition, so copying the folder anywhere works rather than half-working.
Future Candidates¶
- Borders and corner radii are still hardcoded; only colour, font size and spacing are themeable.
- Preset delete undo is single level.