FeaturesEverything includedAI advisorPricingDocsOpen app
app development

Polaris 2 visual guide: every Shopify admin component, before and after

Every Polaris web component rendered live in Polaris 1 and in Polaris 2's new Shopify admin look, side by side, with the design tokens behind the change.

From September 15, 2026, the Shopify admin gets a new look, and Polaris 2 is the web component release that carries it into embedded apps. Shopify has shipped the library but no visual guide, so for app developers deciding what the upgrade means for their own screens, this page renders every component with both libraries: Polaris 1 on the left and Polaris 2 with the new admin look on the right, or old above new on a phone. Same markup on both sides, and everything is live, so hover, focus, and open the menus, popovers and modals. The design tokens behind the change are at the end.

Page

Where the redesign is most visible: white canvas, a smaller page title, section headings lifted out of their cards, larger card radius, pill buttons and a near-black primary action.

Section

The heading moves out of the card and sits above it. The card gains a 20px radius and a crisper shadow; with a white page behind it, the hairline border does the work that background contrast used to.

Heading

Darker ink and the new ShopifyInter face. Sizes are unchanged.

Text

Text moves from #303030 to #101010, and tone colors shift with the new status palette.

Paragraph

Same as text: darker ink and the new face. Line lengths barely move because the metrics are close to Inter.

Link blue changes from #005bd3 to a lighter #3573f6, and the critical tone brightens.

Unordered list

Typography changes only.

Ordered list

Typography changes only.

Button

The biggest single change. Buttons become pills. Primary is near-black with a radial highlight; secondary loses its bevel and becomes flat light gray; the critical secondary gets a pink fill.

Button group

Inherits the button changes; spacing is unchanged.

Press button

Toggle buttons follow the pill shape; the pressed state is a filled gray pill.

Clickable

Takes the box changes plus the new hover fill.

Badge

Badges were already pastel. The hues shift (success from mint to yellow-green, info from sky blue to cyan, warning from peach to amber), text gets darker and more saturated, and padding tightens.

Success and warning banners drop their solid header fills for pastel ones with dark text; critical stays solid but brightens to a purer red. Corners round further and the action buttons become pills.

Chip

Chips keep their shape but take the new fills and ink.

Clickable chip

Same as chip, with the new hover and pressed fills.

Spinner

Unchanged apart from color.

Tooltip

Tooltips keep their dark surface. Hover the icon or the button.

Avatar

Avatar radius now scales with size and uses the superellipse where supported. Initials fills come from a new set of avatar colors.

Thumbnail

Media radius follows the same scaling rule as avatars.

Image

No change beyond the surface it sits on.

Icon

Default icon color darkens from #4a4a4a to #101010; tone colors follow the new status palette. The glyphs come from the same icon set.

Text field

Inputs go pure white with a soft shadow, a larger 12px radius and no blue focus outline. Minimum height drops by 2px. Click into one to compare focus.

Text area

Same treatment as text fields.

Number field

Same treatment as text fields.

Money field

Same treatment as text fields.

Email field

Same treatment as text fields.

Password field

Same treatment as text fields.

URL field

Same treatment as text fields.

Search field

Same treatment as text fields.

Select

Field styling as above. Open it to compare the option-item radius and the popover shadow.

Date field

Field styling as above. Open it to see the calendar popover.

Date picker

The selected day becomes a wide near-black pill instead of a square, and the calendar spreads out with more whitespace.

Color field

Field styling as above. Open it to see the picker popover.

Color picker

Handles and the hue slider get the new control-knob shadow.

Drop zone

Larger radius and a pill-shaped upload button.

Checkbox

The box shrinks from 16px to 14px, and the checked fill goes near-black with a subtle shadow instead of a flat fill.

Choice list

Radios and checkboxes shrink slightly and take the near-black checked fill.

Switch

The on state uses the brand fill, so it goes from charcoal to near-black; the knob gets a lighter shadow.

Table

Darker header and body text, a lighter row border, and badges inside cells pick up the new pastel hues.

Divider

Border tokens shift by a shade.

Box

Background and border tokens shift; the radius keywords map to the new, larger scale.

Stack

Layout primitive; no visual change of its own.

Grid

Layout primitive; no visual change of its own.

Scroll box

Layout primitive; no visual change of its own.

Query container

Layout primitive; no visual change of its own.

Popover

Popover radius grows from 12px to 16px and the shadow gets much lighter. Open it to compare.

Menu items take the larger option-item radius. Open it to compare.

Dialog radius grows from 16px to 24px with a much lighter shadow. Open it to compare.

Empty state

A centered graphic, heading, subheading and up to two actions for empty lists, tables and pages. New in Polaris 2.0.

Number

Inline numerals with tabular figures, tone, size and weight, so columns of figures line up. New in Polaris 2.0.

Design tokens

Polaris 1 hardcodes its colors, radii and shadows. Polaris 2.0 moves them onto roughly 500 design tokens and applies 178 overrides for the new look. These are the tokens that produce the differences above, with values as shipped in the release candidate. The token names carry a build hash in the bundle (for example --p-color-bg-656e1), so they are an internal mechanism rather than an override API.

TokenPolaris 1 lookPolaris 2.0 new lookWhat it changes
--p-color-bg#f1f1f1#fffPage background
--p-color-text#303030#101010Body text
--p-color-text-secondary#616161#606060Secondary text
--p-color-text-tertiary#616161#868686Tertiary text, now visibly lighter
--p-color-icon#4a4a4a#101010Default icon color
--p-color-text-link#005bd3#3573f6Links
--p-color-border-focus#005bd3#3573f6Focus rings
--p-color-border#e3e3e3#e6e6e6Default border
--p-color-bg-fill-brand#303030#0c0c0cPrimary button fill
--p-color-bg-fill-brand-hover#1a1a1a#000Primary button hover
--p-color-bg-fill#fff#f3f3f3Secondary button fill
--p-shadow-buttoninset bevelnoneSecondary button bevel removed
--p-color-button-gradient-bg-filllinear gradientradial gradientPrimary button highlight
--p-border-radius-action8pxfull (pill)Buttons and chips
--p-border-radius-container12px20pxCards and sections
--p-border-radius-dialog16px24pxModals
--p-border-radius-popover12px16pxPopovers and menus
--p-border-radius-control8px12pxInputs and selects
--p-border-radius-element8px10pxGeneric element radius
--p-border-radius-corner-shapenormalsuperellipse(1.333)Corner curvature where the browser supports it
--p-color-input-bg-surface#fdfdfd#fffInput background
--p-shadow-inputnonesoft drop shadowInputs gain a shadow
--p-border-width-outline-input-focus2pxnoneFocus outline replaced by shadow
--p-height-field-min-block-size32px30pxFields are slightly shorter
--p-space-choice-size16px14pxCheckbox and radio size
--p-color-bg-fill-success#047b5d#b3f782Success fill
--p-color-text-success#014b40#306b06Success text
--p-color-bg-fill-info#91d0ff#a8eaffInfo fill
--p-color-text-info#003a5a#025e8dInfo text
--p-color-bg-fill-warning#ffb800#ffc87aWarning fill
--p-color-text-warning#5e4200#b95d00Warning text
--p-color-bg-fill-caution#ffe600#ffe45cCaution fill
--p-color-bg-fill-critical#c70a24#eb0014Critical fill
--p-color-text-critical#8e0b21#d70b2eCritical text
--p-color-text-ai#5700d1#672ff4AI accent
--p-color-nav-bg#ebebeb#0a0a0aAdmin navigation (the host frame, not app content)
--p-shadow-containersoft diffusehairline plus soft spreadCard shadow
--p-shadow-dialoglarge and darksmall and lightModal shadow
--p-font-family-sansInterShopifyInterTypeface

A few tokens are conditional: control radii grow on touch devices, avatars and media round out, and the superellipse corner shape applies only in browsers that support corner-shape. The same component can therefore look slightly different by device without any code change.

A note on timing: the notes and token values on this page come from our analysis of the Polaris 2.0 release candidate as served on September 16, 2026. The rendered examples are live, though: both libraries load from Shopify’s CDN when you open the page, polaris-1.js for the stable Polaris 1 channel and polaris-2.0-rc.js for the release candidate, falling back to the stable polaris-2.js channel once the release candidate is retired. So the examples track what Shopify currently ships, and some details in the text may have changed since our analysis. Shopify’s own announcement is Prepare your app for the Shopify admin’s new look.

OptionWise is a Shopify product options app that renders options server-side, so they load with the page and are visible to search engines and AI assistants. Its admin is built on Polaris web components, which is why we track these releases closely.