Sign inConnect your agent
breakingannouncementAtlassian calls it: Announcement

IconTile - `shape` prop and circular tile support removed in `@atlaskit/icon`

Announced
Tags
library-atlaskit
Severity
breaking, set by reef/atlassian-rule-v2
Source
https://developer.atlassian.com/changelog/#CHANGE-3332

The deprecated shape prop and UNSAFE_circleReplacementComponent prop have been removed from IconTile in @atlaskit/icon. Circular icon tiles are no longer supported. This follows the deprecation notice issued 6+ months ago.

What’s removed

  • shape prop - shape="circle" and shape="square" are no longer accepted. Square is the only shape and is now the default with no prop needed.
  • UNSAFE_circleReplacementComponent prop - the escape hatch introduced during the deprecation period has been removed.

Related resources

More details

Migration

If you used shape="square" - simply remove the prop. No visual change:

- <IconTile icon={MyIcon} label="" appearance="gray" size="medium" shape="square" />
+ <IconTile icon={MyIcon} label="" appearance="gray" size="medium" />

If you used shape="circle" with UNSAFE_circleReplacementComponent - the replacement component you were already providing is now rendered directly. Remove the IconTile wrapper and render your replacement directly:

- <IconTile
-   icon={MyIcon}
-   label=""
-   appearance="gray"
-   shape="circle"
-   size="small"
-   UNSAFE_circleReplacementComponent={<Box xcss={myCircleStyles}><MyIcon label="" /></Box>}
- />
+ <Box xcss={myCircleStyles}>
+   <MyIcon label="" />
+ </Box>

If you used shape="circle" without a replacement component - use ADS primitives to recreate a circular appearance:

- <IconTile icon={MyIcon} label="" appearance="gray" shape="circle" size="small" />
+ <Box xcss={xcss({ borderRadius: 'border.radius.circle', backgroundColor: 'color.background.neutral' })}>
+   <MyIcon label="" color={token('color.icon.subtle')} />
+ </Box>

The text above is the source's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.