Repository navigation
fix(apollo-core): make future-dark primary-lighter a subtle tint [MST-16476] - #1412
Conversation
There was a problem hiding this comment.
🟢 Approval recommended
The token change is narrowly scoped, with only a non-blocking Storybook preview correction remaining.
1 open issue
What changed in this PR
Adjusts the Modern dark primary tint to better support backgrounds behind text and icons.
Changes:
- Changes
primaryLighter.future-darkfromcyan.300tocyan.900, leaving other themes unchanged. - Updates the Future colors story’s dark
brand-lighterswatch.
| File | Description |
|---|---|
| packages/apollo-wind/src/foundation/Future/colors.stories.tsx | Updates the documented dark tint. |
| packages/apollo-core/src/tokens/color/semantic.json | Sets the Modern dark primary tint to cyan.900. |
Review effort: Balanced
Dependency License Review
License distribution
Excluded packages
|
Storybook visual diff⏭️ Skipped: the apollo-design preview deployment did not succeed, so no comparison ran. Logs Updated (PT): Oct 19, 2026, 09:31:28 AM |
…ighter swatch [MST-16476]
📊 Coverage + size by packagePer-package coverage and bundle size on this PR. New-line coverage = of the source lines this PR adds or changes, the % hit by tests.
"Coverage" is each package's own |

Summary
In
future-dark,primary-lighteriscyan.300, which is brighter thanprimary(cyan.500). In every other theme it is the low-emphasis tint, closer to the page background thanprimary(blue.700indark,cyan.100infuture-light). Consumers that use it as a tint behind text get unreadable results in Modern dark. This sets it tocyan.900, one step aboveprimary-subtle(cyan.950), the same relationshipfuture-lighthas (cyan.100abovecyan.50).Reported for the resource picker chips in Studio Web's DAP and for variable chips in PO.Frontend. Apollo's own
ModelPickerhits it too: it puts--color-primarytext on a--color-primary-lighterhover background (ModelPicker.tsx:1192,1212).primaryprimary-lighterprimary-darkerlightdarkfuture-lightfuture-dark(before)future-dark(after)Contrast in
future-dark:#53eafd)#104e64)--color-primarytext or icons on it (ModelPicker hover and icon tile)zinc.950)Changes
apollo-coresemantic.json:primaryLighter.future-darkchanges fromcyan.300tocyan.900. The other five themes are unchanged, and the generatedtheme-variables.cssdiffers only infuture-dark--color-primary-lighter.apollo-windFuture colors story: thebrand-lighterswatch is updated tocyan-900.For review:
cyan.900leaves the ModelPicker's hover text at 3.87:1, which passes the 3:1 bar for icons and large text but not 4.5:1 for normal text.cyan.950would give 5.67:1 but would makeprimary-lighterequalprimary-subtle.guardrail-chip.tsxusesbrand-lighteras its selected border onbrand-subtle. That pair goes from 13.8:1 to 1.47:1 infuture-dark, which is now in line withfuture-light(1.08:1). It's left unchanged here; a stronger border token would be a separate design call.primary-darkeris also reversed infuture-dark(cyan.600, closer to the background thanprimary). It's out of scope here because "pressed / deep accent" usages may depend on it.primary.lightandsecondary.lightmap to this token infuture-dark. No Apollo component reads them.E2E Impact
Not applicable: token value change only. Expect visual-regression snapshot diffs in Modern dark stories that use
primary-lighter/brand-lighter, such as the ModelPicker, the guardrail chip and the Future colors page.Release notes
In the Modern dark theme, components and apps that use the primary "lighter" tint as a background now show a dark cyan instead of a bright cyan, so text and icons on it are readable again.
Testing
@uipath/apollo-corebuilds (pnpm turbo run build --filter=@uipath/apollo-core), and the generated CSS was checked for every theme@uipath/apollo-coretests pass (19)