fix(app): refine Mantine theme (tabs, code bg, segmented control) - #2814
Conversation
- Tabs: collapse default-variant list line to a true 1px bottom border and make non-active horizontal tab hover borders 1px (not 2px) - Code: wire component background to the --color-bg-code token in both themes - Fix clickstack --color-bg-code light value to a defined token (--palette-slate-50) and dark value to --palette-neutral-725 - SegmentedControl: add border + small radius and use --color-bg-option-active for the active indicator; add the token to the Design Tokens storybook Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
🦋 Changeset detectedLatest commit: 9c97ed0 The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🔵 Tier 2 — Low RiskSmall, isolated change with no API route or data model modifications. Why this tier:
Review process: AI review + quick human skim (target: 5–15 min). Reviewer validates AI assessment and checks for domain-specific concerns. Stats
|
Greptile SummaryThe PR refines Mantine styling and shared theme tokens across the HyperDX and ClickStack themes.
Confidence Score: 4/5The PR is not yet safe to merge because SegmentedControl still draws the requested border around the entire control instead of the selected option. In both Mantine themes, the border remains declared on the Files Needing Attention: packages/app/src/theme/themes/clickstack/mantineTheme.ts and packages/app/src/theme/themes/hyperdx/mantineTheme.ts
|
| Filename | Overview |
|---|---|
| packages/app/src/theme/themes/clickstack/mantineTheme.ts | Adds Code and Tabs theme overrides, but the SegmentedControl border remains on the component root rather than its active indicator. |
| packages/app/src/theme/themes/hyperdx/mantineTheme.ts | Mirrors the component refinements and repeats the outstanding SegmentedControl border-slot error. |
| packages/app/src/theme/themes/components.module.scss | Adds horizontal-tab border overrides intended to preserve a stable 1px layout edge and 2px active indication. |
| packages/app/src/theme/themes/clickstack/_tokens.scss | Replaces Code background values with defined palette-token references. |
| packages/app/src/theme/themes/hyperdx/_tokens.scss | Updates brand and primary-button colors for stronger visual prominence. |
| packages/app/src/theme/themes/hyperdx/Logomark.tsx | Replaces theme-dependent SVG fills with fixed brand and foreground colors. |
Reviews (5): Last reviewed commit: "Merge branch 'main' into elizabet/more-m..." | Re-trigger Greptile
| background: 'var(--color-bg-field)', | ||
| background: 'var(--color-bg-body)', | ||
| border: '1px solid var(--color-border)', | ||
| }, |
There was a problem hiding this comment.
When any SegmentedControl uses either theme, the new border is applied to the component root while the active indicator receives no border, causing an outer border around the entire control instead of the intended 1px boundary around the selected option. The HyperDX theme repeats the same assignment.
E2E Test Results✅ All tests passed • 270 passed • 1 skipped • 1038s
Tests ran across 4 shards in parallel. |
|
<!-- deep-review --> Deep Review✅ No critical issues found. This is a visual-only theme change with no data, auth, or crash surface. Five P2 items below are worth resolving before merge — the first two are the substantive ones. 🟡 P2 -- recommended
🔵 P3 nitpicks (5)
Reviewers (5): correctness, testing, maintainability, project-standards, kieran-typescript. Testing gaps:
Coverage note: |
Primary buttons now use the solid brand green background (via --color-bg-brand) instead of the subtle green-light tint, and the brand green is bumped a shade for stronger presence. Also update the HyperDX logomark to fixed brand colors. Co-authored-by: Cursor <cursoragent@cursor.com>
Deep Review✅ No critical issues found. This is a presentational theme diff — no auth, data, or API surface is touched, and nothing here can crash a happy path. 🟡 P2 — recommended
🔵 P3 nitpicks (4)
Reviewers (4): correctness-of-scope analysis by the orchestrator, testing, maintainability, project-standards, agent-native. Testing gaps:
Coverage caveats: |
|
Super minor, but is it intentional that the icons here shift up by a pixel when the tab is selected? Screen.Recording.2026-08-05.at.10.55.44.AM.mov |
|
@pulpdrew, it is not intentional. Let me fix it! 🙌🏽 |
…ab line Keep the active tab's border-bottom-width at 1px (matching non-active tabs) and render the 2px indicator via an inset shadow so selecting a tab no longer nudges its icon/label up by 1px. Also point the non-active/gray tab line at --color-border via --tab-border-color in both themes. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Small Mantine theme refinements across the HyperDX and ClickStack themes:
::beforewith a 1px border on all four sides of a zero-height box, so the top + bottom borders stack into a ~2px-looking line. Collapsed it to a true 1px bottom edge for horizontal tabs (vertical tabs keep their native side border). Also set non-active horizontal tab hover borders to 1px so they match the list line, while the active tab keeps its 2px indicator.Codecomponent background to the shared--color-bg-codetoken in both themes. Fixed the ClickStack--color-bg-codevalues to reference defined tokens (--palette-slate-50for light,--palette-neutral-725for dark) — the previous light value referenced a non-existent--color-slate-50, which resolved to invalid.--color-bg-option-activebackground token. Added that token to the Design Tokens storybook.Screenshots
Better segment controls

The tabs lines are now 1px
Buttons

Logo it is now the same in dark and light mode:
Test plan
color-bg-option-activeswatchCodeblocks use the--color-bg-codebackground in both light/dark and both themesMade with Cursor