React File Icon Component

1.6.0 · active · verified Tue Apr 21

react-file-icon is a React component library designed to render scalable vector graphic (SVG) icons representing various file types. It provides a `FileIcon` component that can display an icon based on a file extension, with extensive customization options for colors, gradients, folds, and labels. The library is currently on version 1.6.0 and shows an active development cadence, with several minor releases supporting newer React versions (up to React 19) and improving bundle size through dependency swaps (e.g., `colord` replacing `tinycolor2`). Key differentiators include its rich set of customizable props, an exported `defaultStyles` object for common file extensions, and the use of modern React features like `React.useId` for unique ID generation, ensuring efficient and accessible icon rendering.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to render `FileIcon` components for various file types, using both the provided `defaultStyles` and custom props for styling.

import React from 'react';
import { FileIcon, defaultStyles } from 'react-file-icon';

const MyFileDisplay = () => {
  return (
    <div style={{ display: 'flex', gap: '20px', padding: '20px' }}>
      <div style={{ width: '100px', height: '100px' }}>
        <FileIcon extension="pdf" {...defaultStyles.pdf} />
      </div>
      <div style={{ width: '100px', height: '100px' }}>
        <FileIcon extension="docx" {...defaultStyles.docx} />
      </div>
      <div style={{ width: '100px', height: '100px' }}>
        <FileIcon extension="png" {...defaultStyles.png} />
      </div>
      <div style={{ width: '100px', height: '100px' }}>
        <FileIcon 
          extension="js" 
          type="code" 
          color="#f7df1e" 
          glyphColor="#333" 
          labelColor="#333" 
          labelTextColor="white"
          labelUppercase
        />
      </div>
    </div>
  );
};

export default MyFileDisplay;

view raw JSON →