Symptom

Three findings from the 2026-06-25 UX audit (surface-layout theme):

  1. All seven editor screenshot scenarios showed white/light backgrounds — the chip/header section appeared dark but the form body below it was white.
  2. The dashboard node-list screen title had no top inset, abutting the top edge of its scroll container without breathing room.
  3. In the executor webhook editor, “Query Parameters:” and “Headers:” section labels were flush to the left screen edge, misaligned with the URL and Method fields above them (which have an 8dp visual inset from the OutlinedTextField outline border).

Root cause

  1. The screenshot scenarios in Scenarios.kt called editor composables (EditFilter, EditTrigger, EditDiagram, etc.) directly inside DarkBlueGrayTheme without a Surface or background modifier at the root. The Compose Desktop headless canvas defaults to white; transparent Columns showed through to it. The node chip sections appeared dark because they explicitly use tertiaryContainer/surfaceVariant colors, but descriptive text and form areas had no explicit background and rendered white. The NodeEditorContainer’s inner scrollable Column also lacked its own background modifier, so a real app on a light-mode OS could exhibit the same fracture between the outer column’s colorScheme.background and any child composable that introduced a new drawing context.
  2. NodeListScreen’s title Text only had padding(bottom = PADDING_SMALL) with no top inset. The parent ScreenContainer provides 16dp vertical padding for the scrollable content area, but the title’s own top padding was zero.
  3. SectionHeading (a plain Text) has no inherent padding. OutlinedTextField’s visible label text sits ~8dp inside the outline border, so the label appears indented relative to a bare Text at the same Column start edge.

Fix

Prevention