April 29, 2026 Updates to the Admin Polaris Library

[NOTE: this has been temporarily rolled-back/undeployed as we investigate issues]

The team has wrapped up a large project that spanned months, but should mean more stability for you: the components are live in the admin, and will soak in the admin before we deploy to the CDN.

Additionally, the Polaris types package on npm has been updated to the latest, and includes a Custom Element Manifest that should enable tooling (such as IDE auto-complete) to be effective no matter the language you’re using.

Note: this thread is meant for providing updates on changes that have been made to the library; if you need support or help or want to report a bug with the update, please open a new Topic so that we can better help (and so that it’s easier for others to find in the future).

Changelog:

Checkbox

  • Checkbox: add aria-checked=“mixed” when in indeterminate state for correct screen reader announcement
  • Add onblur support for checkable elements

Chip

  • Add removable and onRemove props. When removable is set, a dismiss button appears and fires onRemove when clicked.

ChoiceList

  • Fixed ChoiceList selected radio buttons color

DatePicker

  • DatePicker: no longer fires a second input / change event when the same value is assigned back onto the element. This fixes double onChange handlers and double navigation in controlled consumers; programmatic writes to a different value still fire events as before.
  • Fix DatePicker multi range selection hover states
  • Add visual arrows for range selection in DatePicker

Menu

  • Add color for disabled menu items

Modal

  • Fixed Safari regressions related to Modal focus restoration and dialog initialization
  • Fix mobile Modal footer being pushed off-screen when content changes dynamically after mount.
  • Fixed Modal positioning in right to left direction
  • Move Modal focus trap from Preact useEffect to aftershow chain for deterministic activation
  • Fix Modal footer visibility on mobile

NumberField

  • Add support for scientific notation on NumberField

Page

  • Updated Page to allow for Menus with Sections to be rendered in secondaryActions slot when not rolled up

Popover

  • Added maxInlineSize support to Popover

Select

  • Fix Select displaying empty text on initial HTML render by seeding selectedTextContent synchronously
  • Fixed Select value getter breaking when the value contains double quotes by replacing CSS attribute selector interpolation with direct value comparison

TextArea

  • Fixed vertical alignment issue with TextArea labels on mobile devices

Thumbnail

  • Fixed Thumbnail border-radius mismatch on small-200 size variant

Tooltip

  • Tooltip: remove explicit aria-hidden=“false” when visible — only set aria-hidden=“true” when hidden

General / cross-cutting

  • Optimize rendering and style adoption for certain sub-elements
  • Reduce CSS bundle size by ~2.2% (7,306 bytes)
  • Guard console.warn against environments that intercept and JSON.stringify console arguments. The warn utility now catches serialization errors from non-standard console overrides and falls back to logging a CSS-selector-style ancestor path instead of the raw DOM element.
  • Updated Preact to fix issue when other Preact instances would see events that are already stamped, so handlers would not fire correctly.
  • Fix queueMicrotask timing gap with rendering components’ shadow dom
  • Fix commandFor activator flicker by syncing aria-expanded on click
  • Fix bug where onkeyup handler was not being fired after close event is triggered
  • Add Custom Elements Manifest (custom-elements.json) for Polaris web components using @custom-elements-manifest/analyzer via the @shopify/polaris-types package

Please make a new topic for bug reports. :slight_smile:

Bonus points if you include a reproduction in a codepen or something; you can use https://codepen.io/afrehner/pen/pvJmQvr as a template. Thanks!

As requested <s-modal> primary action button not appearing

Please please will you let us be able to pin the version number and let us choose when to update. My clients apps have all broken with this new release, button group buttons missing, layouts shifting breakpoints, clickable-chip no longer laying out reliably. I will raise bugs but please please let us pin the version

:heart: The community has a good solution here How can we lock the version of Polaris Web Components loaded from the CDN? - #11 by Philo for pinning versions

OK, I have seen this and will look at implementing, but it shouldn’t be the community doing this, now my apps are relying on some kind generous punter out there in the internet, not the billion dollar company! Just seems a shame because I rewrote clients apps (at great expense) to use polaris so that we were in a more supported environment but this doesn’t really help that. Thanks for answering though, it’s appreciated.

EDIT: This actually isn’t much use if you’re using AppProvider from shopify’s official react components as you can’t actually change the script tag without patching a dependency manually. [sigh]

I still don’t think we’ve gotten a good reply as to why they won’t just use some kind of versioning system.

This new update decided for me. Everything broke. Again.

I really, really tried to lean in to using the web components like Shopify wanted us to use it. But it’s unstable, unusable, and adds hours of maintenance each day to just to confirm that everything is still working.

I’ll switch back to the deprecated React components until I can write my own port to React. Can’t keep investing time in something that isn’t supported, and when genuine bug reports, or questions come up, they are just ignored.

Cool experiment though.

The update broke all my modals and clickable-chip components.

Please make a new topic, thanks.

NOTE: this has been temporarily rolled-back/undeployed as we investigate issues