ReactifyUI IconsReactifyUI IconsGitHub
v1.1.0 — Free & Open Source

Beautiful icons for React

1,696 production-ready SVG icons. Tree-shakeable, TypeScript native, zero CSS dependencies. Fully customizable with themes, animations, and weights.

1,696
Icons
60+
Categories
30+
Themes
12
Animations
$npm install reactifyui-icons
Browse Icons →
MIT LicensedTypeScriptTree-ShakeableZero CSSReact 19+28% Lighter

Everything 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-icons

Peer 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.

Basic usage
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>
  )
}
Global defaults with IconProvider
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>
  )
}
Themes, weights & animations
import { AlertCircle, Loader, Star } from 'reactifyui-icons'

<AlertCircle theme="danger" />
<Star theme="highlight" weight="bold" />
<Loader animate={{ type: 'spin', duration: 1 }} />
Transforms
import { ArrowUp, Home } from 'reactifyui-icons'

// Rotate 180° to make an ArrowDown
<ArrowUp rotate={180} />

// Flip horizontally
<Home flip="horizontal" />
DynamicIcon — load by name at runtime
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.

PropTypeDefaultDescription
sizenumber | string24Width and height of the icon in px
colorstringcurrentColorIcon color — any valid CSS color value
strokeWidthnumber1.5SVG stroke width
themeIconTheme"default"Named theme token. Sets color, opacity, and optionally strokeWidth
weightIconWeight"regular"Stroke weight preset: thin | light | regular | bold | heavy
presetstringNamed preset defined in IconProvider
stateIconState"default"State preset: active | inactive | selected | disabled | hover
rotatenumber0Rotation in degrees
flip"horizontal" | "vertical" | "both"Mirror the icon along an axis
scalenumber1Scale factor
translate{ x?: number, y?: number }Offset position in pixels
transformOriginstring"center"CSS transform-origin for rotate/scale
animateIconAnimationAnimation config. See animation section below
titlestringInjects <title> inside the SVG for screen readers
descstringInjects <desc> for extended description
decorativebooleantrueWhen true, sets aria-hidden and removes role='img'
classNamestringAdditional CSS class name
styleCSSPropertiesInline style object
onClickMouseEventHandlerClick handler (and all other SVG event handlers)
strokeLinecapstringSVG stroke-linecap attribute
strokeLinejoinstringSVG stroke-linejoin attribute
fillstringSVG fill attribute

IconAnimation

Passed to the animate prop.

PropTypeDefaultDescription
typeIconAnimationTyperequiredAnimation type (see table below)
durationnumber1Duration in seconds
delaynumber0Delay before animation starts (seconds)
iterationCountnumber | "infinite""infinite"How many times the animation runs
timingFunctionstring"linear"CSS timing function: linear | ease | ease-in | ease-out | ease-in-out

Animation Types

typeDescription
spinContinuous clockwise rotation
spinReverseCounter-clockwise rotation
progressPartial rotation loop (loading arc)
pulseScale in/out pulse
pingRipple/ping effect
bounceVertical bounce
shakeHorizontal shake
wiggleRotation wiggle
floatGentle vertical float
fadeOpacity fade in/out
slideUpSlide up and fade in
slideDownSlide down and fade in

Icon Weights

weightstrokeWidthDescription
thin0.75Hairline stroke
light1Light stroke
regular1.5Default stroke
bold2Bold stroke
heavy2.5Heaviest stroke

Themes

30+ named design tokens. Pass any theme name to the theme prop or set a global default via IconProvider.

<AlertCircle theme="danger" />

Core

default
light
dark
muted
subtle
inverted

Brand

primary
secondary
accent
brand
highlight

Semantic

success
warning
danger
info
neutral

Action

active
inactive
selected
disabled
hover

Context

navbar
sidebar
toolbar
footer
overlay

Personality

calm
soft
bold
energetic
elegant

Icon Library

1,696 icons. Click any icon to copy its import statement.

1,696 icons