claude/skills/remix-icon/SKILL.md
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.
npx skillsauth add einverne/dotfiles remix-iconInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
RemixIcon 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 remixicon
CDN (no installation):
<link
href="https://cdn.jsdelivr.net/npm/[email protected]/fonts/remixicon.css"
rel="stylesheet"
/>
React:
npm install @remixicon/react
Vue 3:
npm install @remixicon/vue
Pattern: 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, filled
Basic 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
development
生成符合项目规范的 React 组件。当用户要求创建组件、新建 React 组件或生成组件文件时使用
development
生成符合 Conventional Commits 规范的 Git 提交信息。当用户要求生成提交、创建 commit 或写提交信息时使用
devops
将当前分支部署到测试环境。当用户要求部署、发布到测试或在 staging 环境测试时使用
development
进行系统化的代码审查,检查代码质量、安全性和性能。当用户要求审查代码、review 或检查代码时使用