Skip to content

Repository files navigation

MingCuteIcon

MingCute Icons as SF Symbols for Swift — fill-based icons converted via SwiftDraw.

All icons are available as type-safe Swift properties with full support for SwiftUI, UIKit, and AppKit. Each icon comes in two variants: _line (outline) and _fill (solid).

Requirements

Platform Minimum Version
iOS 14.0
macOS 11.0
watchOS 7.0
tvOS 14.0
visionOS 1.0

Installation

Swift Package Manager

Add the package to your project in Xcode:

  1. Go to File → Add Package Dependencies...
  2. Enter the repository URL:
https://github.com/lcandy2/MingCuteIcon.git

Or add it to your Package.swift:

dependencies: [
    .package(url: "https://github.com/lcandy2/MingCuteIcon.git", from: "1.0.0")
]

Then add "MingCuteIcon" to the dependencies of your target.

Usage

SwiftUI

import MingCuteIcon

// Image
Image(mingCute: .heart_line)
Image(mingCute: .arrow_left_fill)

// Label (iOS 17+ / macOS 14+)
Label("Search", mingCute: .search_2_line)
Label("Favorites", mingCute: .heart_fill)

UIKit

import MingCuteIcon

let heartImage = UIImage(mingCute: .heart_line)
let searchImage = UIImage(mingCute: .search_2_line)

AppKit

import MingCuteIcon

let heartImage = NSImage(mingCute: .heart_line)
let searchImage = NSImage(mingCute: .search_2_line)

Naming Convention

Icons use snake_case Swift property names converted from the original MingCute underscore naming:

MingCute File Swift Property SF Symbol Identifier
heart_line.svg .heart_line heart-line
heart_fill.svg .heart_fill heart-fill
arrow_left_line.svg .arrow_left_line arrow-left-line
home_1_fill.svg .home_1_fill home-1-fill

Icon Categories

The library includes icons across 26 categories:

Category Description
arrow Directional and navigation icons
building Architecture and structure icons
business Commerce and professional icons
contact Communication and connection icons
crypto Cryptocurrency-related icons
design Design and creative tools
development Software development icons
device Hardware and gadget icons
editor Text editing and content icons
education Learning and academic icons
emoji Expressive and decorative icons
file Document and file type icons
food Culinary and nutrition icons
logo Brand and company logos
map Geography and location icons
media Audio, video, and entertainment
nature Plants, animals, and natural elements
other Miscellaneous icons
part UI component parts
shape Geometric shapes
sport Athletic and recreation icons
system Operating system icons
transport Vehicle and travel icons
user Profile and account icons
weather Climate and atmospheric icons
zodiac Astrological sign icons

For the complete list of all icons, see MingCuteIcon+All.swift.

Bundle Size

Importing MingCuteIcon includes all symbols in your app bundle (Xcode does not tree-shake asset catalogs). The compiled asset catalog is estimated at 3–5 MB — comparable to other icon libraries like PhosphorSymbols and Iconoir-Swift.

If you only need a few icons and want to minimize bundle size, you can copy individual .symbolset folders from Symbols/ directly into your project's .xcassets catalog — no need to add the full package.

How It Works

The conversion pipeline downloads SVG icons from the mingcute-design/mingcute-icons GitHub repository and converts them to SF Symbol format:

  1. Download — Sparse-clone the SVG directory from the GitHub repository
  2. Extract — Parse SVG files, strip metadata paths, normalize fill colors
  3. Convert — Transform each SVG to SF Symbol format via SwiftDraw (--format sfsymbol)
  4. Catalog — Generate an .xcassets asset catalog with .symbolset entries
  5. Codegen — Generate MingCuteIcon+All.swift with type-safe static properties

Regenerating Symbols

To re-run the conversion (e.g., after an upstream update):

# Install dependencies
brew install swiftdraw

# Run conversion
./update_symbols.sh

Or with options:

# Point to a local copy of the repo
node Scripts/convert.mjs --repo-dir /path/to/mingcute-icons

# Custom output paths
node Scripts/convert.mjs --output Sources/MingCuteIcon --symbols Symbols

CI/CD

A GitHub Actions workflow (.github/workflows/convert.yml) automates updates:

  • Runs weekly (Monday) and on manual dispatch
  • Clones the latest icons from GitHub
  • Converts all icons and runs swift build + swift test
  • Creates a tagged release if changes are detected

Credits

License

The conversion tooling is MIT licensed. MingCute Icons are subject to their own Apache 2.0 license.

About

MingCute Icons as SF Symbols for Swift — 3322 icons with type-safe SwiftUI, UIKit, and AppKit support

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages