Skip to content

[Theme tokens] Recessed/subdued surfaces + control/panel/frame radii - #9903

Draft
ryankeairns wants to merge 20 commits into
mainfrom
rk/round-layered-cake
Draft

[Theme tokens] Recessed/subdued surfaces + control/panel/frame radii#9903
ryankeairns wants to merge 20 commits into
mainfrom
rk/round-layered-cake

Conversation

@ryankeairns

@ryankeairns ryankeairns commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Related to #9894 — token foundation for surfaces and radii only (borders and semantic spacing deferred).

Surfaces

Token Light (this branch) Light (main) Dark (this branch) Dark (main)
colors.body #ECF1F9 (shade15) #F6F9FC (shade10) #07101F (plainDark) #07101F (plainDark)
colors.backgroundBaseRecessed #F6F9FC (shade10) #07101F (plainDark)
colors.backgroundBaseSubdued #F6F9FC (shade10) #F6F9FC (shade10) #0B1628 (shade145) #07101F (plainDark)
colors.backgroundBasePlain #FFFFFF (plainLight) #FFFFFF (plainLight) #111C2C (shade140) #0B1628 (shade145)

Why backgroundBaseRecessed (vs subdued)

Recessed has a few specific use cases as a layout well in apps such as Dashboards and Workflows in dark mode. Recessed is not a strong light mode visual need today. Using it in both places keeps one semantic token for that well so dark can sit on plainDark (with body) while light can stay on shade10 with Subdued — same values for now, separate tokens if they need to diverge later.

  • Dark: Recessed = plainDark; Subdued = shade145. Using Subdued for the well collapses the stack (weaker sunken panel). Remapping Subdued to plainDark would flatten all secondary UI into chrome.
  • Light: Recessed and Subdued both use shade10 for now — same value, different intent — so light can diverge later without migrating consumers.
Light surfaces Dark surfaces
CleanShot 2026-08-20 at 18 09 36@2x CleanShot 2026-08-20 at 18 10 41@2x

Radii (additive; legacy small/medium stay 4px)

  • border.radius.inline — 4px
  • border.radius.control — 8px
  • border.radius.panel — 12px
  • border.radius.frame — 16px (app/layout chrome; e.g. framed shell)

No component default flips in this PR — consumers / follow-ups wire to the new tokens.

Out of scope (parked on #9894)

  • Border color / hairline
  • Semantic spacing aliases
  • Exploration overrides (borderSubdued / textSubdued alpha, textNav, shellShadow)

Test plan

  • Docs token tables show recessed + radius tiers (inline / control / panel / frame)
  • Light/dark: body / recessed / subdued / plain match table above
  • Existing border.radius.small/medium still 4px
  • Changelog packages/eui/changelogs/upcoming/9903.md

ryankeairns and others added 2 commits August 11, 2026 16:27
Introduce backgroundBaseCanvas (#EAEDF5 light) with quieter backgroundBaseSubdued (#F8F9FB) for inner surfaces, keep plain raised white, and add additive border.radius.control/panel/container (8/12/16) without changing legacy small/medium.

Co-authored-by: Cursor <cursoragent@cursor.com>
Apply Interbana dark values for backgroundBaseCanvas (#0B0F17), backgroundBaseSubdued (#14171D), and backgroundBasePlain (#161B22); keep light Nirbana surfaces as already set.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ryankeairns
ryankeairns requested a review from a team as a code owner August 11, 2026 23:52
Copilot AI lite review requested due to automatic review settings August 11, 2026 23:52
Co-authored-by: Cursor <cursoragent@cursor.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds new theme foundation tokens for Borealis surfaces (canvas/subdued/plain) and new radius tiers (control/panel/container), plus docs updates so consumers can discover and start using the new tokens without changing component defaults.

Changes:

  • Introduces colors.backgroundBaseCanvas and updates Borealis light/dark background + colors.body mappings accordingly.
  • Adds border.radius.control|panel|container tokens (8/12/16px) to Borealis + docs tables.
  • Extends Borealis primitive/semantic color palettes with new shade steps used by the new background tokens.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
packages/website/docs/getting-started/theming/tokens/colors/special_colors_table.tsx Updates docs deprecation guidance for colors.body to reference the new canvas/surface tokens.
packages/website/docs/getting-started/theming/tokens/colors/background_colors_table.tsx Adds backgroundBaseCanvas to the background token table.
packages/website/docs/getting-started/theming/tokens/borders/border_radii_table.tsx Adds new radius tiers to the border radii token table.
packages/eui-theme-common/src/global_styling/variables/colors.ts Extends the shared background token type with backgroundBaseCanvas.
packages/eui-theme-common/src/global_styling/variables/borders.ts Extends the shared border radius type with control, panel, and container.
packages/eui-theme-borealis/src/variables/colors/_semantic_colors.ts Adds new semantic shade keys used by the updated background tokens.
packages/eui-theme-borealis/src/variables/colors/_semantic_colors.scss Adds corresponding Sass semantic shade variables and new dark surface Sass variables.
packages/eui-theme-borealis/src/variables/colors/_primitive_colors.ts Adds new primitive palette entries for canvas/sub-surface/raised dark surfaces and new light shade steps.
packages/eui-theme-borealis/src/variables/colors/_colors_light.ts Wires new light-mode backgroundBaseCanvas/backgroundBaseSubdued and updates colors.body.
packages/eui-theme-borealis/src/variables/colors/_colors_light.scss Wires new light-mode Sass background variables for canvas/subdued and updates deprecated page background var.
packages/eui-theme-borealis/src/variables/colors/_colors_dark.ts Wires new dark-mode backgroundBaseCanvas/backgroundBaseSubdued/backgroundBasePlain and updates colors.body.
packages/eui-theme-borealis/src/variables/colors/_colors_dark.scss Wires new dark-mode Sass background variables for canvas/subdued/plain and updates deprecated page background var.
packages/eui-theme-borealis/src/variables/_borders.ts Adds new computed radius tiers (8/12/16px) to the Borealis theme object.
packages/eui-theme-borealis/src/variables/_borders.scss Adds Sass variables for the new radius tiers.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/eui-theme-borealis/src/variables/colors/_colors_light.ts Outdated
Comment thread packages/eui-theme-borealis/src/variables/colors/_colors_dark.ts Outdated
Comment thread packages/eui-theme-borealis/src/variables/colors/_primitive_colors.ts Outdated
ryankeairns and others added 2 commits August 11, 2026 22:11
Update form/color expectations for the new dark plain and subdued surfaces, and add missing upcoming changelogs for eui-theme-borealis and eui-theme-common.

Co-authored-by: Cursor <cursoragent@cursor.com>
Comment thread packages/eui-theme-borealis/src/variables/_borders.scss Outdated
@ryankeairns
ryankeairns marked this pull request as draft August 12, 2026 14:50
@ryankeairns ryankeairns changed the title [theme] Canvas/subdued surfaces + control/panel/container radii [Theme tokens] Canvas/subdued surfaces + control/panel/container radii Aug 12, 2026
ryankeairns added a commit that referenced this pull request Aug 12, 2026
…nits

Clarify deprecated colors.body docs, rename blueGrey12 to lightCanvas so the scale stays monotonic, and drop stale px comments on radius Sass vars.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 20 out of 20 changed files in this pull request and generated no new comments.

ryankeairns and others added 3 commits August 13, 2026 11:16
4px semantic token for reviewed inline/text-adjacent marks. Wire Skeleton, ColorPickerSwatch, and Code; leave legacy small/medium as unreviewed aliases.

Co-authored-by: Cursor <cursoragent@cursor.com>
Reuse existing shade8 (#F8F9FB); drop unused shade17/blueGrey17 that only served the darker canvas.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep canvas on shade8 for nested workspace surfaces. Restore body/euiPageBackgroundColor to shade17 (#EAEDF5) for Kibana document chrome.

Co-authored-by: Cursor <cursoragent@cursor.com>
ryankeairns and others added 10 commits August 13, 2026 13:24
Co-authored-by: Cursor <cursoragent@cursor.com>
Update euiPageBackgroundColor and surface backgrounds so Kibana getEuiThemeVars matches SCSS/TS tokens.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Mirror visual-refresh Sass/Emotion tokens for Kibana getEuiThemeVars consumers.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the extra surface levels, but drop the gray/black primitives so dark mode stays on the existing blue tint.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the extra blueGrey8/17 rungs and keep the three surface roles without new primitives.

Co-authored-by: Cursor <cursoragent@cursor.com>
Restore the existing colors.body deprecation copy and document recessed as a seldom-used intermediate layer.

Co-authored-by: Cursor <cursoragent@cursor.com>
Clarify the 16px token as app/layout chrome rather than a generic container.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ryankeairns ryankeairns changed the title [Theme tokens] Canvas/subdued surfaces + control/panel/container radii [Theme tokens] Recessed/subdued surfaces + control/panel/frame radii Aug 20, 2026
Drop the inaccurate textParagraph and JSON-sync lines; keep dark subdued/plain updates explicit.

Co-authored-by: Cursor <cursoragent@cursor.com>
@infra-vault-gh-plugin-prod

Copy link
Copy Markdown

💚 Build Succeeded

History

@infra-vault-gh-plugin-prod

infra-vault-gh-plugin-prod Bot commented Aug 21, 2026

Copy link
Copy Markdown

💔 Build Failed

Failed CI Steps

History

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Token updates: surfaces, radii, borders, semantic spacing

3 participants