Skip to main content

Platform Support

rn-remixicon targets every platform that React Native and react-native-svg support.

Compatibility table

PlatformStatusNotes
iOS✅ Full supportWorks out of the box
Android✅ Full supportWorks out of the box
Web✅ SupportedRequires react-native-web
Expo (managed)✅ Full supportreact-native-svg pre-bundled
Windows✅ SupportedRequires react-native-svg autolink
macOS✅ SupportedRequires react-native-svg autolink

Per-platform notes

Expo (managed workflow)

react-native-svg is included in the Expo SDK. Install with:

npx expo install rn-remixicon react-native-svg

No additional configuration needed.

Web (react-native-web)

Install the web adapter and configure your bundler (Webpack, Metro, or Vite) to alias react-nativereact-native-web:

npm install react-native-web

Then follow the react-native-web setup guide for your bundler. react-native-svg renders to inline SVG on web automatically.

Windows & macOS (React Native for Desktop)

After installing rn-remixicon, run the platform-specific autolink step:

Windows:

cd windows && msbuild # or use Visual Studio

macOS:

cd macos && pod install

Follow the react-native-svg for macOS/Windows guide for full details.

Troubleshooting

Icon doesn't render — blank space where the icon should be

Cause: react-native-svg is not installed or linked correctly.

Fix: Verify react-native-svg is in your dependencies and that native modules are linked. For Expo, use npx expo install react-native-svg. For bare React Native, run npx pod-install (iOS) or rebuild your Android project.


TypeScript error: "Type 'string' is not assignable to type 'IconName'"

Cause: You're passing a plain string where IconName (a union type) is expected.

Fix: Use as IconName for dynamic values, or use the IconName type import to narrow your string at the call site:

import type { IconName } from 'rn-remixicon';

const icon = 'home-line' as IconName;

Subpath import fails: "Cannot find module 'rn-remixicon/home-line'"

Cause: Your bundler or TypeScript config doesn't support package.json exports subpaths, or the package isn't built.

Fix:

  1. Ensure you're using Node ≥ 16 and a bundler with exports support (Metro ≥ 0.72, Webpack 5).
  2. Confirm dist/icons/home-line.js exists — if not, the package may not have been built correctly. Try removing node_modules and reinstalling.
  3. For TypeScript, set "moduleResolution": "bundler" or "node16" in your tsconfig.json.