README.md

July 30, 2026 · View on GitHub

Mingcute Icon System

@mingcute/react-native

Typed Mingcute icons for React Native

Mingcute website  @mingcute/react-native npm version  @mingcute/react-native minified and gzipped size  @mingcute/react-native monthly npm downloads  Mingcute GitHub stars


Overview

@mingcute/react-native provides typed React Native components for the public Mingcute Core Regular and Core Filled styles.

Canonical icon geometry comes from @mingcute/icons. The adapter focuses on React Native rendering, accessibility, prop precedence, refs, framework lifecycle behavior, and stable SVG resource identifiers.

Highlights

  • 3,326 styled definitions: 1,663 icons in Core Regular and Core Filled.
  • Typed React Native components: generated declarations and framework-native props.
  • Tree-shakeable imports: style entry points and direct icon subpaths.
  • Accessible defaults: unlabeled icons remain decorative.
  • Scoped SVG resources: repeated icons avoid gradient, mask, and clip-path collisions.
  • Shared geometry: the adapter does not duplicate the icon catalogue.
Mingcute icons used in product interfaces

Installation

Compatibility: React 18+, React Native 0.72+, and react-native-svg 13+.

# npm
npm install @mingcute/react-native

# pnpm
pnpm add @mingcute/react-native

# Yarn
yarn add @mingcute/react-native

# Bun
bun add @mingcute/react-native

Quick Start

import { Home1Regular } from '@mingcute/react-native/core-regular';

export function NavigationIcon() {
  return <Home1Regular size={24} color="#10161F" />;
}

Imports

Style entry points

import {
  Home1Regular,
  Search2Regular,
} from '@mingcute/react-native/core-regular';

Direct icon imports

import Home1Regular from '@mingcute/react-native/core-regular/home-1';

The package root exports the shared Icon utility and public types. It does not re-export the complete icon catalogue.

API Reference

PropTypeDefaultPurpose
sizenumber | string24Sets both width and height unless either is provided
widthSvgProps valuesizeOverrides the rendered width
heightSvgProps valuesizeOverrides the rendered height
colorstringcurrentColorSets the primary theme color
primaryColorstringcolorExplicitly overrides primary artwork
secondaryColorstringprimary colorOverrides themeable secondary artwork
secondaryOpacitynumber0.3Controls secondary artwork opacity
titlestringnoneSupplies the default native accessibility label
refReact refnoneAccesses the underlying Svg host
Other propsSvgPropsnoneForwards native SVG and accessibility props

Explicit width or height values take precedence over size.

Accessibility

Icons without a title or explicit accessible name are hidden from assistive technology.

Meaningful icons

Provide a title or platform-appropriate accessibility label when an icon communicates meaning by itself.

Decorative icons

Keep icons decorative when nearby text already labels the action.

Icon-only controls

Put the accessible name on the interactive control and keep the icon itself decorative.

Native Rendering

The adapter renders through react-native-svg and requires no WebView or browser DOM.

Angular gradients are represented with clipped native SVG wedges where needed. Refs target the underlying Svg component.

Available Styles

Import subpathStyleIcons
core-regularCore Regular1,663
core-filledCore Filled1,663
TotalAll public styles3,326

Additional Core, Cute, and Sharp styles are available in Mingcute Pro.

Production Guidance

  • The package is ESM-only and side-effect free.
  • Prefer direct icon subpaths in shared libraries and bundle-sensitive entry points.
  • Keep framework and Mingcute package versions aligned across server and client environments where applicable.
  • Use framework components or standalone SVG when gradients, masks, patterns, or original colors must be preserved exactly.
  • Prefer direct icon subpaths to reduce Metro's module graph.

Integration with Definitions

@mingcute/icons owns icon names, normalized geometry, SVG resources, layers, and metadata.

@mingcute/react-native owns:

  • React Native component rendering;
  • prop and attribute handling;
  • accessibility behavior;
  • resource ID scoping; and
  • framework-specific refs and lifecycle behavior.

This separation prevents duplicate icon data and keeps every framework adapter visually consistent.

Troubleshooting

A component import cannot be resolved

Use a PascalCase named export from a style entry point or the kebab-case direct icon path.

The production bundle is larger than expected

Use direct icon subpaths and confirm that the bundler tree-shakes ESM. Avoid namespace imports of complete style entry points.

react-native-svg cannot be resolved

Install a compatible peer dependency and complete the platform’s normal native dependency setup.

An icon is missing after upgrading

Reset Metro’s cache and rebuild the native application.

A layered color does not change

Only themeable secondary artwork responds to secondaryColor. Original-color artwork preserves its authored colors.

Rendering differs from web

React Native uses native SVG primitives and approximates angular gradients with clipped wedges.

Development

This package is generated from canonical SVG sources. Do not edit generated output by hand.

pnpm --filter @mingcute/react-native check
Editable Mingcute vector construction

License

Licensed under the Apache License 2.0.