Skip to main content
Feather is a collection of simply beautiful open-source icons. Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency, and flexibility.

Installation

Feather icons are included with React Icons:
npm install react-icons

Import Path

import { FiHome, FiUser, FiSettings } from 'react-icons/fi';

Library Details

Feather Icons

Icon Count: 287Version: 4.29.1Import: react-icons/fiPrefix: FiLicense: MIT LicenseProject: feathericons.com

Key Features

Simple & Beautiful

Clean, minimalist design that works in any project

Consistent Design

All icons designed on 24x24 grid with 2px stroke

Highly Customizable

Easy to customize size, color, and stroke width

Open Source

MIT licensed and free for any use

Usage Examples

Basic Usage

import { FiHome, FiUser, FiSettings } from 'react-icons/fi';

function App() {
  return (
    <div>
      <FiHome />
      <FiUser />
      <FiSettings />
    </div>
  );
}
import {
  FiHome,
  FiUser,
  FiSettings,
  FiBell,
  FiSearch,
  FiMenu,
  FiX
} from 'react-icons/fi';

function Navigation() {
  const [isOpen, setIsOpen] = React.useState(false);
  
  return (
    <nav>
      <button onClick={() => setIsOpen(!isOpen)}>
        {isOpen ? <FiX /> : <FiMenu />}
      </button>
      
      {isOpen && (
        <div className="nav-menu">
          <a href="/"><FiHome /> Home</a>
          <a href="/profile"><FiUser /> Profile</a>
          <a href="/settings"><FiSettings /> Settings</a>
          <a href="/notifications"><FiBell /> Notifications</a>
          <a href="/search"><FiSearch /> Search</a>
        </div>
      )}
    </nav>
  );
}

Action Buttons

import {
  FiPlus,
  FiEdit,
  FiTrash2,
  FiDownload,
  FiShare2,
  FiSave,
  FiCopy,
  FiExternalLink
} from 'react-icons/fi';

function ActionButtons() {
  return (
    <div className="actions">
      <button className="btn-primary">
        <FiPlus /> Add New
      </button>
      <button className="btn-secondary">
        <FiEdit /> Edit
      </button>
      <button className="btn-danger">
        <FiTrash2 /> Delete
      </button>
      <button className="btn-outline">
        <FiDownload /> Download
      </button>
      <button className="btn-outline">
        <FiShare2 /> Share
      </button>
      <button className="btn-outline">
        <FiSave /> Save
      </button>
    </div>
  );
}

Common Use Cases

import {
  FiMail,
  FiLock,
  FiEye,
  FiEyeOff,
  FiUser,
  FiPhone,
  FiSearch,
  FiCheck,
  FiAlertCircle
} from 'react-icons/fi';

function ContactForm() {
  const [showPassword, setShowPassword] = React.useState(false);
  
  return (
    <form>
      <div className="form-group">
        <label>
          <FiUser /> Full Name
        </label>
        <input type="text" placeholder="John Doe" />
      </div>
      
      <div className="form-group">
        <label>
          <FiMail /> Email
        </label>
        <div className="input-with-icon">
          <input 
            type="email" 
            placeholder="john@example.com" 
          />
          <FiCheck className="text-success" />
        </div>
      </div>
      
      <div className="form-group">
        <label>
          <FiPhone /> Phone
        </label>
        <input type="tel" placeholder="+1 (555) 123-4567" />
      </div>
      
      <div className="form-group">
        <label>
          <FiLock /> Password
        </label>
        <div className="input-with-icon">
          <input 
            type={showPassword ? 'text' : 'password'}
            placeholder="Enter password"
          />
          <button 
            type="button"
            onClick={() => setShowPassword(!showPassword)}
          >
            {showPassword ? <FiEyeOff /> : <FiEye />}
          </button>
        </div>
      </div>
      
      <button type="submit" className="btn-primary">
        <FiCheck /> Submit
      </button>
    </form>
  );
}

Styling Feather Icons

Size and Color

import { FiHeart } from 'react-icons/fi';
import { IconContext } from 'react-icons';

function StyledIcons() {
  return (
    <div>
      {/* Inline styles */}
      <FiHeart 
        style={{ 
          fontSize: '32px', 
          color: '#e74c3c',
          strokeWidth: 1.5 
        }} 
      />
      
      {/* CSS classes (Tailwind) */}
      <FiHeart className="w-8 h-8 text-red-500" />
      
      {/* IconContext */}
      <IconContext.Provider 
        value={{ 
          size: '1.5em',
          color: '#3498db',
          className: 'feather-icon'
        }}
      >
        <FiHeart />
      </IconContext.Provider>
    </div>
  );
}

Custom Stroke Width

.feather-icon {
  stroke-width: 1.5;
}

.feather-icon-thin {
  stroke-width: 1;
}

.feather-icon-bold {
  stroke-width: 3;
}

Animations

import { FiRotateCw, FiHeart } from 'react-icons/fi';

function AnimatedIcons() {
  return (
    <div>
      {/* Spinning loader */}
      <FiRotateCw className="animate-spin" />
      
      {/* Pulse animation */}
      <FiHeart className="animate-pulse text-red-500" />
    </div>
  );
}

Icon Naming Convention

Feather icons use the Fi prefix followed by the icon name in PascalCase:
  • homeFiHome
  • userFiUser
  • arrow-rightFiArrowRight
  • trash-2FiTrash2
Some icons have numbered variants (e.g., FiTrash2, FiShare2) to indicate design variations.
  • FiHome - Home
  • FiMenu - Menu/hamburger
  • FiX - Close/X
  • FiChevronDown - Dropdown
  • FiArrowLeft - Back arrow
  • FiSearch - Search
  • FiGrid - Dashboard/grid

Actions

  • FiPlus - Add
  • FiEdit / FiEdit2 / FiEdit3 - Edit variants
  • FiTrash / FiTrash2 - Delete
  • FiDownload - Download
  • FiUpload - Upload
  • FiShare / FiShare2 - Share
  • FiSave - Save
  • FiCopy - Copy

Status

  • FiCheckCircle - Success
  • FiAlertTriangle - Warning
  • FiInfo - Info
  • FiAlertCircle - Error
  • FiCheck - Checkmark
  • FiX - Error/close

Content

  • FiHeart - Like/favorite
  • FiStar - Rating
  • FiBookmark - Save
  • FiMessageCircle - Comment
  • FiMail - Email
  • FiPhone - Phone

Files

  • FiFile - Generic file
  • FiFileText - Document
  • FiFolder - Folder
  • FiImage - Image
  • FiVideo - Video
  • FiMusic - Audio

Design Philosophy

Feather icons follow these design principles:
  1. Simplicity: Each icon is reduced to its minimal form
  2. Consistency: 24x24 grid with 2px stroke width
  3. Readability: Clear and legible at small sizes
  4. Flexibility: Easy to customize and adapt

Use Cases

Feather icons are perfect for:
  • Minimal/Modern UIs: Clean design aesthetic
  • Dashboard interfaces: Professional look
  • Mobile applications: Clear at small sizes
  • SaaS products: Consistent and professional
  • Landing pages: Simple and elegant

Alternative: Lucide Icons

Lucide is a community-maintained fork of Feather with more icons:
import { LuHome, LuUser, LuSettings } from 'react-icons/lu';

function App() {
  return (
    <div>
      <LuHome />
      <LuUser />
      <LuSettings />
    </div>
  );
}
Lucide (lu) includes all Feather icons plus 1,200+ additional icons with the same design style.

Resources

Feather Icons Website

Browse and search all Feather icons

GitHub Repository

View source code and report issues

Lucide Icons

Extended version with 1,200+ icons

All Libraries

Explore other icon libraries