I’m migrating both checkout and admin extensions to Polaris web components. Admin was smooth sailing, the changes there are genuinely great. Checkout though… it’s more challenging and feels like some functionality got dropped.
Overall I’m happy with the unification of Polaris components across surfaces, the API is cleaner and more consistent which is awesome. But hitting some real blockers:
The old React View had a position property for absolute/relative/sticky positioning. Used this for overlaying UI elements like floating a pickup point selection card over a map. The new Box doesn’t have positioning at all. Is there a recommended pattern for this or another component I should be using?
The @container syntax for responsive values is confusing and seems incomplete. I’m trying to do conditional border styles like border="@container (inline-size > 500px) base, none" but TypeScript errors out. Can’t figure out the right syntax or if certain properties just don’t work with container queries. The old Style.default().when() helper handled everything seamlessly - is there better documentation on what works with @container?
There’s no clear list of what got removed in the migration. I keep discovering things by breaking my app - like <Map> lost the onZoomChange callback. Would really help to have a migration guide that calls out removed features instead of finding out through trial and error.
Anyone else migrating checkout extensions and hitting similar issues? Any workarounds for overlays without position support? Really excited about where this is going but need some guidance on these gaps.




