Package-level declarations
Skapa Components available for Android.
Types
AccordionSize defines the minimum height of the Accordion.
AccordionTextStyle defines the style variant of the Accordion.
ActionIcon is used to chose between three pre defined icons. These icons are used in the MemberCardActionParams and displayed on the icon button.
Used in Price to manage the alignment of currency and decimal value
AvatarSize Enum class which represents the sizing of the Avatar component.
AvatarStyle Enum class which represents the color scheme of the Avatar component.
Sealed class that represents the different display types in AvatarVariant as well as the necessary properties for each type.
Colors for Badge
Variants for Badge.
Pre-defined sizes for Button component
Pre-defined styles for the Button component
The add-on container on top of the title supports Icon, CommercialMessage and Badge. Please note that only one add-on can be made visible.
The footer content of the Card
The size of the title, which can be either large or extra large.
Styled variants for Card
Data class that represent the necessary data to add an close CarouselDismissParams in the component.
Used to adjust the space between items, using a predetermined set of Space tokens
CarouselVariant enum class which defines the variant of the Carousel component.
Character limit counter values.
Data class used for CheckboxGroup
Appearance of the Checkbox
Content interface for Choice.
Content alignment options for leading and trailing content for Choice component.
Data class used for Choice group items.
Image sizes for leading and trailing image content for Choice component.
Leading content for Choice: Icon, Payment Logo, or Image
Sizes for Choice. The sizes affect the minimum height of the component. Keep in mind that the small variant should ideally be used without a caption or larger add-ons. If the content is larger than the container, it will grow accordingly.
Trailing content for Choice: Icon, Image, Text, or Price.
Sizes for Commercial message in combination with Price module.
Types for CommercialMessage
Variants for CommercialMessage
The add-on container in the media container supports CommercialMessage and Badge. Please note that only one add-on can be made visible.
Provides required choice between Image and Video content.
Placement of currency symbol/label. This can change depending on the market.
Space added between the currency and price digits. Appended before or after the currency depending on CurrencyPosition.
Separator for integers and decimals
Data class that represent the necessary data to add an close DismissParams in a component.
Data class for DualButton content.
DualButtonPosition represents the position of the button in the layout. Use this enum to determine which button is which.
DualButtonSize represents the height and width of the individual buttons.
The variant of the DualButton. The variant determines the color scheme of the button.
Variants for Expander
Enum class used for Prompt footer alignment when two buttons are used.
Represents choice between Primary and Secondary button variant for CardFooterContent.
Helper class for Helper text parameters
Helper text states. There are 4 variants that emphasise the state trying to be conveyed.
Pre-defined colours for Hyperlink component.
Pre-defined sizes for IconButton There are 3 sizes available: Medium, Small and XSmall. The default size is Medium.
Pre-defined styles for the IconButton component
Icon parameters for clickable icons used in eg. Input field related components.
Data class representing the parameters for an inline message action.
Data class representing the actions for an InlineMessage.
Pre-defined accentuation for Inline message styling. Chose between Emphasised which has a title and drop shadow or Subtle which is flat.
Pre-defined Inline message variants. There are 4 variants available: Informative, Positive, Cautionary and Negative. Each variant has a different semantic meaning.
Enum class to handle InlineMessage visibility state, changing the state will trigger AnimatedVisibility effect on the component.
Variants for Jumbo buttons
Interface used to determine if item in list is header
Data class that represents a list of items that Implement ListBoxItemHeader interface and is used to separate the items by headers
Image sizes for leading image content for ListViewItem component.
Trailing controls are used to distinguish between Navigation and Action behaviour.
Leading content: Text, Icon, Image, PaymentLogo or Avatar All list view item sizes supports leading content. Please note that Leading image and Medium Payment logos are only supported in Medium and Large list view items. Small list view items also supports a small version of the payment logo container.
ListViewItemSize defines the minimum height of the List View Item container. All list view item variants are available in three different sizes. The height of the container will expand if the text size is increased. Use medium and large list view items for images and double lines of text.
Controls the title text style of the ListViewItem component.
Sizes for LoadingBall component
Color variants for LoadingBall component
Represents the content of the Card.
Data class for handling the action available in MemberCard.
MemberCardClickableItems defines which part of the card is clickable by the user. Default value is MemberCardClickableItems.Icon.
MemberCardCodeType defines which type of code system is to be used and sizes the code container accordingly.
MemberCardOrientation sets the desired orientation variant of the component.
MemberCardProgram defines the visual style, or program to be applied to the IKEA Member Card.
Data class for the styling of the MemberCard.
Leading content: Only Icon for now All menu item sizes supports leading content.
Strategy for merging descendants of the PriceModule. This is used to control how the PriceModule is merged into a single node for accessibility purposes.
Enum class used for Modals footer alignment when two buttons are used.
The different types of headers and data used for a ModalsHeaderVariant.
A ModalHeaderAction is represented as an IconButton added to the header component
Class that represents the necessary data to build a ModalsActionFooter
Header variants as enums to simplify mapping between ´variants´ of modal headers and the the actual ´content´ of the headers. Used together with Sheet ViewModel.
Data class that represents the necessary data to add navigation buttons in the component.
Button variant for the navigation buttons.
Offer message to highlight an offer for the product.
Variants for Offer message to use different colors.
Payment Logo parameters for trailing payment logo used in Input field component.
PaymentLogoSize defines the overall size of the Payment Logo container.
Data class used for PillGroup
State of the PillGroup component. It determines if the group is either PillGroupState.Expanded or PillGroupState.Collapsed
LeadingItem for Pill component
Set of sizes for PriceModule component in the PriceModuleVariant.List variant.
Set of sizes for PriceModule component in the PriceModuleVariant.Regular variant.
Sealed class representing the different variants of the Price Module component.
Represents the Price offer type for the product.
Price params used to match Price
Pre-defined styles for the Button component. There are three styles available: Regular, Comparison, BTI and TimeRestrictedOffer. Each style has its own unique characteristics.
Style variant for PriceVariant.Regular and PriceVariant.Comparison.
Styles for ProductIdentifier
Data class used for Prompt primaryAction & secondaryAction
The QuantityStepperActions class actions that will be triggered in response to users triggering an input action on the QuantityStepper component. This can be used together with the default onValueChange param.
QuantityStepperSize defines the overall size of the Quantity Stepper component.
Styles for RadioButton
Data class used for RadioButtonGroup
Rating size enum class.
Search component trailing action items which are rendered as icon buttons. Use a max of 2 action items.
SearchSize defines the size (height) of the search component.
Second currency price for Dual currencies. This option is provide due some legal requirements in some markets.
The 2 size variants for the Segmented Control items. Text items have 3 sizes and Icon items have 2 sizes.
The visual styling of the Segmented Control. Allow users to switch between two visualisation modes without changing content.
Select interaction params
Style for Choice Two different selection styles allow fine grained control of visual hierarchy: Emphasised and Subtle.
Class that controls the aspects related with the Select items
Params for Shop all button. Uses a ButtonVariant.ImageOverlay when rendered.
Data class to be used for the background image used together with ShoppableImage.
Shoppable image item data class. This is is used together with the ShoppableImage component to display products or other information on top of an image.
Set of aspect ratios defined by Skapa.
This Object provides the necessary properties to build an Skapa Image component
Example of usage
Position of the status dot when if used with label
Sizes for Status component
Symbols for Status component
Styles for Status component
Appearance of the Switch
TabsBehaviour is used to define the behaviour of the tabs.
TabVariant is used to define the style of the tabs.
Represents the type of commercial message that can be displayed on the Text Overlay Card.
Represents the media container for the Text Overlay Card. Currently, it supports only Image, but soon it will be a Video option as well.
Represents the size of the title text in the Text Overlay Card. It can be either Regular or Small.
Data class for Toggle content. There are two types of content: ToggleItem.Text and ToggleItem.Icon.
VideoButtonAlignment represents the alignment of the buttons in the video player. It is used to determine where the buttons should be placed in relation to the video player.
VideoPlayerButtonParams represents the parameters for the buttons in the video player. It is a sealed class that contains different data classes for each button type.
Functions
Accordion component is usually used as a list of headers that hide or reveal additional content when selected.
A wrap box container for presenting visual media, in Skapa standardised aspect ratios
Example of usage
Avatar is a visual representation of a user profile either by image, icon or text.
Badge is a non-interactable component for informational purposes.
Button component is a control used to perform actions when triggered. It's built on top of androidx.compose.material.Button and comes with predefined appearance based on Skapa design and guidelines.
Calculates the horizontal offset for the label based on the slider's value and range.
Card is a component that displays grouped content and actions on a single topic. It provides an entry point to more detailed information.
Carousel is a container used to horizontally slide or cycle through content placed inside of it. This Implementation does not have a counter badge on display.
Carousel is a container used to horizontally slide or cycle through content placed inside of it. This Implementation has a counter badge on display and is accessed through the counterBadgeFormatter property, if you choose CarouselVariant.Overflow the counter will no be shown.
Checkbox component is a control that toggles between checked and unchecked as its default states. Used to choose one or more options from a limited number of options.
This is the grouped Composable function for Choice.
This is the stand-alone Choice Composable, with this power comes great responsibility. This is only to be used if the list layout variant we provide isn't enough, and a custom layout is needed. Please follow guidelines available on Choice info and guidelines
Commercial Message component is a badge that adorns range products with an IKEA sales steering category. It is built on top of androidx.compose.material3.Text and comes with pre-defined appearance based on Skapa design and guidelines.
Compact Card is a component that displays simple content and an entry point to other pages for more detailed information.
Divider is a thin grey keyline that help create subsections of content.
Dual button is a group of two buttons with binary actions.
Expander component allows user to reveals and hide extra content.
Helper Text is a validation component designed to help out and provide guidance to form elements. This component consists only of an icon indicator and a label and it should be used together with other components.
Hyperlink A text component that is able to handle click event on the text.
HyperlinkStyle method is meant to be style text as an Skapa Hyperlink component in those cases the raw component is not enough by itself
Icon Button component a button for compact spaces that is labelled with an icon instead of text. It's built on top of androidx.compose.material.Button and comes with predefined appearance based on Skapa design and guidelines.
Icon Pill component is a button that represents an attribute or unit of data. It's built on top of androidx.compose.material.Button and comes with predefined appearance based on Skapa design and guidelines.
Inline Message is use to displays highly contextual, non-interruptive messages inline with content.
Jumbo Button component is a control used to trigger the final action on a linear flow. It has a predefined appearance based on Skapa design and guidelines.
Wrapped Material DropdownMenu with Skapa features, used to display select options
List View Item consist of one or more items and can contain actions represented by Icons and text. The List View Item is available in three sizes. Small for one line text, medium and large.
List View Item consists of one or more items and can contain actions represented by Icons and text. The List View Item is available in three sizes. Small for one line text, medium and large.
LoadingBall is used when there is a indeterminate loading time, when it is not possible to know the completion time. Meant to be used when the process lasts between 2 to 10 seconds.
Loading Linear is used when there is a determinate loading time, when it is possible to know the completion time. Meant to be used when the process takes more than 10 seconds. Preferable when time remaining can be displayed.
MemberCard component allows us to expand our relation with our customers, displaying their physical IKEA Member Card in a digital format and comes with predefined appearance based on Skapa design and guidelines.
Composable to be use for selection patters with ListBox, Sheet and Prompt.
Payment Logo is a Container for payment provider logos. Our payment logo container is an empty container that comes with a few pre-defined rules such as sizing and borders and sizing.
Pill component with Icon and Badge is a button that represents an attribute or unit of data. It's built on top of androidx.compose.material.Button and comes with predefined appearance based on Skapa design and guidelines.
Pill Group component allows Pills to be combined together inside a Row to achieve group-like behaviour. PillGroup implements the fixed-width container behaviour and wrap pills onto new rows, similar to a paragraph of text. The container height can be controlled by determining a maximum number of visible pills. When the number of maximum visible pills is set, an overflow button allows users to reveal the remaining content. Actions bound to the overflow button can vary.
Price displays a currency in the IKEA price presentation brand format.
Price Module communicates product information and price for different scenarios.
Product Identifier component is a label that displays numbers related to the identification or the store location of an IKEA range product. It is built on top of androidx.compose.material3.Text and comes with pre-defined appearance based on Skapa design and guidelines.
Prompt is a modal window that appears in the centre of a screen, disabling the content below. It interrupts the user with a critical task, decision, or acknowledgement that needs to be addressed before continuing. It's built on top of androidx.compose.ui.window.Dialog and comes with a predefined appearance based on Skapa design and guidelines (https://skapa.ikea.net/).
QuantityStepper component allows you to select an number value by increasing/decreasing that value with the button controls or writing the value directly in the input field inside the component.
Radio Button component is a control that allows a single selection of a list of mutually exclusive options. It's built on top of androidx.compose.material.RadioButton and comes with predefined appearance based on Skapa design and guidelines.
Use radio buttons when you have a group of mutually exclusive choices and only one selection from the group is allowed.
Rating component is used to display a star rating with average value and number of reviews/ratings for a product.
Search provides an input field for searching content within a site or app to find specific items.
Search is a standalone search component built from scratch.
Allow users to switch between two or more visualisation modes without changing content. They're a great way to add some customisation to an experience.
Select enables users to display and choose an option within a set of given SelectItemsParams.items that are display as specified in SelectItemsParams.itemContent function. Whenever the user select an option, SelectItemsParams.onItemSelected is called with the selected item as parameter.
Sheet is a modal window that dims and disables the parent view allowing for a short, focused task or providing additional information before returning to the main screen. They are an alternative to inline menus and simple dialogs, providing additional room for content, iconography, and actions.
Shoppable image is an image with markers that showcases and links to IKEA products pictured within.
SimpleVideo Basic video playback with autoplay and minimal controls. Represents an open container for a video player with built in Play/Pause, full-screen, transcription buttons and accessibility features.
Skeleton is a visual component for content being loaded which create the impression of faster, gradual loading.
Slider component that allows users to make a single selection from a range of values.
Slider component that allows users to make a range selection from a range of values. This implies 2 selection points between the allowed range.
Status is typically used to highlight product availability but might work in other applications.
Switch is a binary control for turning a setting or feature 'on' or 'off' with immediate effect.
Tabs Groups and allows navigation between groups of related content at the same level of the hierarchy, without leaving the page. Tabs can be used on full page layouts or nested in components.
Tag is used to classify and link to content.
Text area enables users to edit Multi-line text via hardware or software keyboard, providing different decorations such as Label, helper text, and counter. Whenever the user edits the text, onChange is called with the most up to date state represented by value. value contains the text entered by user. fields, useful when you want to allow users to enter a sizeable amount of text.
The Text Overlay Card is a component that displays simple content and serves as an entry point to other pages containing more detailed information.
Toast component displays a brief, non-interruptive message that floats in front of the screen. It is built to be used in conjunction with Scaffold and SnackbarHost in the same manner as Material Design Snackbar, using snackbarData for input. Comes with predefined appearance based on Skapa design and guidelines.
Converting Helper text states to Base field states
Toggle component is a control that allows a single selection of a list of mutually exclusive options. The component comes with a predefined appearance based on Skapa design and guidelines.
Converting Base field states to Helper text states
TriStateCheckbox should be used when selections can contain sub-selections.