Guide for implementing RemixIcon - an open-source neutral-style icon library with 3,100+ icons in outlined and filled styles. Use when adding icons to applications, building UI components, or designing interfaces. Supports webfonts, SVG, React, Vue, and direct integration.
82
Quality
77%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./claude/skills/remix-icon/SKILL.mdRemixIcon is a comprehensive icon library with 3,100+ meticulously designed icons available in both outlined (-line) and filled (-fill) styles. All icons are built on a 24x24 pixel grid for perfect alignment and consistency.
Use RemixIcon when:
NPM (recommended for web projects):
npm install remixicon
# or
yarn add remixicon
# or
pnpm install remixiconCDN (no installation):
<link
href="https://cdn.jsdelivr.net/npm/remixicon@4.7.0/fonts/remixicon.css"
rel="stylesheet"
/>React:
npm install @remixicon/reactVue 3:
npm install @remixicon/vuePattern: ri-{icon-name}-{style}
Where:
icon-name: Descriptive name in kebab-case (e.g., arrow-right, home, user-add)style: Either line (outlined) or fill (filled)Examples:
ri-home-line # Home icon, outlined
ri-home-fill # Home icon, filled
ri-arrow-right-line # Right arrow, outlined
ri-search-line # Search icon, outlined
ri-heart-fill # Heart icon, filledBasic usage:
<i class="ri-admin-line"></i>
<i class="ri-home-fill"></i>With sizing classes:
<i class="ri-home-line ri-2x"></i> <!-- 2em size -->
<i class="ri-search-line ri-lg"></i> <!-- 1.3333em -->
<i class="ri-heart-fill ri-xl"></i> <!-- 1.5em -->Available size classes:
ri-xxs (0.5em)ri-xs (0.75em)ri-sm (0.875em)ri-1x (1em)ri-lg (1.3333em)ri-xl (1.5em)ri-2x through ri-10x (2em - 10em)ri-fw (fixed width for alignment)Download and use:
<img height="32" width="32" src="path/to/admin-fill.svg" />Inline SVG:
<svg viewBox="0 0 24 24" fill="currentColor">
<path d="...icon path data..."/>
</svg><svg class="remix-icon">
<use xlink:href="path/to/remixicon.symbol.svg#ri-admin-fill"></use>
</svg>.remix-icon {
width: 24px;
height: 24px;
fill: #333;
}import { RiHeartFill, RiHomeLine, RiSearchLine } from "@remixicon/react";
function MyComponent() {
return (
<>
<RiHeartFill
size={36} // Custom size
color="red" // Fill color
className="my-icon" // Custom class
/>
<RiHomeLine size={24} />
<RiSearchLine size="1.5em" color="#666" />
</>
);
}<script setup lang="ts">
import { RiHeartFill, RiHomeLine } from "@remixicon/vue";
</script>
<template>
<RiHeartFill size="36px" color="red" className="my-icon" />
<RiHomeLine size="24px" />
</template>Icons are organized into 20 semantic categories:
| Category | Examples | Use Cases |
|---|---|---|
| Arrows | arrow-left, arrow-up, corner-up-left | Navigation, directions, flows |
| Buildings | home, bank, hospital, store | Locations, facilities |
| Business | briefcase, archive, pie-chart | Commerce, analytics |
| Communication | chat, phone, mail, message | Messaging, contact |
| Design | brush, palette, magic, crop | Creative tools |
| Development | code, terminal, bug, git-branch | Developer tools |
| Device | phone, laptop, tablet, printer | Hardware, electronics |
| Document | file, folder, article, draft | Files, content |
| Editor | bold, italic, link, list | Text formatting |
| Finance | money, wallet, bank-card, coin | Payments, transactions |
| Food | restaurant, cake, cup, knife | Dining, beverages |
| Health & Medical | health, heart-pulse, capsule | Healthcare, wellness |
| Logos | github, twitter, facebook | Brand icons |
| Map | map, pin, compass, navigation | Location, directions |
| Media | play, pause, volume, camera | Multimedia controls |
| System | settings, download, delete, add | UI controls, actions |
| User & Faces | user, account, team, contacts | Profiles, people |
| Weather | sun, cloud, rain, moon | Climate, forecast |
| Others | miscellaneous icons | General purpose |
Visit https://remixicon.com and navigate categories to visually browse icons.
Use English or Chinese keywords. Icons have comprehensive tags for discoverability.
Example searches:
Many icons have numbered variants (home, home-2, home-3) offering stylistic alternatives.
Line (Outlined) Style:
Fill (Filled) Style:
Always provide aria-labels for icon-only elements:
<button aria-label="Search">
<i class="ri-search-line"></i>
</button>For decorative icons, use aria-hidden:
<span aria-hidden="true">
<i class="ri-star-fill"></i>
</span>For web applications:
Font formats by size (smallest to largest):
Use currentColor for flexibility:
.icon {
color: #333; /* Icon inherits this color */
}Maintain 24x24 grid alignment:
/* Good - maintains grid */
.icon { font-size: 24px; }
.icon { font-size: 48px; } /* 24 * 2 */
/* Avoid - breaks grid alignment */
.icon { font-size: 20px; }
.icon { font-size: 30px; }Next.js:
import '@/styles/remixicon.css'; // In _app.js or layout
import { RiHomeLine } from "@remixicon/react";Tailwind CSS:
<i class="ri-home-line text-2xl text-blue-500"></i>CSS Modules:
import styles from './component.module.css';
import 'remixicon/fonts/remixicon.css';
<i className={`ri-home-line ${styles.icon}`}></i>.custom-icon {
font-size: 32px;
line-height: 1;
vertical-align: middle;
}
/* Responsive sizing */
@media (max-width: 768px) {
.custom-icon {
font-size: 24px;
}
}.spinning-icon {
animation: spin 1s linear infinite;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}function IconButton({ iconName, filled = false }) {
const iconClass = `ri-${iconName}-${filled ? 'fill' : 'line'}`;
return <i className={iconClass} />;
}
// Usage
<IconButton iconName="home" />
<IconButton iconName="heart" filled />Install the official RemixIcon plugin for Figma:
Icons can be directly copied from https://remixicon.com to:
Use RemixIcon-Slides for direct integration:
<nav>
<a href="/home">
<i class="ri-home-line"></i>
<span>Home</span>
</a>
<a href="/search">
<i class="ri-search-line"></i>
<span>Search</span>
</a>
<a href="/profile">
<i class="ri-user-line"></i>
<span>Profile</span>
</a>
</nav><button class="btn-primary">
<i class="ri-download-line"></i>
Download
</button>// React example
function StatusIcon({ status }) {
const icons = {
success: <RiCheckboxCircleFill color="green" />,
error: <RiErrorWarningFill color="red" />,
warning: <RiAlertFill color="orange" />,
info: <RiInformationFill color="blue" />
};
return icons[status];
}<div class="input-group">
<i class="ri-search-line"></i>
<input type="text" placeholder="Search..." />
</div>Check:
<link href="remixicon.css" rel="stylesheet" />ri-{name}-{style} (e.g., ri-home-line).ri-* classesSolutions:
ri-lg, ri-2x, etc.font-size propertyline-height: 1 for proper alignmentvertical-align: middle if neededCauses:
Fix: Use multiples of 24px (24, 48, 72, 96) for crisp rendering
b1b2fe0
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.