Skip to content

UI

Purpose

Owns reusable editor UI systems, theme infrastructure, style generation, and shared IMGUI presentation helpers used throughout Snap Studio Pro.

This territory centralizes theme-aware editor rendering, reusable controls, GUIStyle generation, theme persistence, preset-driven styling workflows, and reusable editor UI utilities.

UI is presentation infrastructure territory.

Owns

  • Shared IMGUI controls
  • GUIStyle generation
  • Theme-aware style systems
  • Theme persistence workflows
  • Theme preset workflows
  • Shared UI utility helpers
  • Reusable progress bars
  • Shared preset UI infrastructure
  • Theme texture caching
  • Shared editor visual consistency

Does NOT Own

  • Feature workflow orchestration
  • Rendering implementation
  • Preview lifecycle ownership
  • Export execution
  • Feature-domain business logic
  • Rendering pipeline ownership

Allowed Dependencies

UI may depend on:

  • Unity Editor IMGUI APIs
  • Theme models/settings
  • Shared lightweight abstractions
  • Infrastructure preference systems
  • File IO where required for theme presets

UI should avoid depending on:

  • preview orchestration systems
  • rendering systems
  • export systems
  • feature workflow systems

Notes

UI exists to centralize reusable editor presentation behaviour and maintain visual consistency across Snap Studio Pro.

UI owns: - presentation infrastructure - GUIStyle generation - theme persistence - reusable controls - theme-aware drawing helpers

Panels own: - workflow-facing UI composition

Features own: - business/workflow behaviour

This separation keeps reusable editor presentation systems isolated from feature orchestration.

The UI territory intentionally contains: - cached GUIStyles - cached textures - theme persistence - reusable IMGUI abstractions

because these are editor presentation concerns rather than workflow concerns.

Future Candidates

  • Continue centralizing reusable UI presentation systems.
  • Keep theme/state caching explicit and safe.
  • Avoid embedding workflow orchestration into UI infrastructure.
  • Maintain separation between reusable presentation systems and feature behaviour.