Skip to content

Conversation

@mgadewoll
Copy link
Contributor

@mgadewoll mgadewoll commented Oct 10, 2025

Summary

closes #9084

This PR removes all code related to the legacy "Amsterdam" theme as well as conditional theme specific code.

Additional changes

  • removes obsolete SCSS files
  • removes the theme switcher in the EUI docs and adds a "high contrast mode" toggle instead
default enabled
Screenshot 2025-10-16 at 10 06 03 Screenshot 2025-10-16 at 10 06 09

Why are we making this change?

🧹 ✨ Maintainability: Removing the legacy "Amsterdam" theme to simplify the UI update workflow and reduce the "dead" code weight.

Screenshots #

Impact to users

🔴 This is a breaking change due to the removal of theme tokens and package files.
Consumers that rely on imports from /src/themes or SCSS files from src/global_styling/mixins as well as consumers using EuiThemeAmsterdam or euiTheme.flags need to update their code.

ℹ️ The required changes for Kibana have been prepared here.

QA

  • verify there is no "Amsterdam" related code in eui anymore
  • ensure eui, eui-theme-borealis and eui-theme-common packages build correctly
  • smoke test button and form components to verify there was no regression during the removal (running VRT is useful here)
  • verify the added high contrast mode switcher in the EUI docs works correctly

Consumer updates

ℹ️ No action required here. Adding the consumer updates for tracking purposes.

General checklist

  • Browser QA
    • Checked in both light and dark modes
    • Checked in both MacOS and Windows high contrast modes
    • Checked in mobile
    • Checked in Chrome, Safari, Edge, and Firefox
    • Checked for accessibility including keyboard-only and screenreader modes
  • Docs site QA
  • Code quality checklist
  • Release checklist
    • A changelog entry exists and is marked appropriately.
    • If applicable, added the breaking change issue label (and filled out the breaking change checklist)
  • Designer checklist
    • If applicable, file an issue to update EUI's Figma library with any corresponding UI changes. (This is an internal repo, if you are external to Elastic, ask a maintainer to submit this request)

@mgadewoll mgadewoll self-assigned this Oct 10, 2025
@mgadewoll mgadewoll added breaking change PRs with breaking changes. (Don't delete - used for automation) visual refresh labels Oct 10, 2025
@github-actions
Copy link

This PR contains breaking changes. The opener of this pull request is asked to perform the following due diligence steps below, to assist EUI in our next Kibana upgrade:

  • If this PR contains prop/API changes:
    • Search through Kibana for <EuiComponent usages (example search)
    • In the PR description or in a PR comment, include a count or list with the number of component usages in Kibana that will need to be updated (if that amount is "none", include that information as well)
  • If this PR contains CSS changes:
    • Search through Kibana for the changed EUI selectors, e.g. .euiComponent (example search)
    • In the PR description or in a PR comment, include a count or list with the number of custom CSS overrides in Kibana that will need to be updated (if that amount is "none", include that information as well)
  • 🔍 Tip: When searching through Kibana, consider excluding **/target, **/*.snap, **/*.storyshot files to reduce noise and only look at source code usages
  • ⚠️ For extremely risky changes, the EUI team should potentially consider the following precautions:
    • Using a pre-release release candidate to test Kibana CI ahead of time
    • Using kibana-a-la-carte for manual QA, and to give other Kibana teams a staging server to quickly test against

@mgadewoll mgadewoll force-pushed the theme/remove-amsterdam branch from 43958de to 28ce7c8 Compare October 13, 2025 08:02
@mgadewoll mgadewoll force-pushed the theme/remove-amsterdam branch from db1704c to d6b4290 Compare October 15, 2025 09:38
@mgadewoll mgadewoll marked this pull request as ready for review October 15, 2025 14:11
@mgadewoll mgadewoll requested a review from a team as a code owner October 15, 2025 14:11
@mgadewoll mgadewoll force-pushed the theme/remove-amsterdam branch from d6b4290 to ce15e47 Compare October 16, 2025 08:05
there are no JSON export files required to be copied anymore
- due to buttonVariant refactoring
- expected change (fix);  the previous toggleTypeStyle wasn't applied correctly due to the nested object returned from euiFilterButtonDisplay
- due to formVariant refactoring
- removes global_styling SCSS files as they are located in eui-theme-common

- removes component specific SCSS mixin files as those styles are not used within EUI anymore and the styles were not updated either
@mgadewoll mgadewoll force-pushed the theme/remove-amsterdam branch from ce15e47 to 07ce781 Compare October 27, 2025 07:27
@mgadewoll
Copy link
Contributor Author

ℹ️ Rebased with latest main.

@weronikaolejniczak
Copy link
Contributor

Testing:

yarn && yarn workspace @elastic/eui build:workspaces
yarn workspace @elastic/eui build
✅ Jest tests pass locally
❌ VRT tests don't pass locally
✅ Cypress tests pass locally
yarn workspace @elastic/eui start (Storybook)
✅ smoke tested the majority of components, including forms and buttons
✅ HCM switcher works correctly
✅ CI passes

Details

Website:

Kapture 2025-10-27 at 09 50 04

Jest:

Screenshot 2025-10-27 at 09 49 37

Cypress:

Screenshot 2025-10-27 at 09 59 53

VRT:

Screenshot 2025-10-27 at 10 04 16

What failed specifically:

Screenshot 2025-10-27 at 10 04 40 Screenshot 2025-10-27 at 10 05 12 Screenshot 2025-10-27 at 10 04 50

Code review: in progress...


Will take a look at the Kibana PR and Cloud PR as a sanity check as well.

if (!isParentTheme.current) {
/* Enables recomputation of component colors when flags are overridden on the provider
by adding the respective key to modifications to trigger a recomputation. */
// NOTE: Keeping this as placeholder for potential future usage during Borealis changes
Copy link
Contributor

Choose a reason for hiding this comment

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

Makes sense to me 👍🏻 good decision

@weronikaolejniczak
Copy link
Contributor

Code review:

I shared some doubts I have but none of them are blocking. I also confirm there's nothing in the codebase that refers to "Amsterdam" theme (other than changelogs ofc):

Screenshot 2025-10-27 at 10 13 53

Before approving, I'll also go through the touched components again to verify there's no regression from production (although functional and VRT tests passing should give enough confidence).

Copy link
Contributor

@weronikaolejniczak weronikaolejniczak left a comment

Choose a reason for hiding this comment

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

Components:

EuiBetaBadge
EuiNotificationBadge
EuiButton
EuiButtonEmpty
EuiButtonGroup
EuiButtonIcon
EuiCollapsibleNavBeta
EuiComboBox
EuiDataGrid
EuiSuperDatePicker
EuiFilterGroup
EuiFieldNumber
EuiFieldText
EuiFilePicker
EuiFormControlLayout
EuiFormErrorText
EuiFormLabel
EuiRange
EuiHeader
EuiKeyPadMenu
EuiMarkdownEditor
EuiPanel
EuiResizableContainer
EuiSearchBar
EuiSelectableTemplateSitewide
EuiToast
EuiToken


LGTM! 🟢 Thank you for the diligence and all the hard work, Lene 🙏🏻 Removing Amsterdam stuff must've felt good!

@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

History

cc @mgadewoll

@elasticmachine
Copy link
Collaborator

💚 Build Succeeded

History

cc @mgadewoll

@mgadewoll mgadewoll merged commit ffeba48 into elastic:main Oct 27, 2025
9 checks passed
mgadewoll added a commit to elastic/kibana that referenced this pull request Oct 31, 2025
- `@elastic/eui`: `v107.0.1` ⏩ `v108.0.0`
- `@elastic/eui-theme-borealis`: `v3.6.0` ⏩ `v4.0.0`

---

## Changes

>[!IMPORTANT]
This PR removes code related to the legacy Amsterdam theme. But it
purposefully keeps Amsterdam palettes in `kbn-palettes` as those are
standalone.

- removed code related to the legacy theme Amsterdam
[[#9090](elastic/eui#9090)]
- updated custom types to align with changes to the event type of
`onClose` on `EuiModal`
[[#9137](elastic/eui#9137)]

## Package updates

### [`v108.0.0`](https://github.com/elastic/eui/releases/v108.0.0)

- Updated `EuiModal` to support closing on outside click, via the new
`outsideClickCloses` prop
([#9137](elastic/eui#9137))

**Breaking changes**

- Removed all "Amsterdam" theme related code in `src/themes/amsterdam` -
EUI now only supports the "Borealis" theme in `eui-theme-borealis`
([#9090](elastic/eui#9090))
- Removed `euiTheme.flags.hasGlobalFocusColor`
([#9090](elastic/eui#9090))
- Removed `euiTheme.flags.hasVisColorAdjustment`
([#9090](elastic/eui#9090))
- Removed `hasVisColorAdjustment` argument from color palettes (used in
`euiPaletteColorBlindBehindText`, `euiPaletteForTemperature`,
`euiPaletteComplementary`, `euiPaletteCool`)
([#9090](elastic/eui#9090))
- Removed `euiTheme.flags.buttonVariant` and
`euiTheme.flags.formVariant`
([#9090](elastic/eui#9090))
- Removed `euiTheme.components.keyPadMenuItemBackgroundDisabledSelect`
([#9090](elastic/eui#9090))
- Removed legacy SCSS files from `src/global_styling/variables`,
`src/global_styling/mixins` and `src/global_styling/functions` - if
needed, use them from `eui-theme-common` instead
([#9090](elastic/eui#9090))

### [`v4.0.0`](https://github.com/elastic/eui/releases/v4.0.0)

**Breaking changes**

- Removed `euiTheme.flags.hasGlobalFocusColor`
([#9090](elastic/eui#9090))
- Removed `euiTheme.flags.hasVisColorAdjustment`
([#9090](elastic/eui#9090))
- Removed `euiTheme.flags.buttonVariant` and
`euiTheme.flags.formVariant`
([#9090](elastic/eui#9090))
- Removed `euiTheme.components.keyPadMenuItemBackgroundDisabledSelect`
([#9090](elastic/eui#9090))

---------

Co-authored-by: Elastic Machine <[email protected]>
ana-davydova pushed a commit to ana-davydova/kibana that referenced this pull request Nov 3, 2025
- `@elastic/eui`: `v107.0.1` ⏩ `v108.0.0`
- `@elastic/eui-theme-borealis`: `v3.6.0` ⏩ `v4.0.0`

---

## Changes

>[!IMPORTANT]
This PR removes code related to the legacy Amsterdam theme. But it
purposefully keeps Amsterdam palettes in `kbn-palettes` as those are
standalone.

- removed code related to the legacy theme Amsterdam
[[elastic#9090](elastic/eui#9090)]
- updated custom types to align with changes to the event type of
`onClose` on `EuiModal`
[[elastic#9137](elastic/eui#9137)]

## Package updates

### [`v108.0.0`](https://github.com/elastic/eui/releases/v108.0.0)

- Updated `EuiModal` to support closing on outside click, via the new
`outsideClickCloses` prop
([elastic#9137](elastic/eui#9137))

**Breaking changes**

- Removed all "Amsterdam" theme related code in `src/themes/amsterdam` -
EUI now only supports the "Borealis" theme in `eui-theme-borealis`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.flags.hasGlobalFocusColor`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.flags.hasVisColorAdjustment`
([elastic#9090](elastic/eui#9090))
- Removed `hasVisColorAdjustment` argument from color palettes (used in
`euiPaletteColorBlindBehindText`, `euiPaletteForTemperature`,
`euiPaletteComplementary`, `euiPaletteCool`)
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.flags.buttonVariant` and
`euiTheme.flags.formVariant`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.components.keyPadMenuItemBackgroundDisabledSelect`
([elastic#9090](elastic/eui#9090))
- Removed legacy SCSS files from `src/global_styling/variables`,
`src/global_styling/mixins` and `src/global_styling/functions` - if
needed, use them from `eui-theme-common` instead
([elastic#9090](elastic/eui#9090))

### [`v4.0.0`](https://github.com/elastic/eui/releases/v4.0.0)

**Breaking changes**

- Removed `euiTheme.flags.hasGlobalFocusColor`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.flags.hasVisColorAdjustment`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.flags.buttonVariant` and
`euiTheme.flags.formVariant`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.components.keyPadMenuItemBackgroundDisabledSelect`
([elastic#9090](elastic/eui#9090))

---------

Co-authored-by: Elastic Machine <[email protected]>
albertoblaz pushed a commit to albertoblaz/kibana that referenced this pull request Nov 4, 2025
- `@elastic/eui`: `v107.0.1` ⏩ `v108.0.0`
- `@elastic/eui-theme-borealis`: `v3.6.0` ⏩ `v4.0.0`

---

## Changes

>[!IMPORTANT]
This PR removes code related to the legacy Amsterdam theme. But it
purposefully keeps Amsterdam palettes in `kbn-palettes` as those are
standalone.

- removed code related to the legacy theme Amsterdam
[[elastic#9090](elastic/eui#9090)]
- updated custom types to align with changes to the event type of
`onClose` on `EuiModal`
[[elastic#9137](elastic/eui#9137)]

## Package updates

### [`v108.0.0`](https://github.com/elastic/eui/releases/v108.0.0)

- Updated `EuiModal` to support closing on outside click, via the new
`outsideClickCloses` prop
([elastic#9137](elastic/eui#9137))

**Breaking changes**

- Removed all "Amsterdam" theme related code in `src/themes/amsterdam` -
EUI now only supports the "Borealis" theme in `eui-theme-borealis`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.flags.hasGlobalFocusColor`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.flags.hasVisColorAdjustment`
([elastic#9090](elastic/eui#9090))
- Removed `hasVisColorAdjustment` argument from color palettes (used in
`euiPaletteColorBlindBehindText`, `euiPaletteForTemperature`,
`euiPaletteComplementary`, `euiPaletteCool`)
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.flags.buttonVariant` and
`euiTheme.flags.formVariant`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.components.keyPadMenuItemBackgroundDisabledSelect`
([elastic#9090](elastic/eui#9090))
- Removed legacy SCSS files from `src/global_styling/variables`,
`src/global_styling/mixins` and `src/global_styling/functions` - if
needed, use them from `eui-theme-common` instead
([elastic#9090](elastic/eui#9090))

### [`v4.0.0`](https://github.com/elastic/eui/releases/v4.0.0)

**Breaking changes**

- Removed `euiTheme.flags.hasGlobalFocusColor`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.flags.hasVisColorAdjustment`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.flags.buttonVariant` and
`euiTheme.flags.formVariant`
([elastic#9090](elastic/eui#9090))
- Removed `euiTheme.components.keyPadMenuItemBackgroundDisabledSelect`
([elastic#9090](elastic/eui#9090))

---------

Co-authored-by: Elastic Machine <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking change PRs with breaking changes. (Don't delete - used for automation) visual refresh

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Theme] Remove legacy Amsterdam theme

3 participants