Release notes
This page summarises releases for @sky-uk/ui-core. Releases are grouped by major version and
listed newest first, with breaking changes highlighted at the start of each major version.
Use @sky-uk/ui-codemods for major-version upgrades. Changes it cannot automate are marked
Manual update required.
Find out more about Sky UI codemods.
v13
Breaking changes: v12 to v13
Codemod preset: v12-to-v13/all-breaking-changes.
- Removed
$trimand$themefrom components that no longer support branded treatments, includingCard,Carousel,Carousel.Slide,InfoCard,Signpost, andTabs.Tab. products.glass→surfaces.bluefor the renamed colour token.- Manual update required: Removed colour tokens
products.tv,products.mobile, andproducts.broadband, including.regularand.darkforms. Choose supported replacements. - Manual update required: Removed gradients
environmental,primary,sky.accessible,products.broadband,products.glass,products.mobile,products.protect, andproducts.tv, including.regularand.accessibleforms where previously supported. Choose supported replacements; broadband tier gradientsproducts.broadband-essential,products.broadband-superfast, andproducts.broadband-ultrafastremain available. Theproducts.glass→surfaces.bluerename applies only to colours. For both token removals, check helpers, system props, styles, and configuration: removed keys can returnnulleven when TypeScript passes. - Manual update required: From v13.0.0,
Modal.onClosereceivesReact.MouseEvent | React.KeyboardEvent. Update native DOM event annotations and native-only event usage. - Manual update required: From v13.1.0,
Modal.Contentno longer exposes the full styleddivAPI. Move DOM attributes and handlers to an inner element; useModal.stopEventPropagationwhere appropriate and verify click behaviour. - Manual update required: From v13.2.0,
ButtonusesforwardRefwith explicitButtonProps. Check customascomponents and refs against the target types, preserving client-side routing. showIndicator→$hideIndicator(with inverse boolean values) on standaloneRadioCardandControlField.Optionwhen rendered as aRadioCard.- Removed
$displayPaginationfromTable; pagination is now managed internally. - Removed
$colorGradientfromText; gradient typography is no longer supported. - Manual update required:
useTranslationstypes are restricted to supported translation keys. Rebuild TypeScript and fix callers that previously passed undeclared keys. - Manual update required:
hasSuffixwas removed from theTypographyStylereturn type in v13.0.2. Remove consumer type logic that reads this property.
v13.3.0
21 August 2026 · GitHub release notes
Features
- Added an optional
ctaobject toProductCard.Legals, with link text, click handling, and an accessible label. Use it to open expanded legal content or link to a Legal Accordion.
v13.2.0
18 June 2026 · GitHub release notes
Features
- Added React Server Component support to
Button,IconButton, andInfoCard. - Added an optional thumbnail to
Accordion.
Updates
- Updated
ProductCardthumbnail layout. - Updated the
display-5line height and moved all packages to styled-components 6.4.1. - Installation prerequisite: Core v13.2.0 requires
styled-components >= 6.4. If upgrading that dependency too, check consumer types and tests against both updates before completing the migration.
Bug fixes
- Corrected
RadioCard'sonChangehandling.
v13.1.1
11 May 2026 · GitHub release notes
Updates
- Updated Core to the latest UI Tokens release.
Accessibility
- Form validation now uses
role="alert"so screen readers prioritise validation messages. - Updated
ProgressTrackerandSkeletonLoadercolours to meet minimum contrast requirements.
v13.1.0
31 March 2026 · GitHub release notes
Features
- Added
useDragToScrollfor drag-scrolling interfaces such asRail. - Added
$selectabletoCard, allowing uncontrolled interactive content such asRadioCardwithout requiringhreforonClick.
Updates
- Added a thin styled scrollbar to overflowing
Tabs. - Jest environments without
CSS.supportsneed a test-setup polyfill when exercisinguseDocumentScrollLock.
Bug fixes
- Fixed falsy values being dropped by
useResponsivePropsand Safari issues inuseDocumentScrollLock.
v13.0.2
26 February 2026 · GitHub release notes
Updates
- Reduced the width of the
Tabsscrollbar.
Bug fixes
- Fixed
Popoverremaining open when focus moved to another element. - Fixed
Markdownformatting when content contains newline characters. - Removed
hasSuffixfromTypographyStyleto resolve styled-components TypeScript errors.
v13.0.1
5 February 2026 · GitHub release notes
Updates
- Applied 62.5% opacity to disabled
Cardcontent while removing the duplicate opacity effect from theRadioCardindicator. - Removed the opacity treatment from read-only
Card.
Bug fixes
- Fixed
ComparisonTablepagination on mobile and a layout shift inText.
v13.0.0
16 January 2026 · GitHub release notes
Features
- Added the Sky Headline font through
Text'sheadlinevariant and thetypographyhelper; removed gradient typography. - Added
moveNext,movePrevious,moveTo, andsnapTocontrols toCarousel, plus custom thumbnailaria-labelsupport inProductGallery. - Added
forwardReftoVideoOnIntersection.
Updates
- Delivered the Sky rebrand: removed the primary
Buttonsheen/glass effect, removed branded$trimand$themetreatments, and renamedproducts.glasstosurfaces.blue. - Updated
RadioCardindicator, disabled, and error-state APIs and removedTable's$displayPaginationprop. - Migrated
ProductCardto TypeScript and standardised test IDs ondata-test-id.
Bug fixes
- Restored missing
data-skyui-coreattributes. - Aligned
Modal'sonClickandonCloseevent handling.
v12
Breaking changes: v11 to v12
Codemod preset: v11-to-v12/all-breaking-changes.
- Manual update required:
ComparisonTablewas rebuilt. Every table requires a unique$tableId, and$columnsInViewmust providexs,sm,md,lg,xl, andxxlvalues.Table.Groupno longer acceptstitle; place the title inTable.GroupHeaderand wrap its rows inTable.GroupContent. - Deprecated
@sky-uk/ui-animationand@sky-uk/ui-animation-framer. MoveVideoOnIntersection,useIntersectionProgress,useIntersection,useIsomorphicLayoutEffect,useReducedMotion,useStaticContent,useVideoIntersection, anduseKeyboardUserinto the existing@sky-uk/ui-coreimport.Parallaxremains in the animation package. Manual update required: Migrate imports from@sky-uk/ui-animation. - Removed
$themefromHighlight. - Replaced
react-input-maskwith@react-input/mask. Update mask characters froma,9, and*to@,#, and_, and add the correspondingreplacementpatterns toTextInputandField.Control. Manual update required: From v12.0.1, stricter input types may require consumer fixes:statemust be'error' | 'confirmed' | undefined,aria-invalidmust use a valid ARIA value (not an empty string), andvaluemust satisfy React's input value type. Preserve controlled/uncontrolled behaviour when adjusting values. Tabs.onTabClick→Tabs.onTabChange. The callback now runs for both pointer and keyboard navigation.- Removed
flex-parentsystem props fromRadioCard, including flex direction, wrapping, alignment, and gap props. Manual update required: Move any required layout styles to a wrapper. primary.light→interaction.focusfor the renamed colour token.
v12.2.1
29 December 2025 · GitHub release notes
Features
- Added responsive
srcsupport toVideoandVideoOnIntersection.
Bug fixes
- Restored the missing
margin,flex-child, andgrid-childsystem props onTag. - Fixed
Modalexpanding the document body and repeatedly triggeringIntersectionObserver. - Fixed the
DealCardbackground beneathBestsellerandComparisonTablemultiline row-header backgrounds andlgbreakpoint overlap.
Accessibility
- Improved screen-reader feedback on the
ComparisonTable“Show more” control.
v12.2.0
6 November 2025 · GitHub release notes
Features
- Added an optional
asprop toMarkdownfor selecting its wrapper element.
Updates
- Converted
Railto TypeScript and allowedInfoCardlist items to use variable widths. - Changed the
ProductCardoffer colour fromattentiontoattention.dark.
Bug fixes
- Fixed
ComparisonTablesnapshots when$hideRowHeadersis used and restored the missing sticky header keyline.
v12.1.1
16 October 2025 · GitHub release notes
Features
- Added and exported
useDocumentScrollLockto prevent document scrolling on iOS;Modalnow uses it to fix background-body scrolling.
Updates
- Updated the
DealCardsubgrid so titles and thumbnails align across cards, and updated its countdown timer.
v12.1.0
10 October 2025 · GitHub release notes
Features
- Ported
InputGroupfrom@sky-uk/ui-conceptsinto Core. - Added
InlineAlertas anInfoCardchild and label support toSwitch. - Exposed animation hooks formerly provided by
ui-animationfrom Core.
Bug fixes
- Fixed
Accordioncleanup behaviour.
v12.0.3
18 September 2025 · GitHub release notes
Bug fixes
- Fixed content overlap when
Table.GroupContentis expanded. - Corrected invalid
InlineAlertvariant names.
v12.0.2
10 September 2025 · GitHub release notes
Bug fixes
- Restored the
scrollendpolyfill after tree-shaking incorrectly removed it from builds. The polyfill is required by Safari and all WebKit browsers on iOS.
v12.0.1
5 September 2025 · GitHub release notes
Features
- Added
ProductCardinline price content andSwitch.$defaultChecked.
Updates
- Reworked
ComparisonTablestructure, identity, responsive column counts, and pagination to improve accessibility and prevent layout shift. - Moved commonly used animation hooks and
VideoOnIntersectioninto Core and deprecated the two animation packages. - Removed obsolete
HighlightandRadioCardprops, updated UI Token keys, replaced the input-mask implementation, and renamed theTabscallback. - Refreshed
Blockquoteand thecinema.darkgradient.
Bug fixes
- Restored inherited
Markdownfont sizes.
v11
Breaking changes: v10 to v11
Codemod preset: v10-to-v11/all-breaking-changes.
Price.$inline→Price.$inlinePrefix; use$inlineSuffixwhen only the suffix should remain inline.- Moved
Rail$themeand$appearancefromRail.Headingto the top-levelRail; pagination now inherits$appearance.Rail.Heading.$alignment→Rail.Heading.$textAlign. - Manual update required:
Tabsno longer generates an ID withuseId. Give every instance a unique, stableid. - Manual update required:
Highlightsupports one accessible colour variant from v11.3.0. Remove$appearanceand$themeusage.
v11.8.1
19 August 2025 · GitHub release notes
Features
- Made
Price.$size,$inlinePrefix, and$inlineSuffixresponsive. - Allowed
FieldusingInputGroupto receive aLoadingSpinnerand added custom element support to message props.
Bug fixes
- Fixed
Accordionsystem-prop types, theProductGalleryaccessible label, and breakpoints inFeature,Notification,Tabs, andToast.
Accessibility
Markdownimages now default to an empty alt attribute when none is supplied.
v11.8.0
9 July 2025 · GitHub release notes
Features
- Added the
DealCardcomponent.
Updates
- Made
InlineAlertresponsive and added responsive$sizesupport toRail.
Bug fixes
- Fixed
ProductGalleryscrolling the page to its track during navigation.
Accessibility
- Added
$scrollableRegionTabIndextoCarouselandProductGalleryand aligned the existingRailandTableimplementations.
v11.7.1
23 June 2025 · GitHub release notes
Bug fixes
- Restored compatibility for applications using styled-components newer than v5 after a regression in v11.7.0.
v11.7.0
20 June 2025 · GitHub release notes
Features
- Added
InlineAlert.
Updates
- Migrated Core's package build from Rollup to Vite, updated the mobile
Accordionfont size todisplay-7, and allowed consumers to configureRail'stabIndex.
Bug fixes
- Fixed the
Popover.$popoverWidthtype and changed theMarkdownwrapper from a fragment to adiv, allowing data attributes to be applied.
Accessibility
- Added reduced-motion support to
ToastandNotification; replaced theAccordiontransition with a keyframe animation to improve SEO performance.
v11.6.1
6 June 2025 · GitHub release notes
Features
- Added
$inlinePrefixand$inlineSuffixsupport toProductCardpricing.
Bug fixes
- Fixed
InputGroupcomposition insideFieldand madeMarkdownrespect inherited$fontSize.
v11.6.0
22 May 2025 · GitHub release notes
Features
- Added
Rail.moveNextandmovePrevious,Tabs.onTabChange, and Sky UI focus rings forTabsandRail.
Updates
- Replaced Carousel's Framer dependency with native scrolling and CSS animations and moved layout decisions to container queries with media-query fallbacks.
Bug fixes
- Updated disabled
Buttonstyles and fixedRadioInput,ProductGallery,RadioCard,Tabs, and the stickyComparisonTableheader.
v11.5.0
29 April 2025 · GitHub release notes
Features
- Allowed the Concepts
InputGroupto be used insideField. - Added
flex-child,grid-child, andmarginsystem props toTag.
Bug fixes
- Improved
Pricesuffix wrapping, removed theLegacyTabswarning, exposed Carousel navigation to assistive technology, aligned theTabsfocus ring, and stoppedModalfrom resetting focus on every re-render.
v11.4.3
9 April 2025 · GitHub release notes
Features
- Added
$bgImage,$bgPosition,$bgSize,$bgAttachment,$bgRepeat,$bgClip,$bgOrigin, and$bgBlendModesystem props.
Bug fixes
- Fixed
Accordionfocus clipping, duplicateRadioCard.onClickcalls, and controlledSwitch.$checked; added pricing-prefix support toProductCard.
Accessibility
- Increased focus-ring visibility by changing its colour and stroke width.
v11.4.1
28 March 2025 · GitHub release notes
Bug fixes
- Stopped
Tabs.onTabClickfiring on initial render. - Prevented closed Firefox
Accordioncontent from remaining tabbable and fixed opening when reduced motion is enabled.
Accessibility
- Prevented disabled
RadioCardclicks and improved screen-reader navigation of partially visibleRail.Itemcontent.
v11.4.0
14 March 2025 · GitHub release notes
Features
- Added
ProductGalleryandSkeletonLoader.
Accessibility
- Added an accessible status to
LoadingSpinner, defaulting to “Loading”.
v11.3.0
6 March 2025 · GitHub release notes
Features
- Added
Swatch.$outline;$unavailablenow takes precedence over$selected.
Accessibility
- Added
cinema.accessibleand updated accessible gradients to meet APCA contrast requirements. - Reduced
Highlightto one accessible colour variant usingattention.dark. - Restricted
Text.$colorGradienttodisplay-5and larger text.
v11.2.1
24 February 2025 · GitHub release notes
Bug fixes
- Fixed a v11.2.0 regression that prevented
useResponsivePropsfallback attributes from working.
v11.2.0
19 February 2025 · GitHub release notes
Features
- Introduced the pre-release, Style Dictionary-based UI Tokens package with CSS, Sass, JavaScript, TypeScript, and Core-specific outputs.
Accessibility
- Improved semantics for interactive
Swatch, indicators,LoadingSpinner,Switch, andControlField;Accordion.Headingnow defaults toh3. - Required
Accordion.id, addedhidden="until-found", and fixed responsive props, Rail keyboard scrolling, Modal focus trapping, and Notification alignment.
v11.1.4
6 February 2025 · GitHub release notes
Bug fixes
- Fixed an incorrect dependency in
Popover'suseMemocall.
v11.1.3
29 January 2025 · GitHub release notes
Updates
- Replaced internal
useLayoutEffectcalls withuseIsomorphicLayoutEffect.
Bug fixes
- Replaced
ControlField.Optionmargin with layout gap and supplied a defaultControlField.Layoutwhen consumers omit one.
Accessibility
- Ensured keyboard and assistive-technology navigation fully reveals partially visible
Rail.Itemcontent.
v11.1.1
13 January 2025 · GitHub release notes
Features
- Added the NOW gradient and the grid-column/row start and end system props.
Bug fixes
- Added
Popover.$popoverWidth, corrected content placement and pointer alignment, and replaced manualAccordionheights with grid animation.
Accessibility
- Improved
Breadcrumbsfocus, button rendering, current-item behavior, and scrolling.
v11.1.0
11 December 2024 · GitHub release notes
Features
- Added the non-interactive
Tagstatus/category component and the flexibleInfoCardinformation pattern.
Updates
- Replaced Framer in
ToastandNotificationwith CSS animations while preserving timing and easing.
Bug fixes
- Widened
Swatch.$gradientto accept any gradient string and stoppedInputFieldrendering an empty, spaced message node.
v11.0.1
14 November 2024 · GitHub release notes
Bug fixes
- Fixed
Modal.stopPropagationso events propagate as expected and corrected initialComparisonTablerendering when row headers are hidden with two columns. - Clamped
Image.$focalPointvalues to the supported 0–24 range.
v11.0.0
5 November 2024 · GitHub release notes
Features
- Added
Containerpadding props and moved Rail theme/appearance configuration toRail.
Updates
- Reworked
PriceandHeadlinePricealignment and offer colours; added gradient themes toHeadlinePriceand the light appearance to primaryButton. - Removed generated Tabs IDs and fixed responsive fill styling.
Bug fixes
- Fixed focus clipping and initial layout shift in
AccordionandCarousel, event leakage fromModal, duplicateRadioCardclicks, Rail heading alignment, and missingResizeObserverin Jest environments.
v10
Breaking changes: v9 to v10
Codemod preset: v9-to-v10/all-breaking-changes.
- Rebuilt
Tabswith new styles and behavior. Rename existingTabsimports, components, and subcomponents toLegacyTabsto preserve the old implementation while adopting the new API. Table.isComparisonTable→Table.$comparisonTableandTable.$trim→Table.$theme. The$columnFillsand$comparisonTableprops cannot be combined and now produce a usage warning.- Focus mixin
$appearance="primary"→$appearance="default".
v10.0.0
19 September 2024 · GitHub release notes
Features
- Introduced the rebuilt
Tabscomponent and retained the previous implementation asLegacyTabs. - Added
$columnFills, table-wide$hideRowHeaders, per-row$hideHeader, and$keyLinestoComparisonTable.
Updates
- Made
$columnFillsand$comparisonTablemutually exclusive, renamed legacy comparison-table props, and fixed itsResizeObserverbehavior.
v9
Breaking changes: v8 to v9
Codemod preset: v8-to-v9/all-breaking-changes.
- Normalised component props around three concepts:
$appearancefor default/light presentation,$themefor brand treatment, and$variantfor structural hierarchy:Breadcrumbs.$appearance="primary"→"default".Button.$appearancevalues move to$variant;secondary-lightandtertiary-lightsplit into the matching$variantplus$appearance="light".Card.$appearance→Card.$theme.Carousel.Scrim.$backgroundandScrim.$background→$backgroundColor.Highlight.$appearance→Highlight.$theme, and$location→$placement.IconButton.$appearancemoves to$variant; light values split into$variantand$appearance="light".Notification.$appearance→Notification.$variant;Popover.$location→Popover.$placement.Tabs.Tab.$activeGradient→Tabs.Tab.$theme.IconList.$color="white"→$appearance="light"; other colours →$appearance="default".
v9.2.0
18 September 2024 · GitHub release notes
Updates
- Improved
applyModifierPropsperformance and added an alternate pagination position toRail.
Accessibility
- Aligned the
Modalclose-button position with Figma and addedrole="region"toAccordion.Content.
v9.1.1
3 September 2024 · GitHub release notes
Bug fixes
- Stopped
Carouselfrom blocking unrelated touch gestures on the page.
Accessibility
- Ensured
Accordionhas the correctaria-expandedvalue on first render.
v9.1.0
21 August 2024 · GitHub release notes
Features
- Added
InputWrappersupport toField.Control.
Bug fixes
- Normalised non-numeric
Rail.$itemWidthvalues before scroll calculations. - Restored responsive
$appearanceand$variantsupport onButton.
Accessibility
- Removed unexpected whitespace in vertically stacked
Priceand improved accessible text inPriceandHeadlinePrice.
v9.0.0
25 July 2024 · GitHub release notes
Features
- Added
data-skyui-corecomponent/version metadata for usage analysis, analytics, and future error reporting. - Added Sky Cinema DE and Sky Sports DE colours plus Bundesliga accessible, Cinema, and Kids accessible gradients.
Updates
- Standardised
$appearance,$theme, and$variantsemantics across eleven components and published the v8-to-v9 codemod. - Converted
ProgressTracker,CheckboxButton,RadioButton,Scrim, andCarouselto TypeScript.
Bug fixes
- Fixed dynamic
Accordioncontent clipping, suffixlessPricewhitespace, and smallSwatchrendering on iOS.
v8
Breaking changes: v7 to v8
Codemod preset: None — manual migration required.
- Manual update required:
Accordionnow encapsulates expanded/collapsed behavior for animation and SEO. Pass the controlled$isOpenboolean toAccordionand keepAccordion.Contentmounted instead of conditionally rendering it.
v8.3.1
25 July 2024 · GitHub release notes
Bug fixes
- Fixed open
Accordioncontent being clipped after browser resizing or dynamic content changes. - Removed extra
Pricewhitespace when$inlineis used without a suffix. - Fixed distorted small
Swatchcontrols caused by default iOS button padding.
v8.3.0
11 July 2024 · GitHub release notes
Features
- Added the flexible
Railcomponent for horizontally presenting related visual content, with usage distinct fromCarousel.
v8.2.0
20 June 2024 · GitHub release notes
Features
- Added the
ProductCardconsumable pattern. - Added
Accordion.onOpenandonClosecallbacks and exported component prop types.
Updates
- Updated
markdown-to-jsxto 7.4.7 for better HTML-element performance.
Bug fixes
- Corrected default state in
ControlFieldandCheckboxand fixedAccordiontypes.
v8.1.0
17 June 2024 · GitHub release notes
Updates
- Converted
Blockquote,HeadlinePrice,Modal,Price,Tabs, anduseResponsivePropsto TypeScript. The public behavior was intended to remain stable, but stricter declarations can expose invalid consumer props during builds.
v8.0.0
29 May 2024 · GitHub release notes
Features
- Added the first consumable UI patterns:
Feature,FeatureList, andSignpost.
Updates
- Rebuilt
Accordionaround the$isOpenprop so content remains mounted for transitions and SEO. - Converted
Accordion,Breadcrumbs, form controls, overlays, feedback components, media components, and common hooks to TypeScript.
Bug fixes
- Updated
LoadingSpinnerstroke width and fixed responsive values forContainer.$size.