Skip to content

fix(studio): Style/Grade/Text parity gaps found in legacy-retirement audit#2127

Open
vanceingalls wants to merge 4 commits into
studio-flat-07-retire-legacy-style-gradefrom
studio-flat-08-style-grade-parity
Open

fix(studio): Style/Grade/Text parity gaps found in legacy-retirement audit#2127
vanceingalls wants to merge 4 commits into
studio-flat-07-retire-legacy-style-gradefrom
studio-flat-08-style-grade-parity

Conversation

@vanceingalls

@vanceingalls vanceingalls commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

What

Eighth PR in the flat inspector stack (see #2120 for the foundation and full stack list). Fixes 13 real functional gaps between the flat groups and the legacy components they replace — found by a thorough control-by-control audit (not just section-label matching) run after the legacy Style/Grade retirement (#2126) made these gaps directly user-visible for the first time.

Stack: #2120#2121#2122#2123#2124#2125#2126#2127 (this).

Why

The audit found these were pre-existing since each group was first built — the retained legacy sections (removed in #2126) had been silently covering for them the whole time. Two were hard drops (stroke color completely uneditable; per-corner border-radius unreachable from a uniform starting value) and one was a real behavioral bug (color grading sliders don't revive a grade parked at 0% strength, so edits look invisible). The rest were narrower gaps (unclamped/unenumerated stroke inputs, a missing uniform mask-inset slider, keyboard/blur safety on the grade compare button, HDR banner detail text, text-transform: capitalize unreachable, text-align: end unselectable, Size losing live-commit, Content textarea losing auto-focus, and non-numbered empty-field labels).

How

Three independent commits, each fixing one group's gaps against its legacy source of truth:

  • Style (propertyPanelFlatStyleSections.tsx): stroke color now editable via a ColorField row; stroke width clamped 0–200px; stroke style validated against the 10 legacy options and exposed via a discoverable dropdown; per-corner radius now always reachable (deleted the dead branch that only mounted BorderRadiusEditor for already-non-uniform elements — it has its own unlink toggle and now always renders, matching legacy); restored the uniform mask-inset slider alongside the per-side fields.
  • Grade (propertyPanelFlatColorGradingSection.tsx): added a visibleIntensity helper (identical to legacy) threaded into every Adjust/Vignette/Grain/Blur/Pixelate/LUT commit handler so editing a grade parked at 0% strength revives it to visible — the strength slider's own commit and preset application are correctly left untouched; the compare/hold button gained keyboard activation (Space/Enter) and window-blur release safety; the HDR banner and status indicator regained their informational detail text.
  • Text (propertyPanelFlatTextSection.tsx, multi-field path): added the missing capitalize case option; aliased text-align: end onto the "right" button (matching how "start" already aliases onto "left"); restored live-commit on the Size field; wired key+autoFocus so switching or adding a text field focuses its Content textarea, matching legacy; empty fields now show a numbered "Text 1"/"Text 2" fallback instead of an indistinguishable bare "Text".

All three legacy source files (propertyPanelStyleSections.tsx, BorderRadiusEditor.tsx, propertyPanelColorGradingSection.tsx, propertyPanelColorGradingControls.tsx, propertyPanelSections.tsx) were read-only references — none were modified; they're still used by the non-flat legacy panel.

Test plan

  • Every fix has a dedicated real DOM-event test with an exact assertion (drag/click/keyboard/blur simulation, not shallow snapshots), including the previously-unreachable per-corner-radius-from-uniform path and the revive-from-zero path, each independently verified in review by reproducing the exact prior bug and confirming the new test catches it.
  • Full monorepo suite green (1582 tests, 0 failures across all three commits); oxlint/oxfmt/fallow clean on every commit.
  • Unit tests added/updated
  • Manual testing performed (this whole fix arc originated from live manual testing surfacing the Style/Grade duplication, which led to the audit that found these gaps)
  • Documentation updated (not applicable — internal Studio UI behind an off-by-default flag)

vanceingalls commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant