← back to all libraries
// ICON LIBRARY

Remix Icon

Open-source neutral-style icons for designers and developers

reactvuenextjsApache 2.0
GitHub →Official Site →

STATS

2,800
Icons
6,000
GitHub Stars
0.3M
Weekly Downloads
Apache 2.0
License
~200kb (font) or ~1kb per SVG
Bundle Size
2019
Since

OVERVIEW

Remix Icon is a comprehensive open-source icon library with over 2,800 icons available in both line and fill styles. It was designed with a neutral, system-level aesthetic that works well across a wide range of application types.

The library covers an impressive range of categories including editor tools, media controls, maps, finance, health, and more. Icons are organized into clear categories making it easy to browse and find what you need. The neutral style means icons don't feel tied to any particular design trend.

Remix Icon can be used as an icon font, SVG sprites, or individual SVG files. For React projects there is a community package available. The library does not have official TypeScript support or tree-shaking out of the box, which is its main technical limitation compared to modern alternatives.

// VERDICTRemix Icon is a solid choice when you need a large, diverse icon set with both line and fill variants and don't need TypeScript or advanced tree-shaking. It is particularly popular in Vue and non-framework projects where its CSS font approach works well.

INSTALLATION

react
npm install remixicon
nextjs
npm install remixicon

// Note: Import the CSS in your layout file. Icons are used as className strings rather than React components.
vue
npm install remixicon
svelte
npm install remixicon
vanilla
npm install remixicon

CODE EXAMPLES

basic
// First import the CSS in your layout or _app file
import 'remixicon/fonts/remixicon.css'

export default function App() {
  return (
    <div>
      <i className="ri-home-line" />
      <i className="ri-settings-line" />
      <i className="ri-user-line" />
    </div>
  )
}
fill Variant
import 'remixicon/fonts/remixicon.css'

export default function App() {
  return (
    <div>
      {/* Line variant */}
      <i className="ri-heart-line text-gray-500" />
      {/* Fill variant */}
      <i className="ri-heart-fill text-red-500" />
    </div>
  )
}
with Size
import 'remixicon/fonts/remixicon.css'

export default function App() {
  return (
    <i
      className="ri-star-fill"
      style={{ fontSize: '24px', color: '#f59e0b' }}
    />
  )
}

PROS & CONS

PROS
2800+ icons
One of the largest free icon libraries with excellent coverage of specialized categories.
Line and fill variants
Every icon comes in both line and fill styles, giving you flexibility for different UI contexts.
Works everywhere
CSS font approach means it works in any HTML/CSS context without framework-specific packages.
Free for commercial use
Apache 2.0 license is permissive and allows commercial use without attribution.
Large category coverage
Covers editor, media, map, finance, health, communication and many more specialized categories.
CONS
No TypeScript support
Icons are className strings not typed components. You get no autocomplete or type safety.
Not tree-shakable
The font approach loads all 2,800 icons regardless of how many you use, adding ~200kb to your bundle.
CSS font approach feels outdated
Modern icon libraries use SVG components. The className string approach is less developer-friendly than typed React components.
No official React package
Using Remix Icon in React requires workarounds compared to purpose-built React libraries like Lucide or Heroicons.

WHO SHOULD USE THIS

USE IF YOU...
Vue projects where the CSS font approach works naturally
Projects that need a very large and diverse icon set
Non-framework HTML/CSS projects
Teams that prioritize icon variety over TypeScript support
Projects already familiar with icon font workflows
AVOID IF YOU...
React and Next.js projects where TypeScript and tree-shaking matter
Performance-critical applications where 200kb font loading is unacceptable
Teams that want typed icon components with autocomplete

FREQUENTLY ASKED QUESTIONS

Q.Is Remix Icon free for commercial use?
A.Yes. Remix Icon uses the Apache 2.0 license which allows free commercial use. Unlike MIT, Apache 2.0 also provides explicit patent rights.
Q.How do I use Remix Icon in React?
A.Import the CSS file in your root layout or App component, then use icon class names as className on i elements. For example: <i className='ri-home-line' />.
Q.Does Remix Icon support tree-shaking?
A.No. The standard installation loads all icons as a font. For better performance, you can download individual SVG files from the website and import them manually.
Q.How is Remix Icon different from Lucide Icons?
A.Remix Icon has more icons (2,800 vs 1,400) and offers fill variants. However Lucide provides typed React components with tree-shaking while Remix Icon uses a CSS font approach with no TypeScript support.
Q.Can I use Remix Icon with Tailwind CSS?
A.Yes. Since icons are HTML elements with className, you can apply Tailwind text color utilities directly. Use text-{color} for color and text-{size} or a fixed font-size style for sizing.

COMPARE WITH ALTERNATIVES

Remix Icon vs Lucide IconsRemix Icon vs HeroiconsRemix Icon vs Tabler IconsRemix Icon vs Phosphor IconsRemix Icon vs Feather IconsRemix Icon vs Bootstrap IconsRemix Icon vs Radix Icons