Skip to content

feat(skin): remove legacyDisplay border radius token#1626

Merged
brtbrt merged 37 commits into
masterfrom
mbertamini/1600-remove-border-radius-token
Jul 15, 2026
Merged

feat(skin): remove legacyDisplay border radius token#1626
brtbrt merged 37 commits into
masterfrom
mbertamini/1600-remove-border-radius-token

Conversation

@brtbrt

@brtbrt brtbrt commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Closes #1600. Part of #626 — Major release plan 17.0.0.

Changes

Removes the deprecated legacyDisplay border radius token and replaces its two consumers with the container token.

  • Removes legacyDisplay from the BorderRadiiConfig type and the skin contract.
  • Removes the legacyDisplay override from every skin: Telefonica, Blau, Movistar, O2, Vivo, Vivo-evolution, esimflag, defaults and the community cyber-skin.
  • Updates the EmptyState and feedback-screen consumers to use container.

Visual impact

Replacing legacyDisplay with container changes the radius only where the two tokens differed:

Skin legacyDisplay container Change
Telefonica 0px 4px Yes (0 → 4)
Blau 16px 8px Yes (16 → 8)
defaults 16px 8px Yes (16 → 8)
community cyber-skin 0px 20px Yes (0 → 20)
Movistar 16px 16px No
O2 16px 16px No
Vivo 24px 24px No
Vivo-evolution 24px 24px No
esimflag 20px 20px No

Out of scope

The static per-skin css/*.css token exports still declare --mistica-border-radius-legacyDisplay (now an unused variable). Those files are synced from the mistica-design tokens and are cleaned up on that side.

Tests

  • Verified locally: tsc (0 errors), eslint (0 errors) and the theme unit tests pass.
  • Screenshot baselines for the affected EmptyState and feedback screens (Telefonica, Blau, defaults, community cyber-skin) must be regenerated.

Stack position — 7 of 10

This PR targets the branch from #1599 and can only be merged after #1599 lands on master. GitHub will retarget it to master automatically as the parent merges.

For the full merge strategy and ordering, see #626. Do not merge out of order.

brtbrt and others added 24 commits June 30, 2026 21:19
Remove the Tu skin entirely: skin definition, logo files and their
shells, the registry entry, the public exports, and all related
stories, screenshot tests, snapshots, storybook/playroom wiring, and
docs.

BREAKING CHANGE: the Tu skin has been removed. The TuLogo component and
the TU_SKIN, getTuSkin, and tuPalette exports are no longer available.
Closes #1597. Part of #626 — Major release plan 17.0.0.
Complete the O2-new cleanup missed in the initial replacement:

- playroom/themes.tsx: rename O2_New/O2_New_iOS to O2/O2_iOS so the
  Playroom O2 theme resolves (fixes the TypeScript build).
- audit-accessibility: audit the O2 skin instead of the removed O2-new.
- generate-design-tokens and import-mistica-icons: drop the stale
  o2-new entries so regeneration does not recreate the deleted files.
- docs: point to getO2Skin/o2Palette and a single o2 skin row.
Closes #1617. Part of #626 — Major release plan 17.0.0.
The Movistar-new skin no longer exists after its promotion to the
canonical Movistar skin, so its committed image snapshots are obsolete.
Regeneration does not delete obsolete image files, so remove them here.
These tests were pinned to the legacy Movistar skin because they were
unstable on Movistar-new. Since Movistar now is the former Movistar-new,
the warning still applies; reword it instead of dropping it.
…ng issue

Replace the free-text TODO comments with the `// todo <link> <description>`
pattern, pointing at the tracking issue for the screenshot instability.
The O2-new skin was removed from all acceptance test parametrizations
when O2-new replaced O2. These snapshot images are no longer generated
and are removed as obsolete output.
Removes the deprecated data-component-name attribute across all components.
getPrefixedDataAttributes now emits only data-testid, and the three hardcoded
data-component-name attributes (BurgerMenuIcon, NavigationBarActionGroup,
Dialog) are replaced; the duplicate on FixedFooter is dropped.

Ref: #1598
Removes deprecated APIs as part of the 17.0.0 breaking changes (#1599).

Props removed:

- Spinner `rolePresentation` (use `aria-hidden`)
- Theme `enableTabFocus` (use the browser `:focus-visible` behavior; the
  internal TabFocus mechanism is dropped)
- NavigationBar `paddingX` (use `wide`)
- RowList/BoxedRowList `ariaLabelledby` (use `aria-labelledby`)
- Sheet item `Icon` (use `url`)
- `isInverse` across Boxed, DataCard, CoverCard, MediaCard, BoxedRow,
  ResponsiveLayout, LoadingScreen, BoxedAccordionItem, FeedbackScreen,
  HeaderLayout, MainSectionHeaderLayout and ThemeVariant (use
  `variant="brand"`)
- Card aliases: `button`, `actions`, `media`, `poster`, `imageUrl`,
  `backgroundImage`, `backgroundVideo`, `backgroundVideoRef`,
  `secondaryButton`

Hooks removed: `useIsInverseVariant`, `useIsInverseOrMediaVariant`.

Components removed: `HighlightedCard`, `PosterCard`, `SnapCard`,
`DisplayDataCard`, `DisplayMediaCard`, `SmallNakedCard`.

Sheet public exports removed: `ActionsSheet`, `InfoSheet`,
`ActionsListSheet`, `RadioListSheet` (kept internally for `showSheet`).

Stories, playroom snippets, type tests and unit tests are updated to the
replacement APIs. Obsolete tests, stories and orphaned screenshot
baselines are removed. The `extra` to `slot` migration and the
`legacyDisplay` token are intentionally left for their dedicated branches.
Removes legacyDisplay from the five skins where its value is identical
to the container token (Vivo, Vivo Evolution, O2, Movistar, esimflag).

Telefonica, Blau, defaults, and the two consumers (empty-state.css.ts,
feedback.tsx) are left untouched pending design alignment.
Copilot AI review requested due to automatic review settings July 2, 2026 19:13
@brtbrt
brtbrt requested a review from a team as a code owner July 2, 2026 19:13
@brtbrt brtbrt added the AI AI Generated label Jul 2, 2026
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

Size stats

master this branch diff
Total JS 15.8 MB 15.8 MB -360 B
JS without icons 1.92 MB 1.92 MB -360 B
Lib overhead 95.2 kB 95.1 kB -82 B
Lib overhead (gzip) 20.8 kB 20.8 kB -24 B

@brtbrt brtbrt self-assigned this Jul 2, 2026
@brtbrt brtbrt changed the title feat(skin)!: remove legacyDisplay border radius token feat(skin): remove legacyDisplay border radius token Jul 7, 2026
brtbrt and others added 7 commits July 7, 2026 14:19
The __ssr_pages__ card and carousel test pages import from the built
package root, so the stale local dist masked the removal of the
deprecated MediaCard/DataCard aliases. Migrate them to the replacement
API: media -> imageSrc + mediaAspectRatio, button -> buttonPrimary.
The image loading fallback (opacity:0 → 1 + skeleton removal) triggers
a resize observation on the carousel container during hydration, causing
it to recalculate scroll positions and scroll to a non-zero offset on
desktop. The carousel SSR test covers the carousel's hydration behaviour,
not image loading, so removing the image is the correct fix — mirroring
the approach taken in b8c6bde which set loadingFallback={false} on the
now-deprecated media prop.
Restores image in the carousel SSR test page. The previous fix removed
the image entirely to avoid a hydration mismatch caused by the loading
skeleton's removal triggering the carousel's ResizeObserver. The proper
fix is to expose imageLoadingFallback on MediaCard (following the image*
prop naming convention) so callers can pass false and get the same
behaviour as the old media={<Image loadingFallback={false} />} pattern.
…d-props' into mbertamini/1600-remove-border-radius-token
Comment thread packages/generate-design-tokens/index.js
brtbrt added 2 commits July 14, 2026 20:23
# Conflicts:
#	doc/llms/llms.md
#	playroom/components/index.tsx
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-movistar-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-movistar-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-movistar-alternative-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-movistar-alternative-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-movistar-dark-mode-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-movistar-dark-mode-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-movistar-inverse-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-movistar-inverse-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-movistar-inverse-and-dark-mode-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-movistar-inverse-and-dark-mode-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-4-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-alternative-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-alternative-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-alternative-4-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-dark-mode-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-dark-mode-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-inverse-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-inverse-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-inverse-and-dark-mode-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-o-2-inverse-and-dark-mode-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-vivo-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-vivo-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-vivo-alternative-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-vivo-alternative-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-vivo-dark-mode-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-vivo-dark-mode-3-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-vivo-inverse-2-snap.png
#	src/__screenshot_tests__/__image_snapshots__/private-skin-components-screenshot-test-tsx-components-in-vivo-inverse-and-dark-mode-2-snap.png
#	src/__screenshot_tests__/counter-screenshot-test.tsx
#	src/skins/o2.tsx
#	src/skins/vivo.tsx
#	src/test-utils/index.tsx
#	src/utils/dom.tsx
@brtbrt
brtbrt changed the base branch from mbertamini/1599-remove-deprecated-props to master July 15, 2026 14:59
@Telefonica Telefonica deleted a comment from github-actions Bot Jul 15, 2026
Remove legacyDisplay property from borderRadii config in o2 and vivo skins.
This property is no longer part of the BorderRadiiConfig type as part of
the border radius token removal work.

Fixes TypeScript errors:
- src/skins/o2.tsx:640
- src/skins/vivo.tsx:630
@brtbrt
brtbrt added this pull request to the merge queue Jul 15, 2026
Merged via the queue into master with commit 2282d4d Jul 15, 2026
12 checks passed
@tuentisre

Copy link
Copy Markdown
Collaborator

🎉 This PR is included in version 16.72.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@tuentisre

Copy link
Copy Markdown
Collaborator

🎉 This PR is included in version 17.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

MurilloLeoni pushed a commit to MurilloLeoni/mistica-web that referenced this pull request Jul 16, 2026
# [17.0.0](Telefonica/mistica-web@v16.71.0...v17.0.0) (2026-07-15)

### chore

* **guide:** update migration guide ([Telefonica#1652](Telefonica#1652)) ([ac8e28d](Telefonica@ac8e28d))

### Features

* **Chore:** remove deprecated props, hooks and components ([Telefonica#1625](Telefonica#1625)) ([d021fc3](Telefonica@d021fc3)), closes [Telefonica#1599](Telefonica#1599) [Telefonica#626](Telefonica#626) [Telefonica#1602](Telefonica#1602) [Telefonica#1600](Telefonica#1600) [Telefonica#1598](Telefonica#1598) [Telefonica#1598](Telefonica#1598) [Telefonica#626](Telefonica#626)
* **skin:** remove legacyDisplay border radius token ([Telefonica#1626](Telefonica#1626)) ([2282d4d](Telefonica@2282d4d)), closes [Telefonica#1600](Telefonica#1600) [Telefonica#626](Telefonica#626) [Telefonica#1599](Telefonica#1599) [Telefonica#1599](Telefonica#1599) [Telefonica#626](Telefonica#626)
* **skin:** remove Tu skin ([Telefonica#1609](Telefonica#1609)) ([3dde4bf](Telefonica@3dde4bf)), closes [Telefonica#1596](Telefonica#1596) [Telefonica#626](Telefonica#626) [Telefonica#1608](Telefonica#1608) [Telefonica#1608](Telefonica#1608) [Telefonica#1608](Telefonica#1608) [Telefonica#626](Telefonica#626)
* **skin:** replace vivo-new  with vivo, and add vivo-evolution ([Telefonica#1608](Telefonica#1608)) ([cd459b5](Telefonica@cd459b5)), closes [Telefonica#1595](Telefonica#1595) [Telefonica#626](Telefonica#626) [Telefonica#1609](Telefonica#1609) [Telefonica#626](Telefonica#626)

### BREAKING CHANGES

* **guide:** list all the migration changes to ease migration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI AI Generated released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Remove legacyDisplay border radius token and replace to container

4 participants