Design
Design library contains the coded Skapa Components.
Version 3.2.0
Dec 16, 2025
Latest Updates
net.ikea.skapa:design:3.2.0
Updated dependencies
Badge
New Feature Added Extended color palette colours and Sustainability colour to
BadgeColorenum class.
Carousel
A11y Added hover navigation buttons to navigate between items.
Choice
Experimental Feature Added custom leading and trailing image slots which accept a
@Composablefunction. This is to be used with your ownImageimplementation that requires further business logic than just supplying apainter.
ListView Item
Experimental Feature Added custom leading image slots which accept a
@Composablefunction. This is to be used with your ownImageimplementation that requires further business logic than just supplying apainter.
Pill
Experimental Feature Added custom leading image option which accept a
@Composablefunction. This is to be used with your ownImageimplementation that requires further business logic than just supplying apainter.
Price, Price module
Experimental Feature Added
prefixLabelto component. This can be used to add a "From" label to the price. This is only supported forPriceVariant.Regularaka Standard price.Improvement Line-breaking of Price is now handled better for larger fonts and longer price values.
Tabs
A11y Added hover navigation buttons to navigate between scrollable tab items.
TextOverlayCard
Experimental Feature Added custom image option which accept a
@Composablefunction. This is to be used with your ownImageimplementation that requires further business logic than just supplying apainter.
net.ikea.skapa:design:3.1.0
Updated dependencies
Choice
Improvement Added leading and trailing
Imagesizes. Small, medium, and large. Small is the default.
ListView Item
Improvement Added leading
ImageViewsizes. Small, medium, and large. Small is the default.
Quantity stepper
Breaking change Removed a redundant function. The component function kept just has additional params with default values.
Price
A11y Accessibility improvement for Talkback on Price. Integer value gets cleaned from white-space, commas and dots.
Search
Bug fix UI improvement for longer placeholder texts.
Toggle
A11y Accessibility improvement for Talkback.
net.ikea.skapa:design:3.0.0
Updated dependencies
Accordion
Breaking Change Added support for content padding by splitting
horizontalPaddingintocontentHorizontalPaddingandheaderHorizontalPadding. The old functions are now deprecated withlevel=DeprecationLevel.ERROR.
Aspect Ratio Box
Breaking Change Reordered and combined parameters with proper default values. Now there is only one constructor that handles all cases.
Button
Deprecated
ButtonVariant.PrimaryInverse,ButtonVariant.TertiaryandButtonVariant.SecondaryInversehave been deprecated withlevel=DeprecationLevel.ERROR. UseButtonVariant.Primary.Inverse,ButtonVariant.Secondary.InverseandButtonVariant.Tertiary.Inverseinstead.
Card
Breaking Change Removed
fullScreenParamsandonBackgroundPressparameters from the Video MediaContainer.Breaking Change
CardV2Varianthas been deprecated withlevel=DeprecationLevel.ERRORand replaced withCardVariant. UsereplaceWith()function to migrate.Breaking Change
CardV2TitleSizehas been deprecated withlevel=DeprecationLevel.ERRORand replaced withCardTitleSize. UsereplaceWith()function to migrate.Deprecated The old card constructors have been deprecated with
level=DeprecationLevel.ERROR. Use the new constructors withCardinstead.Improvement Exposed
onBackgroundClickparameter forMediaContainer.Videoto allow handling of background clicks. This should be used to toggle play/pause state of theSimpleVideocomponent. The change is due to a refactor inSimpleVideowhere it no longer manages the playing state internally.Improvement Updated
CardTheme.Sustainabilityto use a new color scheme.Experimental Feature Forced
VideoButtonAlignment.AllTopTrailingbutton alignment for Video MediaContainer.Experimental Feature Video is no longer play or pausable by clicking the video area. Only the exclusive button can be used to play/pause the video.
Bug Fix Fixed issue where arrow icon would not resolve correctly when using RTL layout direction.
Carousel
Deprecated
CarouselVariant.OverflowWithoutIndicatorhas been deprecated withlevel=DeprecationLevel.ERROR. Use theshowIndicatorboolean property inCarouselVariant.Overflowinstead.
Checkbox / Tristate Checkbox
Breaking Change Old constructor with
error: Boolean = falseandhelperText: String? = nullparameters is now deprecated. Use the constructor with simultaneouscaptionandhelperTextErrorLabelinstead.Breaking Change
labelparameter is now of typeStringandAnnotatedString.CharSequenceis now deprecated and will be removed.New Feature
CheckboxGroupItemnow allows forcaptionandhelperTextErrorLabelparameters to be set.
Compact Card
Breaking Change Removed
fullScreenParamsandonBackgroundPressparameters from the Video MediaContainer.Improvement Exposed
onBackgroundClickparameter forMediaContainer.Videoto allow handling of background clicks. This should be used to toggle play/pause state of theSimpleVideocomponent. The change is due to a refactor inSimpleVideowhere it no longer manages the playing state internally.Improvement Updated
CardTheme.Sustainabilityto use a new color scheme.Experimental Feature Forced
VideoButtonAlignment.AllTopTrailingbutton alignment for Video MediaContainer.Experimental Feature Video is no longer play or pausable by clicking the video area. Only the exclusive button can be used to play/pause the video.
Bug Fix Fixed issue where arrow icon would not resolve correctly when using RTL layout direction.
Divider
Deprecated
Dividerconstructor without orientation has been deprecated withlevel=DeprecationLevel.ERROR. Use theDividerconstructor withorientationinstead.
Dropdown / Select / Input Field
Improvement An empty
labelparameter will now not take up any space above the component. However, it is still recommended to always provide a label for accessibility reasons.
Dual Button
Deprecated
DualButtonOrientationhas been deprecated withlevel=DeprecationLevel.ERROR. UseOrientationclass instead.
Icon Button
Deprecated
IconButtonVariant.PrimaryInverse,IconButtonVariant.TertiaryandIconButtonVariant.SecondaryInversehave been deprecated withlevel=DeprecationLevel.ERROR. UseIconButtonVariant.Primary.Inverse,IconButtonVariant.Secondary.InverseandIconButtonVariant.Tertiary.Inverseinstead.
Input Field
Deprecated The older
InputFieldconstructors have been deprecated withlevel=DeprecationLevel.ERROR. Use the new updated constructors instead.Bug Fix Fixed issue where the character counter would not update correctly when pasting text.
Experimental Feature Added public
InputFieldfunction which takesvalue: TextFieldValueandonValueChange: (TextFieldValue) -> Unitas parameters. This allows for more complex text input handling, such as selection, composition, etc.
ModalHeader
Deprecated
ModalHeaderParamshas been deprecated withlevel=DeprecationLevel.ERROR. UseModalHeaderinstead.
Pill
Breaking Change Constructor with no defaults for
badgeValueandtrailingIconIdhas been removed completely. This was due to conflicting with the new constructor that has defaults and each is optional.Breaking Change New constructor has re-ordered parameters.
Deprecated Other old pill constructors have been deprecated with
level=DeprecationLevel.ERROR. Only one public constructor is available now, which has new parameters as optional and with defaults.Bug Fix Fixed issue where longer texts could be clipped.
Price
Breaking Change Function API has been restructured.
modifierparam has been moved.Breaking Change
PriceSizeStyle.SingleSizehas been renamed toPriceSizeStyle.FixedSizefor consistency.Breaking Change
PriceSizeStyleparameter moved to be inside ofPriceVariantfor supported variants.PriceVariant.BTIis now aclassinstead of adata objecthence the requirement to change fromPriceVariant.BTItoPriceVariant.BTI(...).Breaking Change
RegularandComparisonvariants has been updated to usePriceVariantStyle.EmphasisedandPriceVariantStyle.Subtleinstead of boolean parameters for bold and subtle.New Feature Added
PriceVariant.TimeRestrictedOfferto accommodate the new design for time restricted offers.
Price Module
Breaking Change
PriceParamshas been restructured. Order ofcaptionPrefixandcaptionSuffixproperties been moved.captionPrefixis no longer optional and must be provided.Breaking Change
OfferMessagenow hasDefaultas default variant. Uses black color for text except for IKEA Family which uses blue color. Now, all other variants are open and can be combined with allpriceOfferType.Breaking Change Deprecated function using
mergeDescendantsand replaced it withmergeDescendantsStrategy.Improvement
PriceOfferType.TimeRestrictedOfferandPriceOfferType.NewTimeRestrictedOffernow uses Red colour for Price. Applies to bothPriceandPriceModule.New feature Added support for EDS message (Last chance to buy) with a new param
edsMessage. Placed belowofferMessage.
Radio Button
Breaking Change
labelparameter is now of typeStringandAnnotatedString.CharSequenceis now deprecated and will be removed.
Search
Improvement Improved handling of start/end insets.
Segmented Control
Breaking Change Size names updated. Text items now use
XSmall,Small,Mediuminstead Small, Medium, Large. UseSegmentedControlSize.Textenum class instead. Old enum values have been deprecated withlevel=DeprecationLevel.ERROR.Breaking Change Size names updated. Icon items now use
Small,MediuminsteadMedium,Large. UseSegmentedControlSize.Iconenum class instead. Old enum values have been deprecated withlevel=DeprecationLevel.ERROR.Improvement Updated component heights to match new design.
Sheet
Breaking Change Sheet built on top of Material 2 has been deprecated with
level=DeprecationLevel.ERROR. Please migrate to the newSheetwhich is built on top of Material 3.Breaking Change More refactoring of the Sheet internals to even more align to the underlying
ModalBottomSheetfrom Material3 component. Eg. background, shape, drag handle. Exposingpropertiesetc.
Simple Video
Breaking Change Refactored how
isPlayingstate is handled. TheSimpleVideocomponent no longer manages the playing state internally. Instead, it relies on theisPlayingparameter passed from theVideoPlayerButtonParams.PlayButtonParamsclass.Breaking Change
onBackgroundPresshas been replaced withonBackgroundClickto align with our standard naming convention. The default has also been changed to null, so any play / pause behaviour will need to be handled by the user.Breaking Change
VideoButtonAlignment.TopCardOnlyhas been renamed toVideoButtonAlignment.AllTopTrailing.
Tabs
Breaking Change Removed
shadowColorparameter. The end of the tabs will no longer fade out.Breaking Change Replaced
fluid: Boolean = falseparameter withbehaviour: TabsBehaviour. This will make it more explicit how the tabs should behave.TabsBehaviour.Scrollable(contentPadding: PaddingValues)includes the ability to add content edge padding to the scrollable tabs variant.Improvement Replaced
edgePadding: Dp(added in 3.0.0-alpha02) withbehaviourparameter which takes the typeTabsBehaviour.Scrollable(contentPadding: PaddingValues). This change allow the tabs to properly fill the screen in edge-to-edge layouts.
Text Area
Deprecated Constructor with
enabledboolean has been deprecated withlevel=DeprecationLevel.ERROR. Use constructor withenabledState: EnabledStateinstead.Improvement An empty
labelparameter will now not take up any space above the component. However, it is still recommended to always provide a label for accessibility reasons.Bug Fix Fixed issue where the character counter would not update correctly when pasting text.
Experimental Feature Added public
TextAreafunction which takesvalue: TextFieldValueandonValueChange: (TextFieldValue) -> Unitas parameters. This allows for more complex text input handling, such as selection, composition, etc.
TextOverlay Card
Bug Fix Fixed issue where arrow icon would not resolve correctly when using RTL layout direction.
Experimental Feature Added new
TextOverlayMediaContainer.Videowhich supports video as media with predefined visual parameters.
Packages
Skapa Components available for Android.