npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@huymobile/react-native-iconify

v1.0.8

Published

200,000+ icons for React Native with native caching and zero configuration

Readme

@huymobile/react-native-iconify

200,000+ icons for React Native with native caching and zero configuration

npm version npm downloads license


Why react-native-iconify?

Traditional icon libraries require you to bundle all icons at build time, leading to:

  • ❌ Large bundle sizes (even if you use only 10 icons)
  • ❌ Manual imports for each icon
  • ❌ Limited icon selection per library

react-native-iconify takes a different approach:

  • 200,000+ icons from 150+ icon sets (Material Design, Feather, Heroicons, Phosphor, Lucide, and more)
  • Load icons by name - no imports needed
  • Zero bundle size impact in development
  • Automatic bundling for production builds
  • Native caching with SDWebImage (iOS) and Glide (Android)

Features

| Feature | Description | |---------|-------------| | 🎨 200,000+ Icons | Access to 150+ icon sets from Iconify | | ⚡ Zero Config | Works out of the box - no manual bundling required | | 📦 Auto-Bundling | Icons automatically bundled during production builds (APK/IPA) | | 💾 Native Caching | SDWebImage (iOS) + Glide (Android) for persistent storage | | 🏗️ New Architecture | Full support for React Native 0.68+ New Architecture | | 📱 Old Architecture | Backward compatible with React Native 0.60+ | | 🚀 Expo Support | Works with Expo development builds and EAS | | 🔧 React Native CLI | Full support for bare React Native projects |


Compatibility

| Platform | Minimum Version | |----------|-----------------| | React Native | 0.68.0+ | | React Native (Old Arch) | 0.60.0+ | | Expo SDK | 49+ | | iOS | 13.0+ | | Android | API 21+ (Android 5.0) |


Installation

# Using npm
npm install @huymobile/react-native-iconify react-native-svg

# Using yarn
yarn add @huymobile/react-native-iconify react-native-svg

# Using pnpm
pnpm add @huymobile/react-native-iconify react-native-svg

# Using bun
bun add @huymobile/react-native-iconify react-native-svg

iOS Setup

cd ios && pod install

Expo Setup

npx expo install react-native-svg
npx expo prebuild

Note: react-native-iconify requires a development build. It will not work with Expo Go.


Quick Start

import React from 'react';
import { View } from 'react-native';
import { IconifyIcon } from '@huymobile/react-native-iconify';

export default function App() {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      {/* Material Design Icons */}
      <IconifyIcon name="mdi:home" size={32} color="#333" />

      {/* Heroicons */}
      <IconifyIcon name="heroicons:user-solid" size={32} color="blue" />

      {/* Feather Icons */}
      <IconifyIcon name="feather:settings" size={32} color="green" />

      {/* Phosphor Icons */}
      <IconifyIcon name="ph:heart-fill" size={32} color="red" />
    </View>
  );
}

Finding Icons

Browse and search icons at icon-sets.iconify.design

Icon names follow the format: {prefix}:{icon-name}

Examples:

  • mdi:home - Material Design Icons
  • heroicons:user - Heroicons
  • feather:settings - Feather Icons
  • lucide:camera - Lucide Icons
  • ph:heart - Phosphor Icons

API

IconifyIcon Props

| Prop | Type | Default | Description | |------|------|---------|-------------| | name | string | required | Icon name in format prefix:name | | size | number | 24 | Icon size (width & height) | | color | string | #000 | Icon color | | rotate | number | 0 | Rotation in degrees | | flip | 'horizontal' \| 'vertical' \| 'both' | - | Flip the icon | | style | ViewStyle | - | Additional styles | | onLoad | () => void | - | Called when icon loads successfully | | onError | (error: Error) => void | - | Called when icon fails to load | | fallback | ReactNode | - | Fallback component while loading | | testID | string | - | Test ID for testing |

Examples

// Basic usage
<IconifyIcon name="mdi:home" size={24} color="blue" />

// With rotation
<IconifyIcon name="mdi:arrow-right" size={24} rotate={90} />

// With flip
<IconifyIcon name="mdi:arrow-left" size={24} flip="horizontal" />

// With custom fallback
<IconifyIcon
  name="mdi:home"
  size={24}
  fallback={<ActivityIndicator size="small" />}
/>

// With callbacks
<IconifyIcon
  name="mdi:home"
  size={24}
  onLoad={() => console.log('Icon loaded!')}
  onError={(err) => console.error('Failed:', err)}
/>

Icon Sets

react-native-iconify supports 150+ icon sets with over 200,000 icons.

Popular Icon Sets

| Icon Set | Prefix | Icons | License | |----------|--------|-------|---------| | Material Design Icons | mdi | 7,000+ | Apache 2.0 | | Heroicons | heroicons | 290+ | MIT | | Feather Icons | feather | 280+ | MIT | | Phosphor | ph | 7,000+ | MIT | | Lucide | lucide | 1,400+ | ISC | | Tabler Icons | tabler | 4,400+ | MIT | | Bootstrap Icons | bi | 1,900+ | MIT | | Font Awesome | fa6-solid | 1,400+ | CC BY 4.0 | | Remix Icons | ri | 2,700+ | Apache 2.0 | | Carbon | carbon | 2,000+ | Apache 2.0 |

Browse all icon sets at icon-sets.iconify.design


Architecture Support

New Architecture (Fabric + TurboModules)

react-native-iconify fully supports React Native's New Architecture:

  • ✅ TurboModules for native cache access
  • ✅ Fabric-compatible rendering
  • ✅ Concurrent features support

Old Architecture (Bridge)

Backward compatible with the bridge-based architecture:

  • ✅ Works with React Native 0.60+
  • ✅ Standard Native Modules
  • ✅ Full feature parity

Expo Support

Development Builds

# Install
npx expo install @huymobile/react-native-iconify react-native-svg

# Create development build
npx expo prebuild
npx expo run:ios
# or
npx expo run:android

EAS Build

# Build for production
eas build --platform all

Expo Go

⚠️ Not Supported: react-native-iconify requires native modules and will not work with Expo Go. Use a development build instead.


Performance

| Scenario | Load Time | |----------|-----------| | Bundled icon (production) | 0ms | | Native cache hit | 15-35ms | | API fetch (first load) | 200-500ms |


Troubleshooting

Icons not loading

  1. Check internet connection (for API fetches)
  2. Verify icon name format: prefix:icon-name
  3. Check if icon exists at icon-sets.iconify.design

iOS build errors

cd ios && pod install --repo-update

Android build errors

cd android && ./gradlew clean

Metro bundler issues

npx react-native start --reset-cache

Credits