About this project

React Native Vector Icons is a JavaScript/TypeScript library for adding font-based vector icons to React Native applications. The current architecture uses separate packages for each icon set rather than the legacy single package, with migration documentation provided for existing projects. It includes actively maintained sets such as AntDesign, Feather, FontAwesome Free, Foundation, Ionicons, Material Design Icons, Octicons, and Lucide. Additional sets are available even though their upstream projects are no longer maintained, including Entypo, EvilIcons, older FontAwesome versions, Fontisto, Material Icons, SimpleLineIcons, and Zocial. Third-party icon packages can also be published and discovered through NPM. The main Icon component wraps React Native's Text component and accepts icon name, size, and color props along with usual text style properties such as margins, padding, borders, border radius, background color, and font size. Icons can be placed inside Text for inline use. The library also supports multi-style fonts and can be animated with React Native's Animated API or react-native-animatable. For components that require bitmap images, icons can be converted synchronously or asynchronously into ImageResult objects containing URI, dimensions, and scale for use as Image sources. This feature is available through Expo font support or the dedicated get-image package. Developers can define custom icon sets with createIconSet and a glyph map, bundle their own TTF fonts, or use the project's generator to create a reusable font package. Fontello and Icomoon workflows are documented, and the font directory can be customized through package.json configuration. Fonts may be embedded at build time using static imports or loaded dynamically at runtime, with setup guides for Expo, React Native, and web. The repository also includes an IconExplorer example and Jest mocking guidance. The library is MIT licensed, while bundled fonts retain their respective licenses, commonly MIT or SIL OFL.