OpenClaw / OpenClaw Core
Merged upstreamCorrectnessMerged Jun 28, 2026

Apply seamColor through Control UI bootstrap

Fixed OpenClaw Control UI theming so the existing ui.seamColor config value reaches the browser bootstrap payload and updates accent styling during startup.

openclaw/openclaw · #93699

Problem

The backend already validated ui.seamColor and exposed it through config paths, but the Control UI bootstrap JSON omitted the value and the browser loader had no application path. Users could configure a valid hex color and still see default accent colors across buttons, navigation, selection states, and focus rings.

Approach

Threaded seamColor into the Control UI bootstrap contract and gateway payload, added strict six-digit hex normalization in the browser loader, applied a bounded set of accent CSS variables for valid colors, and removed those inline variables when the server sends an invalid or missing value.

Impact and scope

  • Makes an existing public configuration option visible in the web UI without adding new config keys or changing unrelated theme behavior.
  • Improves Control UI customization for users running branded, profile-specific, or environment-specific gateway sessions.
  • Prevents stale server-provided accent colors from persisting after a configuration is removed or becomes invalid.

Validation

  • Added gateway HTTP bootstrap coverage proving configured ui.seamColor appears in control-ui-config.json.
  • Added Control UI bootstrap tests for valid color application and invalid/missing color cleanup.
  • PR validation covered focused Vitest suites, oxfmt, oxlint, qaRuntime build, and production UI build commands.