marcus/marcus-skills/roc-icons

Claude Code and agent skill by marcus/marcus-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Use Roc icon library (@marcus/roc) in projects. Covers React, Svelte, and HTML sprite usage, all 4 styles, and migration from other icon sets.

Install

npx vskill@latest install marcus/marcus-skills/roc-icons

SKILL.md

Roc Icons (@marcus/roc)

Handcrafted SVG icon library with 416 icons across 4 styles. Use this skill when adding, replacing, or configuring icons in any project.

Browse all icons: https://roc.haplab.com

Install

bash
npm install @marcus/roc

Requires Node.js 22+.

Styles

StyleImport pathDescriptionUse when
outline*/outlineRounded strokes, 1.5pxDefault for most UI
solid*/solidFilled shapesActive/selected states, nav bars
duotone*/duotoneTinted bg + outline strokesFeature highlights, dashboards
sharp*/sharpAngular, miter joins, butt capsTechnical/developer UIs

Pick one style per context. Don't mix outline and solid in the same toolbar.

React

jsx
import { Home, Bell, Search } from '@marcus/roc/react/outline';
<Home size={20} className="text-gray-500" />
<Bell size={20} />
<Search size={16} /> {/* stroke auto-adjusts to 1.75 at <=16px */}
Import patterns
jsx
// Single style barrel import
import { Home, Bell } from '@marcus/roc/react/outline';
import { Home, Bell } from '@marcus/roc/react/solid';
import { Home, Bell } from '@marcus/roc/react/duotone';
import { Home, Bell } from '@marcus/roc/react/sharp';
Props
PropTypeDefaultNotes
sizenumber24Width and height in px
strokeWidthnumberauto1.75 at <=16px, 1.5 at 20px+. Only on stroked styles (outline, duotone, sharp).
classNamestring—CSS class
...restSVGProps—All standard SVG attributes passed through

Svelte

svelte
<script>
import Home from '@marcus/roc/svelte/outline/Home.svelte';
import Bell from '@marcus/roc/svelte/solid/Bell.svelte';
</script>
<Home size={24} class="icon" />
<Bell size={20} />
Import patterns
js
// Individual component (recommended for Svelte)
import Home from '@marcus/roc/svelte/outline/Home.svelte';
// Barrel import (works but larger bundle)
import { Home, Bell } from '@marcus/roc/svelte/outline';

Component names are PascalCase: arrow-left.svg becomes ArrowLeft.svelte.

HTML Sprite

Copy dist/sprite.svg to your public directory, then:

html
<svg width="24" height="24" class="text-gray-700">
<use href="/sprite.svg#home-outline" />
</svg>

Symbol IDs: {name}-{style} (e.g., bell-solid, search-duotone, home-sharp).

Duotone Setup

Duotone icons require a CSS custom property. Add once globally:

css
:root {
--color-duotone-fill: rgba(94, 106, 210, 0.15);
}

Adjust the color/opacity to match your design system. Common values:

css
/* Blue tint (default) */
--color-duotone-fill: rgba(94, 106, 210, 0.15);
/* Brand-colored */
--color-duotone-fill: rgba(var(--brand-rgb), 0.12);
/* Neutral */
--color-duotone-fill: rgba(0, 0, 0, 0.08);

Metadata

js
import metadata from '@marcus/roc/metadata';
// { icons: [...], categories: [...], total: 416 }

Use for building icon pickers, search, or documentation.

Available Icons

416 icons across 18 categories. See references/icon-catalog.md for the full list.

Categories: Navigation, Data, Communication, People, System, Brand, Actions, Files, Media, Weather, Transport, Commerce, Development, Devices, Objects, Food, Gaming, Nature

Common icons by use case:

Use caseIcons
Navigationhome, arrow-*, chevron-*, caret-*, compass, map, globe
Forms & inputsearch, check, x, plus, minus, eye, eye-off, pencil
CRUD actionsplus, pencil, trash, copy, download, upload, share
Auth & securitylock, unlock, key, shield, shield-check, fingerprint, sign-out
Notificationsbell, mail, inbox, send, message-circle, chat
Media controlsplay, pause, stop, skip-forward, skip-back, volume, volume-off
Status & feedbackcheck-circle, x-circle, alert-triangle, alert-circle, info, help-circle
Data vizchart, pie-chart, line-chart, bar-chart, trending-up, trending-down, activity
E-commerceshopping-cart, shopping-bag, credit-card, dollar, euro, tag, receipt
Social/Brandgithub, twitter-logo, discord-logo, slack-logo, linkedin-logo + 30 more

Migration from Other Libraries

From Lucide / Heroicons / Phosphor
  1. Replace the import source:
jsx
// Before (Lucide)
import { Home, Bell } from 'lucide-react';
// After (Roc)
import { Home, Bell } from '@marcus/roc/react/outline';
  1. Props map directly: size, strokeWidth, className all work the same.
  1. Name differences: most icon names match Lucide conventions. Check the icon catalog for exact names. Key differences:
  • Kebab-case filenames: arrow-left not arrowLeft
  • PascalCase components: ArrowLeft (same as Lucide)
  • Brand icons use -logo suffix: github (icon), twitter-logo, discord-logo
From Font Awesome

Replace <i> tags with components:

jsx
// Before
<i className="fa-solid fa-house" />
// After
import { Home } from '@marcus/roc/react/solid';
<Home size={20} />
Svelte migration
svelte
<!-- Before (any icon lib) -->
<Icon name="home" />
<!-- After (Roc) -->
<script>
import Home from '@marcus/roc/svelte/outline/Home.svelte';
</script>
<Home size={24} />

Checklist for Migration

  • [ ] Install @marcus/roc
  • [ ] Remove old icon package from dependencies
  • [ ] Find-and-replace imports (match old names to Roc names via catalog)
  • [ ] Add duotone CSS variable if using duotone style
  • [ ] Verify icon rendering at target sizes (16, 20, 24)
  • [ ] Check that currentColor inheritance works with your color system

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/marcus/marcus-skills/roc-icons/badge)](https://verified-skill.com/skills/marcus/marcus-skills/roc-icons)

Something wrong with this skill or its page? Tell us.