# Lucide Implementation of the lucide icon library for web applications. ## Installation ### Package Managers ```sh npm install lucide ``` or ```sh yarn add lucide ``` ### CDN ```html ``` ## Usage ### With unpkg Here is a complete example with unpkg ```html ``` ### With ESModules To reduce bundle size, lucide is built to be fully tree-shakable. The `createIcons` function will search for HTMLElements with the attribute `data-lucide` and replace it with the svg from the given icon name. ```html ``` ```js import { createIcons, icons } from 'lucide'; // Caution, this will import all the icons and bundle them. createIcons({ icons }); // Recommended way, to include only the icons you need. import { createIcons, Menu, ArrowRight, Globe } from 'lucide'; createIcons({ icons: { Menu, ArrowRight, Globe } }); ``` #### Additional Options In the `createIcons` function you can pass some extra parameters to adjust the `nameAttr` or add custom attributes like for example classes. Here is a full example: ```js import { createIcons } from 'lucide'; createIcons({ attrs: { class: ['my-custom-class', 'icon'], 'stroke-width': 1, stroke: '#333' }, nameAttr: 'data-lucide' // attribute for the icon name. }); ``` #### Treeshake the library, only use the icons you use ```js import { createIcons, Menu, ArrowRight, Globe } from 'lucide'; createIcons({ icons: { Menu, ArrowRight, Globe } }); ``` #### Custom Element binding ```js import { createElement, Menu } from 'lucide'; const menuIcon = createElement(Menu); // Returns HTMLElement (svg) // set custom attributes with browser native functions menuIcon.setAttribute('stroke', '#333'); menuIcon.classList.add('my-icon-class'); // Append HTMLElement in webpage const myApp = document.getElementById('app'); myApp.appendChild(menuIcon); ```