feat(ui): use the Ontology Studio glyph in the sidebar (backport #32324 to 2.0) - #32416
anuj-kumary wants to merge 2 commits into
Conversation
* feat(ui): use the Ontology Studio glyph in both nav surfaces The Ontology Studio page header renders LayersThree01 in a brand-solid square, but the two nav entries that lead there used unrelated icons and, in the app-mode sidebar, the pre-rename "Ontology Explorer" label. - classic sidebar (LeftSidebar.constants.ts): ic-lineage.svg -> LayersThree01, restroked to 1.2 via createIconWithStroke so it matches the neighbouring glossary/classification/metric SVGs (raw @untitledui icons ship at stroke 2). Follows the existing DataProductIcon/Cube01 precedent in the same file. The now-unused LineageIcon import is dropped; no other sidebar entry referenced ic-lineage.svg. - govern app module: ask-collate-nav-bar/ontology-{default,active}.svg -> LayersThree01, and labelKey label.ontology-explorer -> label.ontology-studio, matching the page title. Single glyph, so no activeIcon. The item key stays 'ontology-explorer' to keep the existing test ids and Playwright selectors working. label.ontology-studio already exists in en-us.json, so no new keys. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * fix(ui): restroke the Ontology Studio nav glyph in the govern module Review catch on #32324: the classic sidebar restroked LayersThree01 to 1.2 but the govern module used it raw, so the two nav entries for the same destination drew at different weights. The gap is visible — NavItem renders the icon at 20px, so stroke 2 on a 24 viewBox lands at 1.67px next to sibling SVGs that draw 1.2px on a 20 viewBox, ~39% heavier. Hoist the wrapped icon into IconUtils as `OntologyStudioIcon` and use it from both surfaces, so they cannot drift apart again. The cast that `createIconWithStroke` needs for `@untitledui` icons is now named (`StrokableIcon`) and exported, since it had been inlined at each call. The page header keeps the unrestroked glyph: there it is reversed out on a brand-solid badge, where the heavier stroke is correct. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> Backport note (2.0): the govern.module.tsx hunk is dropped — the app-mode governance sub-nav does not exist on this branch (it landed on main with #31911, after 2.0 diverged). The shared OntologyStudioIcon is still hoisted into IconUtils so the file matches main and future picks apply cleanly; its doc comment mentions the app-mode surface for that reason. (cherry picked from commit 057f1de)
❌ PR checklist incompleteThis PR cannot be merged until the following are addressed on its linked issue:
The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically. Maintainers can bypass this check by adding the |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
✅ Playwright Results — workflow succeededValidated commit ✅ 555 passed · ❌ 0 failed · 🟡 0 flaky · ⏭️ 0 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) 49m 19s ⏱️ Max setup 3m 27s · max shard execution 16m 29s · max shard-job elapsed before upload 20m 31s · reporting 4s 🌐 207.11 requests/attempt · 2.82 app boots/UI scenario · 15.37% common-shard skew Optimization targets still in progress:
How to debug locally# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip # view trace |
Code Review ✅ ApprovedBackport of Ontology Studio icon change to the 2.0 branch, applying 2 of 3 files cleanly from the original PR. The sidebar now uses the shared OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
|
|
This changes is not required in 2.0 for now. |



Describe your changes:
Backport of #32324 to
2.0. Cherry-pick of 057f1de, partial — see below.The Ontology Studio page header renders
LayersThree01in a brand-solid square, but the classic sidebar entry that leads there usedic-lineage.svg. This points it at the sharedOntologyStudioIcon—LayersThree01restroked to 1.2 viacreateIconWithStroke, the weight the hand-drawn nav SVGs beside it draw at (raw@untitleduiicons ship at stroke 2, ~39% heavier at nav size).2 of the 3 files applied cleanly. One hunk is intentionally dropped:
2.0constants/LeftSidebar.constants.tsLineageIcon→OntologyStudioIconutils/IconUtils.tsxStrokableIcontype +OntologyStudioIconcomponents/governance/govern/govern.module.tsxgovern.module.tsxis the app-mode governance sub-nav, which landed onmainin #31911 (2026-08-29), after2.0diverged (2026-07-24). Its half of the original change — thelabel.ontology-explorer→label.ontology-studiorelabel and the glyph swap — has no target here. Git reported this as a clean modify/delete conflict, not a content conflict.The shared
OntologyStudioIconis still hoisted intoIconUtilsrather than inlined in the sidebar, so this file matchesmainand future picks touching it apply cleanly. Its doc comment still mentions the app-mode surface for that reason.Verified after the pick: no remaining reference to
LineageIconoric-lineage.svganywhere inui/srcon this branch (the only near-match is the unrelatedPlatformLineageIcon/ic-platform-lineage.svg), andLayersThree01+ComponentTypeare already imported in2.0'sIconUtils.tsx. No new translation keys — the sidebar title is unchanged on this branch.Type of change:
Tests:
No test files in the original PR, and none added — the change is an icon reference plus a typed wrapper.
Not built or type-checked locally (this backport was prepared in a bare scratch worktree with no
node_modules); CI on this PR coverstscand lint.UI screen recording / screenshots:
See #32324 for the screenshot. The classic-sidebar half is what this backport carries; the app-mode half of that screenshot does not apply to
2.0.Checklist:
🤖 Generated with Claude Code