* Small adjustments
* Format code
* format code
* Remove default value
* format code
* update yml file
* Format code
* Update docs/.vitepress/theme/components/base/Input.vue
Co-authored-by: Karsa <contact@karsa.org>
* Add extra check if null or undefined
---------
Co-authored-by: Karsa <contact@karsa.org>
* Fix code sample for vanilla JS
The .append method of elements takes plain text, not HTML. This updates the code to use .insertAdjacentHTML instead.
* Update createLabCodeExamples.ts
* fix(site): update createCodeExamples.ts vanilla JS code example
* Update createLabCodeExamples.ts
* Update createCodeExamples.ts
* Update createCodeExamples.ts
---------
Co-authored-by: Karsa <contact@karsa.org>
* Added icons/layers-plus.svg
* Added icons/layers-plus.json
* Update layers-plus.json
fix: updated contributors to reflect actual author
* fix(icon): update layers-plus icon to follow size and spacing guidelines
* fix(icon): adjust layers-plus plus sign alignment and slope
* fix(icon): apply optimized version from reviewer to align on grid and spacing
* chore: add karsa-mistmere as contributor
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* feat(site): added extended no results placeholder with brand icon stop words
* feat(site): fix grammatical error
* feat: extract brand stopwords & update github action to use these stopwords
* Apply suggestions from code review
Co-authored-by: Jakob Guddas <github@jguddas.de>
* feat: only use icon name section for closing brand request issues
* feat: added mcp brand stopword
---------
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Added icons/estimated-weight.svg
* Added icons/estimated-weight.json
* Update icons/estimated-weight.json
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Change name + reshape tilde
* Change name to weight-tilde
* Update weight-tilde.json
removed weight and tilde, since they're part of the name
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karsa <contact@karsa.org>
* Update square-scissors to match optical volume
* Update square-bottom-dashed-scissors to match optical volume
---------
Co-authored-by: Karsa <contact@karsa.org>
* feat(icon): add book-search icon
* fix(icon): fix vertical alignment of `book-search` icon .
- Fix the vertical alignment of the icon in the 24x24 grid of pixels
- It had 3 columns on the left side and 1 on the right side, now made 2 on both sides
* fix: remove extra tag "book search"
* fix(docs): correct package name and description for Flutter package (#3701)
* Revert "fix(docs): correct package naming in Packages section (#3701)"
This reverts commit c9b738b4af1ffc114bf7e8e2b81754a54b118b97.
* fix: correct package name from lucide-lustre to lucide_lustre and fix typo (lustre → flutter)
* fix(icons/file): add rounding to file fold corners & apply this change to other icons with folds.
* fix(icons/file): update file-digit.svg with the correct version
* fix(icons/file): update file-key for better centre of gravity
* fix(icons/file): optimized & formatted icons
* fix(icons/file): increase file-type-corner T size to better match other addons
* feat(docs): increase size of braces & rename file-json to file-braces
* refactor(icons): further increase size of T in file-type-corner.svg
* refactor(icons): upgrade file-digit to match binary
* refactor(icons): upgrade file-check-corner to match other operational icons (plus/minus/x)
* Update file-scan.svg
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Add `motorbike` and `dirtbike` icons
* Renamed `dirtbike` to `dirt-bike`
* Deleted `dirt-bike` in order to move it to a separate PR
* Update motorbike.svg
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* fix(icons): increase base height of list/text and derived icons for more consistent optical volume
* refactor(icons): upgrade list-chevrons-down-up
feat(icons): add list-chevrons-up-down
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Discussion - GitHub's discussions section uses this type of icon
* Interview - e.g. a category of content, alongside "article", "video", "podcast"
* Debate - in a similar vein to "interview"
* docs(): added official statement on brand logos in Lucide
* docs(): fix accidental typo from adding link
* docs(): migrating some stuff to a more accessible plain language format
* Update .github/ISSUE_TEMPLATE/01_icon_request.yml
* Update .github/ISSUE_TEMPLATE/01_icon_request.yml
Co-authored-by: Jakob Guddas <github@jguddas.de>
* Update README.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update .github/pull_request_template.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat(SvgPreview): add features from lucide studio
* Update docs/.vitepress/lib/SvgPreview/index.tsx
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Fixes#3359
Throwing an error in readAllMetadata now to ensure this error can't happen again in the future.
The error was caused by this script being moved to a different dir, but the relative url not being updated, causing no icons to be found.
* docs(lucide-react): small changes for DynamicIcon
Changed the sentence structure slightly for DynamicIcon to be easier to understand.
* Update lucide-react.md
* Add gpt tags
* Add github actions flow
* Add link so people can use the chat
* Fix workflow
* Add openai dep
* Add actions core
* Try gh pr review in actions
* Try with octokit
* Remove changed files part
* Try with createReview function
* Try this
* fix broken json file
* Turn on review by gh action
* Try this
* Update icons/trash.json
* Update the runner
* Remove added tags
* Add more checks
* Added icons/tool-case.svg
* Added icons/tool-case.json
* Update tool-case.svg
slightly alter the icon SVG code to match with the "archive" icon
* Update tool-case.svg
* Optimized version of tool-case.svg
* Update icons/tool-case.json
Co-authored-by: Jakob Guddas <github@jguddas.de>
* Update tool-case.svg
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
* Update base `clock`-icons
Replace `<polyline/>`s with `<path/>`s, and adjust the angles of the 2-, 4-, 8- and 10 o'clock hour hands to better match the 1-, 5-, 7- and 11 o'clock hands
* Update clocks with symbols
Update `clock-arrow-down`, `clock-arrow-up` and `clock-alert` to match the hand angle of `clock`
Also align the exclamation mark of `clock-alert` to the pixel grid
* Update small clock faces
Make the clock faces in `calendar-clock`, `file-clock`, `folder-clock` and `watch` consistent with each other, and resolve some two-pixel-gap violations.
* Align the tips of all hours hands on large clocks to the grid
* Add self-attribution where appropriate
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Added icons/wavy-line.svg
* Added icons/wavy-line.json
* Updated icons/wavy-line.json
* Updated icons/wavy-line.json
* Rename wavy-line.json to line-curvy.json
* Rename wavy-line.svg to line-curvy.svg
* Rename line-curvy.json to line-swirly.json
* Rename line-curvy.svg to line-swirly.svg
* Rename line-swirly.json to line-squiggle.json
* Rename line-swirly.svg to line-squiggle.svg
* Align the icon in the center
* Update icon visually
* Circle the loop of the icon
* Add contributor
* Add `"annotate"` as tag
After seeing Google Chromebook the same icon, it says 'annotate'. I add it here as a tag.
* Update line-squiggle.json
* Update line-squiggle.json
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Reordered SVG paths so the shaft renders after the arrowhead, eliminating visual gaps due to stroke rendering.
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
- Reduce initial icon render from 1600 to 120-200 icons
- Implement dynamic initialGridItems calculation based on viewport
- Use slice() instead of splice() to avoid array mutation
- Fix NoResults condition to use searchResults.length
- Load time improved from (50-60%+ improvement)
- Fix Switch component to properly handle v-model binding
- Add absoluteStrokeWidth to customizingActive computed property
- Ensure absoluteStrokeWidth resets correctly in both Home and Sidebar customizers
Resolves issue where absoluteStrokeWidth toggle remained enabled
after clicking Reset button, causing confusion with bold icons.
Fixes#2984
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Optimised `phone-` icons
* fix(site): remove studio link from navbar (#3166)
* Redraw handset to better align arcs still, and replace some with straight lines
* Align ring lines
---------
Co-authored-by: Jakob Guddas <github@jguddas.de>
* Changed resetStyle to reflect changes of button on absolutestrokewidth
* removed nextTick
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* add columns-cog icon and metadata
* chore: rename columns-cog to columns-3-cog as per maintainer request
* added contributors from the icon this is based on
* Remove not existing category
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* add electric truck icon
* update json file
* small change to svg
* update icon with zap in the middle
* move icon one pixel down to align with original truck icon
* use new truck as reference
* Update truck-electric.svg
* Update truck-electric.json
* Update truck-electric.svg
* Add contributor AnnaSasDev to truck-electric.json
---------
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Added icons: pathfinder (unite, minus, exclude, intersect)
* fix(icons): Altered pathfinder icon names to be more descriptive
* fix: Updated subtraction.svg to replace curves with of arcs
Co-authored-by: Jakob Guddas <github@jguddas.de>
* fix(icons): Updated names to be squares-* instead of shape-*
recomended by jguddas
* fix(shapes-unite): Arcified corners & added union tag
* fix(shapes-intersect): Replacing curves with arcs
Done by jguddas
* update(squares-exclude): added extra tags invert & xor
* fix(squares-intersect): Adjusted the look to make it more clear what it's use case is
* fix(icons): Accidentally swapped out the wrong icon for previous commit
* fix(squares-intersect): fixed filename
* fix(squares-exclude): Altered icon to look better under low resolution
Co-Authored-By: Jamie Law <956081+jamiemlaw@users.noreply.github.com>
* fix(squares-subtract): Updated name to fit naming convention better
Co-Authored-By: Jamie Law <956081+jamiemlaw@users.noreply.github.com>
* fix(sqaures-intersect): Removed certain curves for consistency
* fix(squares-exclude): Fixed arcs & arcified corners
Co-authored-by: Jakob Guddas <github@jguddas.de>
* fix(squares-exclude): icon was committed with wrong filename
* update(squares-exclude): updated design to be more readable
Co-Authored-By: Jakob Guddas <25524993+jguddas@users.noreply.github.com>
* fix(tags.json): Reverted accidental prettier alterations
* fix(squares-*.svg): enlarged squares to be more consistant
* fix(squares-*): added karsa-mistmere as a contributor
* fix(squares-subtract): fixed accidental copy made called squares-minus
* fix(squares-subtract): fixed rounding amount on some arcs
---------
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Jamie Law <956081+jamiemlaw@users.noreply.github.com>
Co-authored-by: Jakob Guddas <25524993+jguddas@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Add spline-pointer icon
* Add proper attribution to contributors
* Fix spline-pointer
* Reduce amount of tags and add tools category
* Run SVG to lucide studio
* add saudi riyal sign
* update name from sign to symbol
* fix stroke and fill issue
Co-authored-by: Jakob Guddas <github@jguddas.de>
* removed symbol from the name
---------
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Lucide svelte (#1)
* Update peerDependencies to support Svelte 5
* Bump svelte version
* Bump @testing-library/svelte version
* Remove alias in vitest.config.ts that causes tests to fail due to deprecated svelte/internal API
* Convert to svelte 5 syntax
* Bump vite & @sveltejs/vite-plugin-svelte version
* Fix error during render when children prop is missing & fix components being mounted on the server during tests
* Update test snapshots to reflect the differences in the html generated by svelte 5
* Convert class attribute to new array syntax with built-in clsx
* Convert export template to svelte 5 syntax
* Move svelte 5 to separate directory
* Update snapshots
* Update docs
* fix(icon): change variable declaration from let to const in Icon.svelte
* Lucide svelte (#1) (#2727)
* Update peerDependencies to support Svelte 5
* Bump svelte version
* Bump @testing-library/svelte version
* Remove alias in vitest.config.ts that causes tests to fail due to deprecated svelte/internal API
* Convert to svelte 5 syntax
* Bump vite & @sveltejs/vite-plugin-svelte version
* Fix error during render when children prop is missing & fix components being mounted on the server during tests
* Update test snapshots to reflect the differences in the html generated by svelte 5
* Convert class attribute to new array syntax with built-in clsx
* Convert export template to svelte 5 syntax
* Revert changes in lucide-svelte library
* Update package lock
* Update test files
* Formatting
* Update clean command
* Fix build
* Update packages
* update deps
* Fix export script
* Format code
* Revert version number change in package json
* Update workflows
---------
Co-authored-by: Aurélien Richard <56389380+aurelienrichard@users.noreply.github.com>
* adds border-radius
* Update and rename border-radius.svg to square-round-corner.svg
* Update and rename border-radius.json to square-round-corner.json
---------
Co-authored-by: Jakob Guddas <github@jguddas.de>
* feat(docs): Add deprecated badge for icons with deprecation status
* fix: resolve formatting issues in types.ts to pass Prettier checks
* Small adjustments
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
The phrase "personally use" is grammatically incorrect. The correct term is "personal use" because "use" is a noun in this context, and "personal" is the adjective that modifies it.
* Fix heading on guide index
Fixes the heading level of a section on the index page of the guide.
* Update docs/guide/index.md
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Added icons/list-filter-plus.svg
* Added icons/list-filter-plus.json
* Move plus to the top line
* Optimize top line and plus gap
* Grid alignment and gap fixes
* Fix gap violation on middle line
* Optimize gap between plus and middle line
* Fix pixel perfect
* Add category `layout` to metadata
* Add reflex to showcase
* flip colors as were wrong way around
* moved to used in section
---------
Co-authored-by: Tom Gotsman <tomgotsman@Toms-MacBook-Pro.local>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Svelte 5 specifics including removing the "ComponentType" typescript type as components are now static.
Also merged some imports into one-liners as we don't need to import each icon in a single line.
* Added tiolet icon
* fixed typo lol
* fixed formatting with SVG
* fixed typo on tags for Toilet
* Updated icon to add more arcs by jguddas
* Updated toilet json to work with linter
* revert teamData.json
* fix(teamData): Reverted accidental changes from Prettier
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
* Update bath.svg
Replaced `<line/>` elements with `<path/>`s and refined the curve of the shower head to use fewer path segments and have a larger radius
* Update bath.json
---------
Co-authored-by: Jakob Guddas <github@jguddas.de>
* Add `air-pressure` icon
And slightly modified the `wind` icon to match
* Rename `air-pressure` to `wind-arrow-down`
And update the JSON file with contributors to the original `wind` icon and add `pressure` as a tag
* Lucidified pizza.svg
Rounded the corners of the pizza slice and spaced out the pepperoni to address the two-pixel-gap rule
* Update pizza.json
* Update pizza.svg
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Add trim to merge classes
* Add trim to merge classes
* Adds extra utils check
* Update packages/shared/src/utils.ts
Co-authored-by: Max Malm <benjick@dumfan.net>
---------
Co-authored-by: Max Malm <benjick@dumfan.net>
* Added icons/calendar-single.svg
* Added icons/calendar-single.json
* Adjust calendar position
Adjust calendar position based on original
* Update name
* Add tag 1
* Optimize 1 path
* Add first tag
---------
Co-authored-by: peteruithoven <peter@metabolic.nl>
Before submitting an icon request check if it has already been requested. If there is an open request, please add a 👍.
**Important note**: No new brand logos are allowed, see https://github.com/lucide-icons/lucide/issues/670.
Existing brand icons will also be phased out. For brand icons, consider using https://simpleicons.org, which offers purpose-built SVGs that are also on a 24×24px grid.
> [!CAUTION]
> New brand logos are **not** allowed, see our official statement: https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md.
>
> Existing brand icons are being phased out. Consider using https://simpleicons.org, which offers purpose-built SVGs that are also on a 24×24px grid.
- type:input
id:name
attributes:
@@ -41,9 +43,9 @@ body:
required:true
- label:I have searched existing icons to make sure it does not already exist and I didn't find any.
required:true
- label:I am not requesting a brand logo and the art is not protected by copyright.
- label:I am not requesting a brand logo and the art is not protected by copyright, see more at https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md
required:true
- label:I am not requesting an icon that includes religious, political imagery or hate symbols.
- label:I am not requesting an icon that includes religious, war/violence related, political imagery or hate symbols.
required:true
- label:I have provided appropriate use cases for the icon(s) requested.
gh issue close ${{ github.event.issue.number }} --reason "not planned" --comment "This looks like a duplicate, use the [search](https://github.com/lucide-icons/lucide/issues?q=is%3Aissue+$PHRASE) to find similar issues.
jq -r 'to_entries[] | "\(.key) \(.value)"' brand-stopwords.json | while read -r KEY VALUE; do
SAFE_KEY=$(printf '%s\n' "$KEY" | sed 's/[][\.^$*]/\\&/g')
SAFE_VALUE=$(printf '%s\n' "$VALUE" | sed 's/[][\.^$*]/\\&/g')
Read more about brand guideline rules at [We're not accepting new Brand icons #670](https://github.com/lucide-icons/lucide/issues/670).
if echo "$ISSUE_TITLE" | grep -iqE "$SAFE_KEY|$SAFE_VALUE" || \
--comment "It looks like this request is about **${VALUE}**, which is a brand logo.
Lucide **does not accept** brand logos, and we do not plan to add them in the future. This is due to a combination of **legal restrictions**, **design consistency concerns**, and **practical maintenance reasons**.
[Click here to read our official statement about brand logos in Lucide.](./BRAND_LOGOS_STATEMENT.md)
You can [search for similar issues.](https://github.com/lucide-icons/lucide/issues?q=is%3Aissue+${VALUE})
We’re always happy to help on [Discord](https://discord.gg/EH6nSts)."
Always happy to help on [Discord](https://discord.gg/EH6nSts)."
# Our Official Stance on Including Brand Logos in Lucide
## TL;DR
Lucide **does not accept** brand logos, and we do not plan to add them in the future.
This is due to a combination of **legal restrictions**, **design consistency concerns**, and **practical maintenance reasons**.
If you need brand logos, we recommend [Simple Icons](https://simpleicons.org/), which provides an extensive, legally safer collection of brand marks.
---
## 1. Historical Context
This is not a new debate — other icon sets have gone through the same discussion:
- **Material Design Icons** [deprecated all brand icons](https://github.com/Templarian/MaterialDesign/issues/6602) because they didn't fit the style, didn't work well in one color, and often looked out of place in a 24×24px grid.
- **Feather Icons** [came to the same conclusion](https://github.com/feathericons/feather/issues/763): brand logos have their own style, and forcing them into another inevitably leads to aesthetic compromises.
- **Lucide** learned from these examples — we'd rather focus on making a consistent set of non-brand icons that all work together.
## 2. Legal Considerations
Most brand logos:
- Are **protected by trademark or copyright**.
- Have **strict rules** for how they can be used (colors, spacing, proportions, etc.).
- **Don't allow modification** — but we'd have to change them to fit Lucide's style.
This means adding them could:
1. Break copyright or trademark law.
2. Make both you and the Lucide project legally responsible.
3. Force us to review every new request one by one for legal issues — something we simply can't do.
> **Note:** Simple Icons avoids this by keeping logos exactly as the brand provides them — though even they sometimes face [legal challenges](https://github.com/simple-icons/simple-icons/issues/11236).
## 3. Design & Consistency
Lucide is all about **visual consistency**.
Adding brand logos would:
- Break [our own design rules](https://lucide.dev/guide/design/icon-design-guide#icon-design-principles) for shapes, proportions, and stroke.
- Mix two fundamentally different categories of graphics (pictograms vs. corporate logos).
- Create a library where a subset of icons will always look "out of place".
If the logos are not in Lucide's style, why include them in Lucide at all? Better to use them from a dedicated brand icon source.
## 4. Maintenance Burden
Even with our current **"no brand icon requests"** policy, people still request them regularly.
Having any brand icons in the set:
- Makes people think we might add more in the future.
- Leads to repeated requests and the same conversations over and over.
- Wastes maintainer time redirecting people to the same explanation.
Removing them entirely solves this problem.
## 5. Recommended Alternatives
If you need brand icons, try:
- [Simple Icons](https://simpleicons.org/): offers a huge range of brands, in consistent SVG format, using a 24×24 viewBox, the same as ours.
- Official brand asset pages: most major companies provide downloadable SVGs.
You can use these alongside Lucide without bloating our core library.
## Final Words
Lucide is an **icon** set, not a **logo** set.
Logos belong in dedicated logo resources.
We're focusing on what Lucide does best: providing a clean, cohesive, and legally safe collection of open-source icons.
- __Make your commit messages as descriptive as possible.__ Include as much information as you can. Explain anything that the file diffs themselves won’t make apparent.
- __Document your pull request__. Explain your fix, link to the relevant issue, add screenshots when adding new icons.
- __Make sure the target of your pull request is the relevant branch__. Most of bugfix or new feature should go to the `main` branch.
- __Include only related work__. If your pull request has unrelated commit, it won't be accepted.
- __Make sure the target of your pull request is the relevant branch__. Most of bugfixes or new feature should go to the `main` branch.
- __Include only related work__. If your pull request has unrelated commits, it won't be accepted.
### Pull Requests Including Icons
### Icon Pull Requests
#### Guidelines
@@ -27,26 +27,30 @@ Please make sure you follow the icon guidelines, that should be followed to keep
Read it here: [ICON_GUIDELINES](https://lucide.dev/docs/icon-design-guide).
### Editor guides
#### Lucide Studio
For formatting and adjusting SVG icons, [@jguddas](https://github.com/jguddas) made a great tool called [Lucide Studio](https://studio.lucide.dev/). It is a web-based SVG editor that allows you to edit and adjust icons in the Lucide style. You can use it to create new icons or modify existing ones.
#### Editor guides
Here you can find instructions on how to implement the guidelines with different vector graphics editors:
If you want submit multiple icons, please separate the icons and group them. That makes reviewing the icons easier and keep the thread clean and scoped.
So don't submit multiple icons in one PR that have noting to do with each other.
If you want to submit multiple icons, please separate the icons and group them. That makes reviewing the icons easier and keeps the thread clean and scoped.
So don't submit multiple icons in one PR that have nothing to do with each other.
So for example don't create one PR with icons: `arrow-up`, `bicycle`, `arrow-down`.
Seperate them by two PRs; 'pr-01' `arrow`, `arrow-down` and 'pr-02' `bicycle`.
Separate them into two PRs; 'pr-01' `arrow`, `arrow-down` and 'pr-02' `bicycle`.
## Icon Requests
@@ -77,7 +81,7 @@ To distribute different packages we use [PNPM workspaces](https://pnpm.io/worksp
The configured directory for workspaces is the [packages](https://github.com/lucide-icons/lucide/tree/main/packages) directory, located in the root directory. There you will find all the current packages from lucide.
There are more workspaces defined, see [`pnpm-workspace.yaml`](https://github.com/lucide-icons/lucide/blob/main/pnpm-workspace.yaml).
> Note: One package is not managed by pnpm: **lucide-flutter**, this package is written in Dart and used pub for publishing.
> Note: One package is not managed by pnpm: **lucide-flutter**, this package is written in Dart and uses pub for publishing.
### Generated Code
@@ -127,7 +131,7 @@ When adding new features to for example the icon component for a framework. It i
### Local Testing
To test changes in a local project, you can use `yarn link`, `npm link` or `pnpm link` to link the package. Before you do this make sure you builded the package first.
To test changes in a local project, you can use `yarn link`, `npm link`, `bun link` or `pnpm link` to link the package. Before you do this make sure you've built the package first.
```sh
# in packages/lucide-react
@@ -157,6 +161,30 @@ lucide
The lucide.dev website is using [vitepress](https://vitepress.dev/) to generate the static website. The markdown files are located in the docs directory.
#### Running the Docs Website Locally
To test the docs website locally, follow these steps:
1.**Navigate to the docs directory**
```sh
cd docs
```
2.**Start the Local Development Server**
```sh
pnpm run docs:dev
```
3.**Open the Website Locally**
Vitepress should open with the following format:
VitePress dev server is running at:
- **Local**: `http://localhost:3000/`
- **Network**: `http://192.168.x.x:3000/`
### Guides
Detailed documentation about: installation, guides, packages, design guides etc.
All the icons of lucide in SVG format. These will be used as source for all the packages and other distributions for the lucide icons.
### packages
### Packages
Includes all the (npm) packages of lucide.
> Note: One package is not managed by pnpm: **lucide-flutter**, this package is written in Dart and used pub for publishing.
### Scripts
### scripts
Includes usefully scripts to automate certain jobs. Big part of the scripts is the template generation, for example it generates icon components for all the packages. These scripts are usually executed from the "scripts" section in the package.json.
Includes useful scripts to automate certain jobs. Big part of the scripts is the template generation, for example it generates icon components for all the packages. These scripts are usually executed from the "scripts" section in the package.json.
## Documentation
@@ -190,4 +216,4 @@ If you need any help or have problems with you contribution. Please don't hesita
Thank you to all the people who already contributed to Lucide!
Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022.
Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -13,3 +13,27 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
---
The MIT License (MIT) (for portions derived from Feather)
Copyright (c) 2013-2023 Cole Bemis
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
Community-run fork of [Feather Icons](https://github.com/feathericons/feather), open for anyone to contribute icons.
Lucide is an open-source icon library that provides 1000+ vector (svg) files for displaying icons and symbols in digital and non-digital projects. The library aims to make it easier for designers and developers to incorporate icons into their projects by providing several official [packages](https://lucide.dev/packages) to make it easier to use these icons in your project.
It began after growing dissatisfaction with the [Feather Icons](https://github.com/feathericons/feather) project moderation. With over 300+ open issues and over 100+ open PRs, the Feather Icons project has been abandoned. This unfortunately means that hundreds of developers and designers wasted their time contributing to Feather Icons with no chance of PRs being accepted.
## Packages
Lucide is trying to expand the icon set as much as possible while staying faithful to the original simplistic design language. We do this as a community of devs and designers and hope that you'll join us!
### Why choose Lucide over Feather Icons
- More icons to work with: Lucide already has hundreds of icons more than Feather does.
- Official libraries and integrations with popular frameworks and design tools.
- Well maintained code base.
- Active community, regularly growing and improving the set.
At its core, Lucide is a collection of [SVG](https://svgontheweb.com/#svg) files. This means that you can use Lucide icons in all the same ways you can use SVGs (e.g. `img`, `background-image`, `inline`, `object`, `embed`, `iframe`). Here's a helpful article detailing the many ways SVGs can be used on the web: [SVG on the Web – Implementation Options](https://svgontheweb.com/#implementation)
The following are additional ways you can use Lucide.
With the Javascript library you can easily incorporate the icon you want in your webpage.
### Web
Implementation of the lucide icon library for web applications.
```sh
npm install lucide
```
or
```sh
yarn add lucide
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide#lucide).
### React
Implementation of the lucide icon library for react applications.
```sh
yarn add lucide-react
```
or
```sh
npm install lucide-react
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-react#lucide-react).
### React Native
Implementation of the lucide icon library for React Native applications.
```sh
yarn add lucide-react-native
```
or
```sh
npm install lucide-react-native
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-react-native#lucide-react-native).
### Vue 2
Implementation of the lucide icon library for vue applications.
```sh
yarn add lucide-vue
```
or
```sh
npm install lucide-vue
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-vue#lucide-vue).
### Vue 3
Implementation of the lucide icon library for vue applications.
```sh
yarn add lucide-vue-next
```
or
```sh
npm install lucide-vue-next
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-vue-next#lucide-vue-next).
### Angular
```sh
yarn add lucide-angular
```
or
```sh
npm install lucide-angular
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-angular#lucide-angular).
### Preact
Implementation of the lucide icon library for preact applications.
```sh
yarn add lucide-preact
```
or
```sh
npm install lucide-preact
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-preact#lucide-preact).
For more details, see the [documentation](https://github.com/Siteation/magento2-hyva-icons-lucide/blob/main/README.md).
### Eleventy
Using this plugin, Eleventy projects can incorporate Lucide icons. it makes it simple to use Lucide icons into your themes via shortcodes, improving your website's overall usability and visual appeal.
For more details, see the [documentation](https://github.com/GrimLink/eleventy-plugin-lucide-icons/blob/main/README.md).
## Contributing
For more info on how to contribute please see the [contribution guidelines](https://github.com/lucide-icons/lucide/blob/main/CONTRIBUTING.md).
Caught a mistake or want to contribute to the documentation? [Edit this page on Github](https://github.com/lucide-icons/lucide/blob/main/README.md)
## About brand logos
Lucide **does not accept** brand logos, and we do not plan to add them in the future. This is due to a combination of **legal restrictions**, **design consistency concerns**, and **practical maintenance reasons**.
[Click here to read our official statement about brand logos in Lucide.](./BRAND_LOGOS_STATEMENT.md)
## Community
Join the community on our [Discord](https://discord.gg/EH6nSts) server!
## License
Lucide is totally free for commercial use and personally use, this software is licensed under the [ISC License](https://github.com/lucide-icons/lucide/blob/main/LICENSE).
Lucide is totally free for commercial use and personal use, this software is licensed under the [ISC License](https://github.com/lucide-icons/lucide/blob/main/LICENSE).
## Credits
Thank you to all the people who contributed to Lucide!
message:'We’ve looked for this icon for a bird’s eye view, but could not find it.',
icon:markRaw(bird),
},
{
message:'We checked every tree. Only acorns, no results.',
icon:markRaw(squirrel),
},
{
message:'You’ve gone too deep into the rabbit hole — this icon doesn’t exist.',
icon:markRaw(rabbit),
},
{
message:'This icon seems to have slipped through the net.',
icon:markRaw(fish),
},
{
message:'This icon might exist in the future… but it hasn’t arrived yet.',
icon:markRaw(turtle),
},
{
message:'Rats! This icon seems to have slipped through the cracks.',
icon:markRaw(rat),
},
]);
functionrandomItem<T>(arr:T[]):T{
returnarr[Math.floor(Math.random()*arr.length)];
}
constplaceholderIcon=ref<HTMLElement>();
constplaceholder=ref<Placeholder>();
watch(
()=>isBrandSearch,
()=>{
placeholder.value=isBrandSearch
?{
...randomItem(brandPlaceholders),
finePrint:
'Lucide does not accept brand logos, and we do not plan to add them in the future. This is due to a combination of legal restrictions, design consistency concerns, and practical maintenance reasons.',
}
:{
title:`No results for “[name]”`,
finePrint:
'This icon doesn’t seem to exist… yet. Try searching similar terms, browsing existing requests, or opening a new one.',
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.