Skip to main content

Icon

Icon renders an animated icon from a registered icon pack. Use IconRegistry at the application root to register one or more icon packs (e.g., Eva Icons, Material Icons, FontAwesome).

Import​

import { Icon, IconRegistry } from '@ui-kitten/components';

Basic Usage​

import React from 'react';
import { ApplicationProvider, Layout, Icon, IconRegistry } from '@ui-kitten/components';
import { EvaIconsPack } from '@ui-kitten/eva-icons';
import * as eva from '@ui-kitten/eva';

const App = () => (
<>
<IconRegistry icons={EvaIconsPack} />
<ApplicationProvider {...eva} theme={eva.light}>
<Layout style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Icon name="star" fill="#FFD700" style={{ width: 32, height: 32 }} />
</Layout>
</ApplicationProvider>
</>
);

Props​

Icon​

PropertyTypeDefaultDescription
namestring-Name of the icon in the registered icon pack. Required.
packstringundefinedName of the icon pack to use. Defaults to the first registered pack.
animation'zoom' | 'pulse' | 'shake' | null'zoom'Animation type applied to the icon. Pass null to disable animation.
animationConfigAnimationConfigundefinedAnimation configuration — duration, easing, cycles.

IconProps is generic over the props of the element the icon pack renders. Any additional property — fill, style, width, height — is passed straight through to that element, so the accepted set depends on the icon pack in use. With @ui-kitten/eva-icons these are react-native-svg props.

Icon exposes an imperative API through a ref typed as IconRef:

MethodSignatureDescription
startAnimation(callback?: Animated.EndCallback) => voidStarts the configured animation.
stopAnimation() => voidStops the animation.

IconRegistry​

PropertyTypeDefaultDescription
iconsIconPack | IconPack[]-One or more icon packs to register.
defaultIconsstring | string[]undefinedName of the pack, or packs, to use when Icon is rendered without an explicit pack.

Storybook​

Live examples coming soon via Storybook.