fix(ui): apply semantic dark-theme component colors - #33255
Conversation
✅ Playwright Results — workflow succeededValidated commit ✅ 4498 passed · ❌ 0 failed · 🟡 8 flaky · ⏭️ 1 skipped · 🧰 0 lifecycle flaky PerformanceBlocking targets: ✅ met · Optimization targets: 🟡 in progress Shard-job maxima below are not the full workflow wall time; the linked run includes build, fixture, planning, and reporting. 🕒 Full workflow signal wall (to summary) 58m 52s ⏱️ Max setup 4m 50s · max shard execution 21m 39s · max shard-job elapsed before upload 25m 13s · reporting 18s 🌐 218.73 requests/attempt · 2.23 app boots/UI scenario · 39.95% common-shard skew Optimization targets still in progress:
🟡 8 flaky test(s) (passed on retry)
How to debug locally# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip # view trace |
|
| Count | Rule |
|---|---|
| 1 | openmetadata-imports/no-api-calls-in-iteration |
| 1 | openmetadata-ui-patterns/no-raw-title-attribute |
All findings
| Location | Rule | Message | |
|---|---|---|---|
| 🟡 | src/components/platform/ai-shell/Sidebar/ContextCenterSubNavSections.tsx:127:36 |
openmetadata-imports/no-api-calls-in-iteration |
Avoid issuing one API request per item. Fetch at the data owner, use a bulk endpoint, or use useQueries with an intentional concurrency policy. |
| 🟡 | src/components/platform/ai-shell/Sidebar/ContextCenterSubNavSections.tsx:180:13 |
openmetadata-ui-patterns/no-raw-title-attribute |
Use from @openmetadata/ui-core-components instead of raw title="" attributes for consistent tooltip behavior. |
Fix locally (fast - only checks files changed in this branch):
make ui-checkstyle-changed
Code Review ✅ ApprovedApplies semantic alert and AI navigation colors by replacing numeric utility-palette borders on Alert variants with approved semantic subtle-border roles and migrating AI sidebar surfaces, borders, text, and interaction states to shared semantic tokens. Light-mode values remain unchanged, token generation is repaired to avoid duplication, and comprehensive tests confirm all changes. No issues found. OptionsDisplay: compact → Counting what did not apply, without listing it. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
|



Describe your changes:
Part of open-metadata/openmetadata-collate#6568
Also advances open-metadata/openmetadata-collate#6569
Gate contract: open-metadata/openmetadata-collate#6564
Token foundation: #33249
This combines two small slices from the same core-theme workstream:
border-primarywithout hardcoded light/dark colors or an explicit dark override.bg-secondary-hoveralias and repairs token generation so semantic scale names are not duplicated as numeric extensions.The sidebar hover alias resolves to the existing
#f5f5f5light value and the approved translucent hover treatment in dark mode.Brand/informational and neutral Alerts remain unchanged because their desired dark treatments do not yet have light-preserving semantic roles. AI sidebar page, selected, brand, and badge palette values also remain unchanged pending the binding decisions in Gate Zero; badge migration belongs to open-metadata/openmetadata-collate#6570.
Type of change:
High-level design:
Alert variants continue to use the existing component API and now select
border-success-subtle,border-warning-subtle, orborder-error-subtle.The AI sidebar keeps its existing structure and local LESS aliases, but those aliases now resolve shared
--om-*semantic roles for surfaces, borders, text, and interaction states. Typography headings use the semantictext-quaternaryutility. The TextArea resize glyph is rendered as a theme-neutral CSS mask and tinted byborder-primary; this preserves its existing light/dark values while allowing live theme changes without separate assets. Token generation now keeps numeric radius and font-size extensions strictly numeric and sorted, avoids re-emitting manually owned black/white tokens, classifies letter-spacing tokens, and resolves the generated-block drift inherited from the token-foundation change. No page-local dark selectors or duplicate palettes are introduced.No theme provider, API, or submodule pointer is changed. The generated token reference is refreshed from
tokens.css.Tests:
Unit tests
Build and static checks
git diff --checkpassed.The focused app lint reports two existing warnings in
ContextCenterSubNavSections.tsxfor per-item API requests and a rawtitleattribute; neither is introduced or changed here.Visual coverage
Components/AlertStorybook stories exercise all Alert variants in light, dark, and side-by-side modes.UI screen recording / screenshots:
Not attached. The Alert output is covered by existing Storybook variants; the sidebar changes replace color sources without changing layout or interaction behavior.
Checklist: