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
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.
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.
Orientation to use with Dual button
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 to be used for header images in Card component.
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
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 that can be used in a modal.
A ModalHeaderAction is represented as an IconButton added to the header component
Class that represents the necessary data to build a ModalHeader
Class that represents the necessary data to build a ModalsActionFooter
The different types of headers that can be used in a modal.
Data class that represents the necessary data to add navigation buttons in the component.
Button variant for the navigation buttons in the carousel.
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.
Represents the Price offer type for the product.
Price params used to match Price
The price display has two size variant called MixedSize and SingleSize. There are two options for the price size styling: SingleSize and MixedSize.
Pre-defined styles for the Button component. There are three styles available: Regular, Comparison and BTI. Each style has its own unique characteristics.
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.
Second currency price for Dual currencies. This option is provide due some legal requirements in some markets.
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
State of the SheetState composable.
Possible values of SheetState.
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
Styles for Status component
Appearance of the Switch
TabVariant is used to define the style of the tabs.
Data class for Toggle content. There are two types of content: ToggleItem.Text and ToggleItem.Icon.
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.
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.
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.
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 2.0 is a component that displays grouped content and actions on a single topic. It provides an entry point to more detailed information.
Card Emphasised is a Card with a background that provides a stronger visual contrast and creates a more traditional card silhouette.
Deprecated Emphasised Card.
Card Regular is a background-less Card that blends passively into the page.
Deprecated Regular Card.
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.
Dropdown component can be used as a trigger for ListBox, Prompt, BottomSheet or other container components to display a list of options to choose
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.
Input Field enables users to edit text via hardware or software keyboard, providing different decorations such as Label, helper text, prefix and more. 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. Note: If apart from Suffix/Prefix decorator you also want leading or trailing icon use the InputField overload with the IconId parameter instead.
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 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 component with Thumbnail 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 component with Icon 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 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
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.
Radio Button Group component allows RadioButtons to be combined together with a Text inside a Column to achieve group-like behaviour. We recommend using no more than five radio buttons in a layout.
Rating component is used to display a star rating with average value and number of reviews/ratings for a product.
Create a SheetState and remember it.
Search provides an input field for searching content within a site or app to find specific items.
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.
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.
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.