Platform Support
rn-remixicon targets every platform that React Native and react-native-svg support.
Compatibility table
| Platform | Status | Notes |
|---|---|---|
| iOS | ✅ Full support | Works out of the box |
| Android | ✅ Full support | Works out of the box |
| Web | ✅ Supported | Requires react-native-web |
| Expo (managed) | ✅ Full support | react-native-svg pre-bundled |
| Windows | ✅ Supported | Requires react-native-svg autolink |
| macOS | ✅ Supported | Requires 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-native → react-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:
- Ensure you're using Node ≥ 16 and a bundler with
exportssupport (Metro ≥ 0.72, Webpack 5). - Confirm
dist/icons/home-line.jsexists — if not, the package may not have been built correctly. Try removingnode_modulesand reinstalling. - For TypeScript, set
"moduleResolution": "bundler"or"node16"in yourtsconfig.json.