Beautiful icons for React
1,696 production-ready SVG icons. Tree-shakeable, TypeScript native, zero CSS dependencies. Fully customizable with themes, animations, and weights.
npm install reactifyui-iconsEverything you need
Built for production. Designed for developers.
1,696 Icons
Carefully crafted SVG icons across 60+ categories — arrows, navigation, files, communication, finance, and more.
TypeScript Native
Full type safety with auto-complete for every prop — size, color, weight, theme, animation, transforms and more.
Tree-Shakeable
Each icon is its own module. Your bundler only includes exactly what you import — zero bloat.
30+ Themes
Named design tokens — primary, danger, success, sidebar, brand, and more. One prop to match your design system.
12 Animations
Spin, pulse, bounce, shake, wiggle, float, fade and more. No external CSS — keyframes injected once at runtime.
Accessible
ARIA-friendly by default. title, desc, role, aria-hidden — everything screen readers need, built right in.
Installation
Get up and running in seconds. React 19+ required.
npm install reactifyui-iconsPeer dependencies: react and react-dom version 19+
What's new in v1.1.0
- 36% smaller SVG paths — improved SVGO optimisation pipeline
- Package size reduced from 3.9 MB → 2.8 MB (28% lighter)
- JSDoc hover tooltips on all props and components in your editor
Quick Start
Common patterns to get you moving fast.
import { Home, Search, ArrowLeft } from 'reactifyui-icons'
export default function App() {
return (
<nav>
<Home size={24} />
<Search size={20} color="#4f46e5" />
<ArrowLeft size={24} weight="bold" />
</nav>
)
}import { IconProvider, Home, Search, Bell } from 'reactifyui-icons'
export default function App() {
return (
<IconProvider value={{ size: 20, theme: 'sidebar', strokeWidth: 1.5 }}>
<Home />
<Search />
<Bell />
</IconProvider>
)
}import { AlertCircle, Loader, Star } from 'reactifyui-icons'
<AlertCircle theme="danger" />
<Star theme="highlight" weight="bold" />
<Loader animate={{ type: 'spin', duration: 1 }} />import { ArrowUp, Home } from 'reactifyui-icons'
// Rotate 180° to make an ArrowDown
<ArrowUp rotate={180} />
// Flip horizontally
<Home flip="horizontal" />import { DynamicIcon } from 'reactifyui-icons/dynamic'
// Perfect for CMS-driven UIs or icon pickers
<DynamicIcon name="Home" size={24} theme="primary" />
<DynamicIcon name="Search" fallback={<span>...</span>} />API Reference
Every prop, every type — all in one place.
IconProps
All props are optional unless marked required. Every icon accepts all standard SVGAttributes in addition to these.
| Prop | Type | Default | Description |
|---|---|---|---|
size | number | string | 24 | Width and height of the icon in px |
color | string | currentColor | Icon color — any valid CSS color value |
strokeWidth | number | 1.5 | SVG stroke width |
theme | IconTheme | "default" | Named theme token. Sets color, opacity, and optionally strokeWidth |
weight | IconWeight | "regular" | Stroke weight preset: thin | light | regular | bold | heavy |
preset | string | — | Named preset defined in IconProvider |
state | IconState | "default" | State preset: active | inactive | selected | disabled | hover |
rotate | number | 0 | Rotation in degrees |
flip | "horizontal" | "vertical" | "both" | — | Mirror the icon along an axis |
scale | number | 1 | Scale factor |
translate | { x?: number, y?: number } | — | Offset position in pixels |
transformOrigin | string | "center" | CSS transform-origin for rotate/scale |
animate | IconAnimation | — | Animation config. See animation section below |
title | string | — | Injects <title> inside the SVG for screen readers |
desc | string | — | Injects <desc> for extended description |
decorative | boolean | true | When true, sets aria-hidden and removes role='img' |
className | string | — | Additional CSS class name |
style | CSSProperties | — | Inline style object |
onClick | MouseEventHandler | — | Click handler (and all other SVG event handlers) |
strokeLinecap | string | — | SVG stroke-linecap attribute |
strokeLinejoin | string | — | SVG stroke-linejoin attribute |
fill | string | — | SVG fill attribute |
IconAnimation
Passed to the animate prop.
| Prop | Type | Default | Description |
|---|---|---|---|
type | IconAnimationType | required | Animation type (see table below) |
duration | number | 1 | Duration in seconds |
delay | number | 0 | Delay before animation starts (seconds) |
iterationCount | number | "infinite" | "infinite" | How many times the animation runs |
timingFunction | string | "linear" | CSS timing function: linear | ease | ease-in | ease-out | ease-in-out |
Animation Types
| type | Description |
|---|---|
spin | Continuous clockwise rotation |
spinReverse | Counter-clockwise rotation |
progress | Partial rotation loop (loading arc) |
pulse | Scale in/out pulse |
ping | Ripple/ping effect |
bounce | Vertical bounce |
shake | Horizontal shake |
wiggle | Rotation wiggle |
float | Gentle vertical float |
fade | Opacity fade in/out |
slideUp | Slide up and fade in |
slideDown | Slide down and fade in |
Icon Weights
| weight | strokeWidth | Description |
|---|---|---|
thin | 0.75 | Hairline stroke |
light | 1 | Light stroke |
regular | 1.5 | Default stroke |
bold | 2 | Bold stroke |
heavy | 2.5 | Heaviest stroke |
Themes
30+ named design tokens. Pass any theme name to the theme prop or set a global default via IconProvider.
Core
defaultlightdarkmutedsubtleinvertedBrand
primarysecondaryaccentbrandhighlightSemantic
successwarningdangerinfoneutralAction
activeinactiveselecteddisabledhoverContext
navbarsidebartoolbarfooteroverlayPersonality
calmsoftboldenergeticelegantIcon Library
1,696 icons. Click any icon to copy its import statement.