Design
Design library contains the coded Skapa Components.
Version 3.5.0
Mar 31, 2026
Latest Updates
net.ikea.skapa:design:3.5.0
Dual button
Improvement Pressed animation is smoother for Secondary variant.
Button, Icon button, Jumbo button
A11y Removed
LoadingBallnode from Talkback scope since we already have loading semantics in Button node.
Card, Compact Card
Experimental feature Added modifier to media container
Image, aspect ratio is now optional for improved user control.Improvement Re organized input parameters for
MediaContainer.Imagedata class to align with all cards.
Compact Card
Improvement More Title sizes for
CompactCard.Small,Medium, andLargesizes are now available. The new default is Large which maps to the previous deprecated default.Deprecation Title sizes
RegularandXSmallhave been deprecated and replaced withLargeandSmallrespectively.
Inline message
Improvement The buttons now support icons.
Price, Price module
Improvement Migrated
Priceto the new typography system which makes the components compatible with changes inBaseFontSize.
Segmented control
A11y Added pressed animation for visual feedback.
Improvement Reduced horizontal padding for Text variant to align with updates in Figma main component.
Bug fix Background selection mis-aligned when using many items.
Search
Experimental Feature Removed the navigation button from the expanded
TextFieldValueSearch component; navigation is not part of the Search scope and should be handled at the view level.
Simple Video, Card, Compact Card, Text Overlay Card
Improvement Exposed
controlsContentPadding: PaddingValuesonSimpleVideo,MediaContainer.Video,CompactMediaContainer.Video, andTextOverlayMediaContainer.Videoto allow callers to apply safe-area insets to the video controls row in edge-to-edge layouts. Defaults toPaddingValues()preserving existing behaviour.
Text Overlay Card
Bugfix Fixed issue where if text / gradient overlay scaled too large, it would cover the Simple Video controls, and extend beyond the media content.
A11y Keyboard navigation borders were not working as expected.
Experimental feature Added modifier to media container
Image, aspect ratio is now optional for improved user control.Improvement Re organized input parameters for
MediaContainer.Imagedata class to align with all cards.
Toggle
Deprecation The Toggle component has been deprecated in favor of Segmented Control.
net.ikea.skapa:design:3.4.0
Button, Jumbo button, Pill
Improvement Migrated to the new typography system which makes the components compatible with changes in
BaseFontSize. Note: This change affects all components where Buttons and Pills are included.
Card, Compact card
Experimental Feature Removed non-optional aspectRatio modifier from
Custommedia container constructor, and updated the custom container to aBoxinstead of anAspectRatioBox. This will give more control to the user through the exposed modifier.Experimental Feature
aspectRatioparameter forVideomedia container is now optional, introducedmodifierparameter for more niche use-cases.Bugfix Fixed issue where
Simplecard variants footer icon would not mirror in RTL view.
Carousel, Tabs
A11y For accessibility compliance, the navigation buttons,
NavButtonsParams, used in Carousel and Tabs (scrollable) can now be set to "always visible" instead of previously only shown with hover.
Checkbox, Tristate checkbox
New Feature Added support to show components as required with a leading asterisk (*).
Input field, Text area, Dropdown, Select, Checkbox group, Radio button group
New Feature Added support to show components as required with a leading asterisk (*) in top label. Not applicable for Disabled and ReadOnly fields.
Menu item
Improvement Added
Ripplefor pressed state.
Quantity stepper
Improvement Added
valueMultiplierandreadOnlyInputFieldparameters.valueMultiplieris the exposed value at which the value is incremented or decremented by.readOnlyInputFieldlocks the input-field to read-only. D-pad (arrow keys) is still usable to increment or decrement the value.
Segmented control
New Feature Added support for XSmall icon variant.
Bug Fix Updated some paddings and borders to match Figma design better.
Sheet
Improvement Added
SheetDefaultsto provide default values for Sheet.Improvement Updated
contentWindowInsetsdefault to useSheetDefaults.windowInsetsbased on safe drawing window insets.
Text Overlay card
New Feature Added
labelto card. This label is shown above the title.Improvement Addon now moved to top start of card instead of above title.
Improvement Updated the accessibility overlay gradient behind text to improve contrast and readability.
Improvement New title sizes:
Large,Medium,Small.Deprecation Title size
Regularhas been deprecated and replaced withLarge. The defaulttitleSizehas changed fromRegulartoLarge.Experimental Feature Removed non-optional aspectRatio modifier from
Custommedia container constructor, and updated the custom container to aBoxinstead of aAspectRatioBox. This will give more control to the user through the exposed modifier.Experimental Feature
aspectRatioparameter forVideomedia container is now optional, introducedmodifierparameter for more niche use-cases.
Toggle
Bug Fix Hovered border rendered incorrectly in some cases.
net.ikea.skapa:design:3.3.0
Dual button, Tag
Bug Fix
InteractionSourcefor Dual button was handled incorrectly for Focused and Pressed states.
List view item
Improvement Minor interaction improvements.
Price
Improvement Line-wrapping improvement for subscript label.
Price module
Improvement Dual currencies now use the same
PriceSizefor both primary and secondary prices.
Search
Experimental Feature New experimental Search function is available. This variant supports a new extended (full screen) mode and a standard standalone mode.
Bug Fix The new function which uses
TextFieldValuedoes not include the built in top-padding that the old function does. This should make alignment easier in your views.Bug Fix Solves a bug where upscaled font and display could cause the content to shift off center vertically.
Experimental Feature 3 new sizes: small, medium, and large. This aligns with the Skapas figma designs for Search.
Select/Dropdown
Bug Fix Keyboard navigation requires two key presses to open the dropdown menu or when navigating with tab key.
Simple Video
Experimental Change
AspectRatioparameter is now optional and can be set as null if the user requires a custom aspect ratio solution.
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.