Skip to main content

Migrate Image from Polaris React

Use s-image for content imagery and preserve meaningful alternative text. Use empty alternative text for decorative images rather than repeating nearby content.


Anchor to Choose the destinationChoose the destination

Polaris ReactPolaris web componentsMigration type
Images-imageDirect

Anchor to Map image propertiesMap image properties

Polaris ReactPolaris web componentsMigration notes
source and altsrc and altPreserve the trusted image URL and correct alternative text.
sourceSetsrcSetProvide the available image candidates and their width or density descriptors.
Responsive display widthsizes with inlineSize="fill" or "auto"sizes tells the browser how wide the image will render so it can choose a srcSet candidate; inlineSize controls whether the component fills its container or uses its natural size.
Reserved shape and croppingaspectRatio and objectFitReserve the final shape before loading. Use contain to show the complete image or cover when intentional cropping is acceptable.
fit and load callbacksobjectFit, onLoad, and onErrorRecheck cropping and reconnect fallbacks to DOM events.

srcSet doesn't size the rendered component by itself. Pair it with an accurate sizes value and a containing layout whose inline size is known. Set aspectRatio when the layout should reserve space before the selected source loads.


Anchor to Migrate the call siteMigrate the call site

  1. Inventory every Image call site and record the content, state, events, and accessibility behavior it uses.

  2. Open the linked Polaris web component reference and map only documented properties, slots, and events.

  3. Move unsupported responsibilities into adjacent content or app state instead of passing old props through.

  4. After verification, remove the Image import and any Polaris-only state, wrappers, or helpers that no longer have a caller.


Anchor to Preserve these behaviorsPreserve these behaviors

  • Accessible names, semantics, and keyboard behavior.
  • Visible content plus disabled, loading, selected, or error state that affects the task.
  • Click, change, submit, and navigation behavior used by app logic.

Anchor to Test and remove Polaris ReactTest and remove Polaris React

Test every migrated Image state used by the app. For interactive destinations, verify keyboard operation, focus, and accessible naming. For content destinations, verify document structure and alternative text where applicable. Compare behavior rather than pixel-for-pixel styling.

Don't remove @shopify/polaris while another component still imports it. Once all call sites are migrated, remove the package and its provider-level setup, then run the app's full test suite.


Migrating Image

export function ImageMigrationExample() {
return (
<><s-image src="https://cdn.shopify.com/static/sample-product/House-Plant1.png" alt="House plant"></s-image></>
);
}
import {Image} from '@shopify/polaris';


export function ImageMigrationExample() {

return (
<Image source="https://cdn.shopify.com/static/sample-product/House-Plant1.png" alt="House plant" />
);
}

Preview


Was this page helpful?