🎉 We are thrilled to introduce FastStore v2. If you are looking for documentation of the previous version of FastStore, please refer to FastStore v1.

Icon Button

Icon Buttons are icons that trigger some sort of action, such as adding an item to the cart.



Import the component from @faststore/ui

import { IconButton } from '@faststore/ui'

Import Styles

import '@faststore/ui/src/components/atoms/Button/styles.scss'


<IconButton icon={<Icon name="ShoppingCart" />} aria-label="Buy" />


testIdstringID to find this component in testing tools (e.g.: cypress, testing library, and jest).fs-icon-button
icon*string | number | false | true | ReactElement<any, string | JSXElementConstructor<any>> | ReactFragment | ReactPortalA React component that will be rendered as an icon.
aria-label*stringA Label should be provided.
variant"primary" | "secondary" | "tertiary"Specifies the component color variant.
size"small" | "regular"Specifies the size variant.regular
inversefalse | trueDefines the use of inverted colors.
disabledfalse | trueSpecifies that this button should be disabled.
loadingfalse | trueBoolean that represents a loading state.
loadingLabelstringSpecifies a label for loading state.
iconPosition"left" | "right"Specifies where the icon should be positioned


For further customization, you can use the following data attributes:


This component inherits Button CSS selectors and styles.

Best practices

✅ Do's

  • Use icon-only buttons only for widespread actions with highly standardized icons, such as a cross for close.
  • Use the aria-label attribute to provide a textual alternative for icon-only buttons.

❌ Don'ts

  • Don't rely on icons to communicate complex actions.