What is lucide-react?
The lucide-react npm package is a collection of open-source icons for React applications. It provides a wide range of customizable SVG icons that can be easily integrated into React projects.
What are lucide-react's main functionalities?
Basic Icon Usage
This feature allows you to import and use a specific icon from the lucide-react package in your React application. The 'name' prop specifies which icon to render.
import { LucideIcon } from 'lucide-react';
function App() {
return (
<div>
<LucideIcon name="home" />
</div>
);
}
Customizing Icon Size
You can customize the size of the icons by passing the 'size' prop. This example sets the icon size to 48 pixels.
import { LucideIcon } from 'lucide-react';
function App() {
return (
<div>
<LucideIcon name="home" size={48} />
</div>
);
}
Customizing Icon Color
This feature allows you to change the color of the icons by passing the 'color' prop. In this example, the icon color is set to red.
import { LucideIcon } from 'lucide-react';
function App() {
return (
<div>
<LucideIcon name="home" color="red" />
</div>
);
}
Other packages similar to lucide-react
react-icons
The react-icons package provides a comprehensive set of icons from various icon libraries such as Font Awesome, Material Design, and more. It offers a similar level of customization and ease of use as lucide-react, but with a broader selection of icon sets.
fontawesome-svg-core
The @fortawesome/fontawesome-svg-core package is part of the Font Awesome icon library. It provides a wide range of icons and allows for extensive customization, including animation and layering. It is a robust alternative to lucide-react with a large community and extensive documentation.
Lucide React
Implementation of the lucide icon library for react applications.
What is lucide? Read it here.
Installation
yarn add lucide-react
npm install lucide-react
How to use
It's build with ESmodules so it's completely threeshakable.
Each icon can be imported as a react component.
Example
You can pass additional props to adjust the icon.
import { Camera } from 'lucide-react';
const App = () => {
return <Camera color="red" size={48}/>
};
export default App;
Props
name | type | default |
---|
size | Number | 24 |
color | String | currentColor |
strokeWidth | Number | 2 |
Custom props
You can also pass custom props that will be added in the svg as attributes.
const App = () => {
return <Camera fill="red"/>
};
One generic icon component
It is possible to create one generic icon component to load icons.
:warning: Example below importing all EsModules, caution using this example, not recommended when you using bundlers, your application build size will grow strongly.
Icon Component Example
import * as icons from 'lucide-react';
const Icon = ({name, color, size}) => {
const LucideIcon = icons[name];
return <LucideIcon color={color} size={size} />
};
export default Icon;