Skip to main content


Ignite's Icon Component renders an icon using predefined icon images. You can use those, override them, or customize this component to create any number of image based icons. If onPress is passed, it will wrap the icon in a TouchableOpacity component, otherwise it will use a View component.

<Icon icon="ladybug" onPress={() => Alert.alert("Hello")} />


Other than these props, you can pass any props that TouchableOpacity or View support and they will be forwarded to the respective wrapper component.


The icon prop is required. This is the string name of the icon to be rendered. The options are:

  • back
  • bell
  • caretLeft
  • caretRight
  • check
  • community
  • components
  • debug
  • heart
  • hidden
  • ladybug
  • lock
  • menu
  • more
  • pin
  • settings
  • view
  • x
<Icon icon="bell" />

You can easily change or add custom icons to the Icon component.


The color optional prop is a string that will be used to set the tintColor of the icon image.

<Icon icon="x" color="#7C7C7C">


The size optional prop is a number that is used to set the dimensions of the icon image.

<Icon icon="x" size={24} />


The style prop is optional. This is an object that overrides the default style of the icon, and is of the type StyleProp<ImageStyle>. By default this just sets the image's resizeMode to contain. See React Native docs on ImageStyle for more information.

<Icon icon="ladybug" style={{ width: 20, height: 20 }} />


The containerStyle is an optional prop that sets the style of the icon container, and is of the type StyleProp<ViewStyle>. See React Native docs on ViewStyle for more information.

<Icon icon="bug" containerStyle={{ backgroundColor: "red" }} />


The onPress optional prop is a function that will be called when the icon is pressed. Note that when this prop is passed, the icon will be wrapped in a TouchableOpacity component rather than a View component.

<Icon icon="ladybug" onPress={() => Alert.alert("Hello")} />

Custom Icons

To create your own custom icon, add your icon image(s) to the assets/icons/ directory and then add it with its own name to the iconRegistry object in app/components/Icon.tsx.

-- icon/
-- icons/
-- index.ts
-- my-custom-icon.png
export const iconRegistry = {
// ...
custom: require("./myCustomIcon.png"),

You can then use your custom icon by passing its name through the icon prop.

<Icon icon="custom" />