* 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>
* Updated `sandwich` icon
Rounded the top-front corners, and better aligned the top-most corner of the bread, and the corner of the filling to the grid
* Update sandwich.svg
Nudge filling to the left to maintain a two-pixel gap
* Widen the sandwich
* chore(icons): add tag to ellipsis
* chore(icons): add tag to rectangle-ellipsis
* chore(icons): add tag to circle-ellipsis
* chore(icons): add tag to ellipsis-vertical
* chore(): add some further tags. no pun indended.
* chore(): ran prettier
---------
Co-authored-by: Karsa <contact@karsa.org>
* add circle fading up icon
* add more metadata
* Rename circle-fading-up.json to circle-fading-arrow-up.json
* Rename circle-fading-up.svg to circle-fading-arrow-up.svg
* remove categories
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* remove comma
* added development category
---------
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* feat(icons): add drop-cap icon
Co-authored-by: Jakob Guddas <github@jguddas.de>
* fix(icons): round the top of the `drop-cap` icon
Co-authored-by: Jakob Guddas <github@jguddas.de>
* fix(icons): Fix `drop-cap` icon
* fix(icons): rename `drop-cap` icon to `letter-text`
---------
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Add section title
* Add external libs list in sidebar
* Make external lib work
* Adds external lib to detail view
* fix lint issues
* Update to https
* fix(lucide-svelte): update IconProps to include all properties of Icon component
* fix(lucide-svelte): removed custom Icon type that conflicted with Icon component type
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Updated icons/key.svg
* Updated icons/key.json
* Update icons/key.svg
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* Add space before close key.svg
---------
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
* feat(figma): add data API endpoint with every metadata needed by new Figma plugin
* chore(docs/api): extract data as static const
---------
Co-authored-by: Karsa <karsa@sztaki.hu>
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.
Read more about brand guideline rules at [We're not accepting new Brand icons #670](https://github.com/lucide-icons/lucide/issues/670).
Always happy to help on [Discord](https://discord.gg/EH6nSts)."
- __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,24 +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.
#### Submitting Multiple Icons
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
@@ -70,12 +76,12 @@ pnpm install # Install dependencies, including the workspace packages
### Packages -> PNPM Workspaces
To distribute different packages we use PNPM workspaces. Before you start make sure you are familiar with this concept. The concept of working in workspaces is created by Yarn, they have a well written introduction: [yarn workspaces](https://classic.yarnpkg.com/lang/enhttps://lucide.dev/docs/workspaces).
To distribute different packages we use [PNPM workspaces](https://pnpm.io/workspaces). Before you start make sure you are familiar with this concept. The concept of working in workspaces is created by Yarn, they have a well written introduction: [yarn workspaces](https://classic.yarnpkg.com/en/docs/workspaces).
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
@@ -125,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.
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.
> Note: One package is not managed by pnpm: **lucide-flutter**, this package is written in Dart and uses 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
@@ -188,4 +194,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!
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).
@@ -270,14 +63,16 @@ 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!
<!-- Description how you should use svg icons keeping web accessible -->
<!-- See @JanTrichter comment about some information to write this: https://github.com/lucide-icons/lucide/pull/1521#discussion_r1332141390 -->
Icons are pictures that show what something means without using words. They can be very helpful
because they can quickly give information.
However, not everyone can understand them easily. When using icons it is very important to consider
the following aspects of accessibility.
## Provide visible labels
Icons are a helpful tool to improve perception, but they aren't a replacement for text.
In most cases, it is probably a good idea to also provide a textual representation of your icon's
function.

## Contrast
Ensure there's enough contrast between the icon and its background so that it's visible to people
with low vision or color vision deficiencies.
We recommend
following [WCAG 2.1 SC 1.4.3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum.html).

## Use of color
Avoid relying solely on color to convey meaning in icons, as some users may have color blindness.
Instead, use additional visual cues like shape, shading or text.

## Interactivity
Ensure that interactive icons are accessible via keyboard navigation and provide clear feedback when
activated.

In most cases this is easily done by wrapping them in icon buttons.
## Minimum target size
Small targets can be difficult to click or touch, if your icon is interactive, we recommend that it
should have a minimum target size of 44×44 pixels.

In practice, this doesn't necessarily mean that the icon itself should be this large, only its
interactive wrapper element.
## Meaningfulness
Icons should represent concepts or actions in a universally understandable way. Avoid using abstract
or ambiguous, or culture-specific symbols that might confuse some users.

## Consistency
Maintain consistency in icon design and usage across your interface to help users learn and
understand their meanings more easily.

## Text Alternatives
You may have to provide text labels or alternative text descriptions for icons, especially for
screen readers used by people with visual impairments.
However: descriptions should only be provided to standalone icons that aren't purely decorative, as
providing accessible names to non-functional elements only increases clutter when using screen
readers.
### On standalone icons
Icons are usually very unlikely to stand on their own with no semantically meaningful wrapper
element. In most cases they will be part of a badge, button (including icon buttons), navigation
item or other interactive UI element.
::: warning
In case some of your icons stand alone, and they serve a non-decorative function, make sure to
provide the appropriate accessible label for them.
:::

In general try to avoid using functional icons with no interactivity, we recommend that:
1) you either add a visible description next to them, or
2) place them in badges, labels or on buttons, and at least add a tooltip to them.
In any such case, it is preferred that the accessible name be provided for these interactive
elements (badges, buttons, nav items etc.) only, _not_ the icons themselves.
### On buttons
Do not provide an accessible label to icons when used on a button, as this label will be read out by
Icons can have multiple names for the same icon. This is because we choose to rename some icons to make them more consistent with the rest of the icon set, or the name was not generic. For example, the `edit-2` icon is renamed to `pen` to make the name more generic, since it is just a pen icon.
Beside aliases names lucide also includes prefixed and suffixed names to use within your project. This is to prevent import name collisions with other libraries or your own code.
```tsx
// These are all the same icon
import{
House,
HouseIcon,
LucideHouse,
}from"lucide-react";
```
## Choosing import name style
To be consistent in your imports or want to change the autocompletion of Lucide icons in your IDE there an option to able the choose the import name style you want.
This can be done by creating a custom module declaration file to override the lucide imports and turning off the autocomplete in your IDE.
This guide describes how to use the Affinity Designer template for Lucide.
## General Workflow
>Attention: By default, Affinity Designer sets the unit for stroke to points. Make sure that it is set to pixel. To do this, open `Preferences > User Interface`. Under `Decimal Places for Unit Types`, uncheck `Show Lines in points`.
1. Download and open the [Affinity Designer template](https://github.com/lucide-icons/lucide/blob/main/docs/public/templates/affinity_designer.aftemplate).
2. Follow the [Icon Design Principles](icon-design-guide.md) while you use the template (to ensure integrity with the Lucide icon pack).
3. Export the file as SVG (`File > Export`). Make sure that _Rastering_ is set to _Nothing_, _Export text as curves_ is checked (hopefully, you won't need this), _Use hex colors_ is checked, and _Flatten transforms_ is checked.

4. Optimize the exported SVG file further with [SVGOMG](https://jakearchibald.github.io/svgomg/) or [`svgo`](https://github.com/svg/svgo) (using `svgo --multipass exported_icon.svg`).
**Tip:** make sure to use arcs or quadratic curves, when using cubic curves control points should have mirrored angles for smooth curves.
**Tip:** make sure to use arcs or quadratic curves. When using cubic curves control points should have mirrored angles for smooth curves.
### 13. Icons should aim to be pixel perfect so that they will be sharp on low DPI displays.
@@ -109,8 +109,8 @@ Here are rules that should be followed to keep quality and consistency when maki
7. Icons depicting multiple elements (e.g. a person and a circle) of different sizes must list these elements in decreasing order of size.\
For example: if the circle is bigger, it should be `circle-person`, if the person is bigger, it should be `person-circle`.
8. Icons depicting multiple elements of roughly equal sizes (e.g. a `ruler` and a `pencil`) must list these elements in English reading order.\
For example: if the `pencil` is either above or left of `ruler`, it should be `pencil-ruler`, otherwise, it should be `ruler-pencil`.
8. Icons depicting multiple elements of roughly equal sizes (e.g. a `ruler` and a `pencil`) must list these elements front to back in case one element is in front of the other, otherwise in English reading order (top to bottom, left to right).\
For example: if the `pencil` is either in front of, above or left of `ruler`, it should be `pencil-ruler`, otherwise, it should be `ruler-pencil`.
9. Icons depicting some sort of variation of an element must use the `[element]-[modifier]` naming scheme, with modifiers being applied to each element respectively.\
For example: a dashed circle must be named `circle-dashed`, not `dashed-circle`, and in coordination with the previous guidelines, a dashed circle containing a broken heart would be named `circle-dashed-heart-broken`, due to the heart being smaller than the circle.
@@ -142,7 +142,7 @@ For each icon these attributes are applied, corresponding to the above rules.
### Minify paths
The code of paths can sometimes get quite large. To reduce file size we like to minify the code.
We recommend to use the [SVGOMG](https://jakearchibald.github.io/svgomg/) to minify paths to 2 points of precision.
We recommend to use [Lucide Studio](https://studio.lucide.dev/) to tidy paths to 3 points of precision.
@@ -12,7 +12,8 @@ Lucide is an open-source icon library that provides 1000+ vector (svg) files for
## Available Icons
Lucide contains icons with different variants and states, allowing users to choose the most suitable icon for their needs. And if a desired icon isn't available yet, users can open a design request, and the Lucide community contributors will help provide new icons. With more icons to choose from, users have more options to work with in their projects.
Complete Set of Icons
### Complete Set of Icons
As new applications with specific features arise, Lucide aims to provide a complete set of icons for every project. The community follows a set of design rules when designing new icons. These rules maintain standards for the icons, such as recognizability, consistency in style, and readability at all sizes. While creativity is valued in new icons, recognizable design conventions are important to ensure that the icons are easily identifiable by users.
@@ -20,9 +21,16 @@ As new applications with specific features arise, Lucide aims to provide a compl
In addition to design, code is also important. Assets like icons can significantly increase bandwidth usage in web projects. With the growing internet, Lucide has a responsibility to keep their assets as small as possible. To achieve this, Lucide uses SVG compression and specific code architecture for tree-shaking abilities. After tree-shaking, you only ship the icons you used, which helps to keep software distribution size to a minimum.
## Accessibility
Icons are pictures that show what something means without using words. They can be very helpful because they can quickly give information.
However, not everyone can understand them easily. Read more about [how to use Lucide in an accessible way](./advanced/accessibility.md).
## Official Packages
Lucide's official packages are designed to work on different platforms, making it easier for users to integrate icons into their projects. The packages are available for various technologies, including [Web (Vanilla)](https://lucide.dev/guide/packages/lucide), [React](https://lucide.dev/guide/packages/lucide-react), [React Native](https://lucide.dev/guide/packages/lucide-react-native), [Vue](https://lucide.dev/guide/packages/lucide-vue), [Vue 3](https://lucide.dev/guide/packages/lucide-vue-next), [Svelte](https://lucide.dev/guide/packages/lucide-svelte),[Preact](https://lucide.dev/guide/packages/lucide-preact), [Solid](https://lucide.dev/guide/packages/lucide-solid), [Angular](https://lucide.dev/guide/packages/lucide-angular), [NodeJS](https://lucide.dev/guide/packages/lucide-static#nodejs) and [Flutter](https://lucide.dev/guide/packages/lucide-flutter).
Lucide's official packages are designed to work on different platforms, making it easier for users to integrate icons into their projects. The packages are available for various technologies, including [Web (Vanilla)](https://lucide.dev/guide/packages/lucide), [React](https://lucide.dev/guide/packages/lucide-react), [React Native](https://lucide.dev/guide/packages/lucide-react-native), [Vue](https://lucide.dev/guide/packages/lucide-vue), [Vue 3](https://lucide.dev/guide/packages/lucide-vue-next), [Svelte](https://lucide.dev/guide/packages/lucide-svelte),[Preact](https://lucide.dev/guide/packages/lucide-preact), [Solid](https://lucide.dev/guide/packages/lucide-solid), [Angular](https://lucide.dev/guide/packages/lucide-angular), [Astro](https://lucide.dev/guide/packages/lucide-astro), and [NodeJS](https://lucide.dev/guide/packages/lucide-static#nodejs).
## Community
If you have any questions about Lucide, feel free to reach out to the community. You can find them on [GitHub](https://github.com/lucide-icons/lucide) and [Discord](https://discord.gg/EH6nSts).
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.