Mingcute Icons in Core Regular and Core Filled styles

Mingcute Icons

Carefully Designed Icon Library

Mingcute website  @mingcute/icons npm version  @mingcute/icons minified and gzipped package size  Monthly @mingcute/icons downloads  Mingcute Icons GitHub stars

--- ## Overview Mingcute Icons is the public, open-source distribution of the Mingcute Icon System. It provides **1,663 icons** in both Core Regular and Core Filled, for a total of **3,326 styled icon definitions**, distributed across 10 production packages for: * React * Vue * React Native * Svelte * SolidJS * Vanilla JavaScript * Web Components * Standalone SVG * WOFF2 icon fonts * Framework-neutral definitions Every renderer uses the same generated `@mingcute/icons` definitions. Icon geometry is compiled once rather than duplicated across framework packages, keeping rendering consistent and the repository easier to maintain. ## Highlights * **3,326 styled definitions:** 1,663 icons in Core Regular and Core Filled. * **10 production packages:** framework components, SVG, fonts, and framework-neutral definitions. * **Consistent rendering:** every package is generated from the same canonical artwork. * **Tree-shakeable imports:** use style entry points for convenience or direct icon paths for smaller module graphs. * **Accessible behavior:** components remain decorative unless given an accessible title or label. * **Typed packages:** framework adapters include generated declarations and typed component props. * **High-fidelity SVG:** gradients, masks, clipping paths, and self-contained patterns are preserved. * **No duplicated geometry:** framework adapters consume `@mingcute/icons`. Mingcute icons used in production interfaces ## Design Foundation Every Mingcute icon is drawn on a 24 × 24 grid with consistent visual proportions. The public catalogue includes: * Core Regular * Core Filled Core Regular is designed around a consistent 2 px stroke. Canonical vector artwork remains editable in the source files and scales through SVG without losing its intended proportions. Use the [Mingcute website](https://www.mingcute.com/) to: * search the icon catalogue; * preview icons; * adjust icon size and color; and * download individual SVG or PNG assets. Use the packages in this repository when icons need to be installed, versioned, tree-shaken, and rendered consistently in an application. Editable Mingcute vector construction ## Quick Start ### 1. Install the package for your framework For React: ```bash npm install @mingcute/react ``` For another framework, replace `@mingcute/react` with the appropriate package listed below. ### 2. Import an icon ```tsx import { Home1Regular } from '@mingcute/react/core-regular'; export function HomeLink() { return ( ); } ``` ## Packages Install only the package required by your project. | Target | Package | Installation | Purpose | | ------------------ | ----------------------------------------------------------------- | -------------------------------------- | --------------------------------------------------- | | Icon definitions | [`@mingcute/icons`](./packages/icons/README.md) | `npm install @mingcute/icons` | Framework-neutral definitions and rendering helpers | | React | [`@mingcute/react`](./packages/react/README.md) | `npm install @mingcute/react` | Typed React SVG components | | Vue | [`@mingcute/vue`](./packages/vue/README.md) | `npm install @mingcute/vue` | Typed Vue 3 SVG components | | React Native | [`@mingcute/react-native`](./packages/react-native/README.md) | `npm install @mingcute/react-native` | Native components using `react-native-svg` | | Svelte | [`@mingcute/svelte`](./packages/svelte/README.md) | `npm install @mingcute/svelte` | Svelte 5 icon components | | SolidJS | [`@mingcute/solid`](./packages/solid/README.md) | `npm install @mingcute/solid` | SolidJS icon components | | Vanilla JavaScript | [`@mingcute/vanilla`](./packages/vanilla/README.md) | `npm install @mingcute/vanilla` | SVG strings and DOM helpers | | Web Components | [`@mingcute/web-components`](./packages/web-components/README.md) | `npm install @mingcute/web-components` | Explicitly registered custom elements | | SVG | [`@mingcute/svg`](./packages/svg/README.md) | `npm install @mingcute/svg` | Optimized standalone SVG files | | Font | [`@mingcute/font`](./packages/font/README.md) | `npm install @mingcute/font` | WOFF2 fonts, CSS classes, and metadata | Framework packages use `@mingcute/icons` for shared icon geometry. The definitions package is installed automatically when required. ### Package-manager examples ```bash # npm npm install @mingcute/react # pnpm pnpm add @mingcute/react # Yarn yarn add @mingcute/react # Bun bun add @mingcute/react ``` ## Available Styles The public release contains **3,326 styled icon definitions** across two importable styles. | Import subpath | Style | Icons | | -------------- | --------------------- | --------: | | `core-regular` | Core Regular | 1,663 | | `core-filled` | Core Filled | 1,663 | | **Total** | **All public styles** | **3,326** | Additional Core, Cute, and Sharp styles are available in [Mingcute Pro](https://www.mingcute.com/). ## Free and Pro | Capability | Mingcute Icons | Mingcute Pro | | ------------------- | ---------------------------- | -------------------------------------------- | | Families and styles | Core Regular and Core Filled | 12 Core, Cute, and Sharp style combinations | | Styled definitions | 3,326 | 20,152 | | Package names | `@mingcute/*` | `@mingcute/*-pro` | | Distribution | Public npm registry | Private Mingcute registry | | Access | No account or CLI required | Active Pro entitlement and CLI configuration | | License | Apache-2.0 | Mingcute Pro Commercial License | The public and Pro packages use the same framework conventions and import structure. This makes migration straightforward while keeping the source repositories and licensing boundaries separate. ## Usage ### React ```tsx import { Home1Regular } from '@mingcute/react/core-regular'; export function HomeIcon() { return ; } ``` ### Vue ```vue ``` ### React Native ```tsx import { Home1Regular } from '@mingcute/react-native/core-regular'; export function HomeIcon() { return ; } ``` React Native requires `react-native-svg` 13 or newer. ### Svelte ```svelte ``` ### SolidJS ```tsx import { Home1Regular } from '@mingcute/solid/core-regular'; export function HomeIcon() { return ; } ``` ### Vanilla JavaScript ```ts import { createIcon } from '@mingcute/vanilla'; import { Home1Regular } from '@mingcute/vanilla/core-regular'; const navigation = document.querySelector('nav'); navigation?.append( createIcon(Home1Regular, { size: 24, title: 'Home', }), ); ``` ### Web Components Register the component: ```js import { defineHome1Regular } from '@mingcute/web-components/core-regular/home-1'; defineHome1Regular(); ``` Use the registered custom element: ```html ``` ### Standalone SVG ```ts import homeUrl from '@mingcute/svg/core-regular/home-1.svg'; ``` ### Icon Font Import the stylesheet: ```js import '@mingcute/font/core-regular.min.css'; ``` Use the generated class: ```html ``` ### Framework-Neutral Definitions ```ts import { renderIconSource } from '@mingcute/icons'; import { Home1Icon } from '@mingcute/icons/core-regular'; const svg = renderIconSource(Home1Icon); ``` ## Package Model `@mingcute/icons` contains the framework-neutral icon definitions. Framework packages provide small renderer-specific wrappers and install the shared definitions automatically: ```text @mingcute/icons ├── @mingcute/react ├── @mingcute/vue ├── @mingcute/react-native ├── @mingcute/svelte ├── @mingcute/solid ├── @mingcute/vanilla └── @mingcute/web-components ``` This structure prevents icon geometry from being duplicated across framework packages. The standalone SVG and font packages are generated from the same canonical artwork and validated independently. ## Import Strategy ### Style entry points Use a style entry point for convenient named imports: ```ts import { Home1Regular, Search2Regular, } from '@mingcute/react/core-regular'; ``` ### Direct icon imports Use a direct icon path for the smallest module graph: ```ts import Home1Regular from '@mingcute/react/core-regular/home-1'; ``` Package roots expose shared utilities and types rather than the complete icon catalogue. This prevents accidental imports of every icon. ## Performance and Module Format Mingcute JavaScript packages: * are ESM-only; * publish explicit export maps; * support tree shaking; and * declare side effects only where required. JavaScript packages declare `sideEffects: false`. `@mingcute/font` marks imported CSS as side-effectful so bundlers retain the stylesheet. For predictable bundle sizes: * use direct icon imports in shared libraries and performance-sensitive entry points; * avoid namespace imports from style entry points; * code-split icon-heavy features with their application routes; * use your framework’s bundle analyzer to verify production output; and * prefer SVG components over icon fonts when gradients, masks, patterns, or original colors must be preserved. ## Accessibility Framework components are decorative by default and remain hidden from assistive technology unless they receive an accessible title or label. The examples below use these React imports: ```tsx import { Home1Regular, MenuRegular, } from '@mingcute/react/core-regular'; ``` ### Meaningful icons Provide a title when an icon communicates meaning by itself: ```tsx ``` ### Decorative icons Keep decorative icons hidden from assistive technology: ```tsx