Compare commits

...

13 Commits

Author SHA1 Message Date
Karsa
f02067ea55 adds utility-pole icon (#971)
Co-authored-by: Karsa <karsa@karsa.org>
2023-03-05 21:23:11 +01:00
Eric Fennis
57a72cbb38 Add forklift icon (#943)
* Fix vercel build

* Add forklift icon

Co-Authored-By: willythewizard <119956499+willythewizard@users.noreply.github.com>

---------

Co-authored-by: willythewizard <119956499+willythewizard@users.noreply.github.com>
2023-03-05 21:22:38 +01:00
Karsa
0baf1a49ef Fixes incorrect relative links in documentation pages (#973)
* Fixes incorrect relative links in documentation pages

* Unifies documentation page names to avoid 404 links

---------

Co-authored-by: Karsa <karsa@karsa.org>
2023-03-05 21:21:26 +01:00
Lucide Bot
0879262bdb 📦 Bump lucide package versions to 0.122.0 2023-03-04 10:58:52 +00:00
Karsa
9a41d931e9 Adds blinds icon (#970)
* Add more music icons and another mic icon (#746)

* Revert "Add more music icons and another mic icon (#746)" (#750)

This reverts commit 57cba6ae0e.

* adds blinds icon

---------

Co-authored-by: it-is-not <72697755+it-is-not@users.noreply.github.com>
Co-authored-by: Karsa <karsa@karsa.org>
2023-03-04 11:53:29 +01:00
Lucide Bot
7c111a53e1 📦 Bump lucide package versions to 0.121.0 2023-03-02 08:04:30 +00:00
Maxime Franco
7209ed3fcd [ADD] Router icon (#957)
Co-authored-by: Karsa <karsa@karsa.org>
2023-03-02 08:58:27 +01:00
Karsa
e85dffa9b4 Adds gi = generate icons script (#975) 2023-03-02 08:51:56 +01:00
Lucide Bot
0c3d6cd097 📦 Bump lucide package versions to 0.120.0 2023-03-02 07:39:29 +00:00
Karsa
72c25a9936 Adds pill & tablets icons (#969)
* Add more music icons and another mic icon (#746)

* Revert "Add more music icons and another mic icon (#746)" (#750)

This reverts commit 57cba6ae0e.

* adds tablets & pill icons

* adds some extra tags

---------

Co-authored-by: it-is-not <72697755+it-is-not@users.noreply.github.com>
Co-authored-by: Karsa <karsa@karsa.org>
2023-03-02 08:33:50 +01:00
Lucide Bot
5226c326f8 📦 Bump lucide package versions to 0.119.0 2023-03-01 18:15:18 +00:00
Karsa
de2e3036c0 Adds tower-control icon (#963)
* Add more music icons and another mic icon (#746)

* Revert "Add more music icons and another mic icon (#746)" (#750)

This reverts commit 57cba6ae0e.

* adds tower-control icon

* Update icons/tower-control.json

---------

Co-authored-by: it-is-not <72697755+it-is-not@users.noreply.github.com>
Co-authored-by: Karsa <karsa@karsa.org>
2023-03-01 19:09:35 +01:00
Lucide Bot
8adeb025a6 📦 Bump lucide package versions to 0.118.0 2023-02-28 17:15:47 +00:00
37 changed files with 327 additions and 58 deletions

View File

@@ -5,7 +5,7 @@ labels: "🎨 <icon"
---
<!-- Thanks for submitting an icon! Please make sure you read the icon design guide
at https://github.com/lucide-icons/lucide/blob/main/docs/ICON_DESIGN_GUIDE.md beforehand,
at https://github.com/lucide-icons/lucide/blob/main/docs/icon-design-guide.md beforehand,
and please fill everything below. -->
- **Name of the icon** : <!-- `icon` -->

View File

@@ -25,28 +25,21 @@ Guidelines for pull requests:
Please make sure you follow the icon guidelines, that should be followed to keep quality and consistency when making icons for Lucide.
Read it here: [ICON_GUIDELINES](docs/ICON_DESIGN_GUIDE.md).
Read it here: [ICON_GUIDELINES](/docs/icon-design-guide.md).
### Templates
### Editor guides
Here you can find templates and instructions on how to implement the guidelines with different programs.
Here you can find instructions on how to implement the guidelines with different vector graphics editors:
#### Adobe Illustrator
#### [Adobe Illustrator Guide](/docs/illustrator-guide.md)
`Template`: You can find a template for Adobe Illustrator under `/docs/templates/illustrator-template.ai`.
`Instructions`: You can find the [Illustrator Guide](/docs/ILLUSTRATOR_GUIDE.md) and how to work with the template in `/docs/ILLUSTRATOR_GUIDE.md`.
You can also [download an Adobe Illustrator template](/docs/templates/illustrator-template.ai).
#### Inkscape
#### [Inkscape Guide](/docs/inkscape-guide.md)
`Template`: None
`Instructions`: You can find the [Inkscape Guide](/docs/INKSCAPE_GUIDE.md) and how to set up Inkscape under `/docs/INKSCAPE_GUIDE.md`.
#### [Figma Guide](/docs/figma-guide.md)
#### Figma
`Template`: None
`Instructions`: You can find the [Figma Guide](/docs/FIGMA_GUIDE.md) and how to set up Figma under `/docs/FIGMA_GUIDE.md`.
#### Submitting Multiple Icons
### Submitting Multiple Icons
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.

View File

@@ -16,7 +16,7 @@ To do this, create a frame of 24x24 pixels.
In this newly created frame, you will create your icon. If you want, you can change the name of your frame to the name of the icon you are going to create. Then it will be exported as `FRAME-NAME.svg`.
## Create your icon
## Create Your icon
To design your icon in the style of Feather Icons, you need to adjust a few settings in Figma.
Draw in your new frame with the pen tool. You can open it with the window at the top, or with the shortcut `P`. Once you click in your frame, you can adjust the settings for the pen tool in the design-window on the right.
@@ -26,19 +26,26 @@ Set the following:
1. Corner radius: 2px
2. Stroke
1. Stroke width: 2px
2. Stroke alignment: center
2. Stroke alignment: center
![Figma Stroke Options](images/figma-stroke-options.png)
## Export Your Icon
## Export Or Copy Your Icon
Once you have completed your icon, you can export it.
1. Select the frame
2. Open the *Export* tab on the right
3. Set the file type as SVG
4. Press export
Or you can also copy its source as SVG.
1. Select the frame
2. Right click it
3. Click on *Copy/Paste as*
4. Click on *Copy as SVG*
That's it. You just made your first icon. Congratulations!
## Figma Tips
1. The [Icon Design Guidelines](ICON_DESIGN_GUIDE.md) dictate that you keep 2px spacing between detached elements. In Figma, you can easily check this with: `⌥` Option (MacOS) or `Alt` (Windows).
1. The [Icon Design Guidelines](icon-design-guide.md) dictate that you keep 2px spacing between detached elements. In Figma, you can easily check this with: `⌥` Option (MacOS) or `Alt` (Windows).

View File

@@ -10,15 +10,15 @@ This Guide explains how to properly use the Adobe Illustrator Template for Lucid
## General Workflow
The Illustrator template is created following guidelines from the [Icon Design Guide](ICON_DESIGN_GUIDE.md).
The Illustrator template is created following guidelines from the [Icon Design Guide](icon-design-guide.md).
**Workflow:**
1. Open the Document which can be found under __*/docs/templates/illustrator_template.ai*__ .
1. Download and open the [Illustrator template](https://github.com/lucide-icons/lucide/blob/main/docs/templates/illustrator_template.ai).
2. You can now remove the content from the example logo layer ("Draw") and start creating.
3. Verify that you follow the [Icon Design Guidelines](ICON_DESIGN_GUIDE.md).
3. Verify that you follow the [Icon Design Guidelines](icon-design-guide.md).
4. Before you export the file as an SVG make sure to check that you followed the guidelines and remove all unecessary layers (especially "Padding" and "Grid").
@@ -26,6 +26,6 @@ The Illustrator template is created following guidelines from the [Icon Design G
![SVG export options in Illustrator](images/illustrator-svg-options.png?raw=true "Setting Page Size")
After that, double check that the [code conventions and SVG global attributes](https://github.com/lucide-icons/lucide/blob/main/docs/ICON_DESIGN_GUIDE.md#code-conventions) are correct.
After that, double check that the [code conventions and SVG global attributes](icon-design-guide.md#code-conventions) are correct.
7. Minify paths with [SVGOMG](https://jakearchibald.github.io/svgomg/).

View File

@@ -18,7 +18,7 @@ or
yarn add lucide
```
For more details, see the [documentation](packages/lucide).
For more details, see the [documentation](packages/lucide.md).
## React
@@ -34,7 +34,7 @@ or
npm install lucide-react
```
For more details, see the [documentation](packages/lucide-react).
For more details, see the [documentation](packages/lucide-react.md).
## Vue 2
@@ -50,7 +50,7 @@ or
npm install lucide-vue
```
For more details, see the [documentation](packages/lucide-vue).
For more details, see the [documentation](packages/lucide-vue.md).
## Vue 3
@@ -66,7 +66,7 @@ or
npm install lucide-vue-next
```
For more details, see the [documentation](packages/lucide-vue-next).
For more details, see the [documentation](packages/lucide-vue-next.md).
## Svelte
@@ -82,7 +82,7 @@ or
npm install lucide-svelte
```
For more details, see the [documentation](packages/lucide-svelte).
For more details, see the [documentation](packages/lucide-svelte.md).
## Angular
@@ -96,7 +96,7 @@ or
npm install lucide-angular
```
For more details, see the [documentation](packages/lucide-angular).
For more details, see the [documentation](packages/lucide-angular.md).
## Preact
@@ -112,7 +112,7 @@ or
npm install lucide-preact
```
For more details, see the [documentation](packages/lucide-preact).
For more details, see the [documentation](packages/lucide-preact.md).
## Figma

17
icons/blinds.json Normal file
View File

@@ -0,0 +1,17 @@
{
"$schema": "../icon.schema.json",
"tags": [
"shades",
"screen",
"curtain",
"shutter",
"roller blind",
"window",
"lighting",
"household",
"home"
],
"categories": [
"home"
]
}

19
icons/blinds.svg Normal file
View File

@@ -0,0 +1,19 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 3h18" />
<path d="M20 7H8" />
<path d="M20 11H8" />
<path d="M10 19h10" />
<path d="M8 15h12" />
<path d="M4 3v14" />
<circle cx="4" cy="19" r="2" />
</svg>

After

Width:  |  Height:  |  Size: 384 B

View File

@@ -9,12 +9,12 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M21 6H3C2.44772 6 2 6.44772 2 7V13C2 13.5523 2.44772 14 3 14H21C21.5523 14 22 13.5523 22 13V7C22 6.44772 21.5523 6 21 6Z"/>
<path d="M17 14V21" />
<path d="M7 14V21" />
<path d="M17 3V6" />
<path d="M7 3V6" />
<path d="M2.5 6.5L10 14" />
<path d="M8 6L16 14" />
<path d="M14 6L21.5 13.5" />
<path d="M21 6H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1Z" />
<path d="M17 14v7" />
<path d="M7 14v7" />
<path d="M17 3v3" />
<path d="M7 3v3" />
<path d="M2.5 6.5 10 14" />
<path d="m8 6 8 8" />
<path d="m14 6 7.5 7.5" />
</svg>

Before

Width:  |  Height:  |  Size: 524 B

After

Width:  |  Height:  |  Size: 470 B

View File

@@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m13.013 3h-11.013l8 9.46v6.54l4 2v-8.54l0.89973-1.0554" />
<path d="M13.013 3H2l8 9.46V19l4 2v-8.54l.9-1.055" />
<path d="m22 3-5 5" />
<path d="m17 3 5 5" />
</svg>

Before

Width:  |  Height:  |  Size: 328 B

After

Width:  |  Height:  |  Size: 314 B

11
icons/forklift.json Normal file
View File

@@ -0,0 +1,11 @@
{
"$schema": "../icon.schema.json",
"tags": [
"vehicle",
"transport",
"logistics"
],
"categories": [
"transportation"
]
}

16
icons/forklift.svg Normal file
View File

@@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 12H5a2 2 0 0 0-2 2v5" />
<circle cx="13" cy="19" r="2" />
<circle cx="5" cy="19" r="2" />
<path d="M8 19h3M16 2v17h6M6 12V7c0-1.1.9-2 2-2h3l5 5" />
</svg>

After

Width:  |  Height:  |  Size: 377 B

14
icons/pill.json Normal file
View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"medicine",
"medication",
"drug",
"prescription",
"tablet",
"pharmacy"
],
"categories": [
"medical"
]
}

14
icons/pill.svg Normal file
View File

@@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z" />
<path d="m8.5 8.5 7 7" />
</svg>

After

Width:  |  Height:  |  Size: 316 B

14
icons/router.json Normal file
View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"computer",
"server",
"cloud"
],
"categories": [
"development",
"devices",
"connectivity",
"home"
]
}

18
icons/router.svg Normal file
View File

@@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="20" height="8" x="2" y="14" rx="2" />
<path d="M6.01 18H6" />
<path d="M10.01 18H10" />
<path d="M15 10v4" />
<path d="M17.84 7.17a4 4 0 0 0-5.66 0" />
<path d="M20.66 4.34a8 8 0 0 0-11.31 0" />
</svg>

After

Width:  |  Height:  |  Size: 428 B

View File

@@ -2,13 +2,14 @@
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
>
<path d="M 8,19 H 5 C 4,19 3,18 3,17 V 7 C 3,6 4,5 5,5 h 3" />
<path d="m 16,5 h 3 c 1,0 2,1 2,2 v 10 c 0,1 -1,2 -2,2 h -3" />
<line x1="12" y1="4" x2="12" y2="20" />
<path d="M8 19H5c-1 0-2-1-2-2V7c0-1 1-2 2-2h3" />
<path d="M16 5h3c1 0 2 1 2 2v10c0 1-1 2-2 2h-3" />
<line x1="12" x2="12" y1="4" y2="20" />
</svg>

Before

Width:  |  Height:  |  Size: 359 B

After

Width:  |  Height:  |  Size: 355 B

View File

@@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M 5,8 V 5 C 5,4 6,3 7,3 h 10 c 1,0 2,1 2,2 v 3" />
<path d="m 19,16 v 3 c 0,1 -1,2 -2,2 H 7 C 6,21 5,20 5,19 v -3" />
<line x1="4" y1="12" x2="20" y2="12" />
<path d="M5 8V5c0-1 1-2 2-2h10c1 0 2 1 2 2v3" />
<path d="M19 16v3c0 1-1 2-2 2H7c-1 0-2-1-2-2v-3" />
<line x1="4" x2="20" y1="12" y2="12" />
</svg>

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 355 B

14
icons/tablets.json Normal file
View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"medicine",
"medication",
"drug",
"prescription",
"pills",
"pharmacy"
],
"categories": [
"medical"
]
}

16
icons/tablets.svg Normal file
View File

@@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="7" cy="7" r="5" />
<circle cx="17" cy="17" r="5" />
<path d="M12 17h10" />
<path d="m3.46 10.54 7.08-7.08" />
</svg>

After

Width:  |  Height:  |  Size: 338 B

14
icons/tower-control.json Normal file
View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"airport",
"travel",
"tower",
"transportation",
"lighthouse"
],
"categories": [
"travel",
"transportation"
]
}

19
icons/tower-control.svg Normal file
View File

@@ -0,0 +1,19 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M18.2 12.27 20 6H4l1.8 6.27a1 1 0 0 0 .95.73h10.5a1 1 0 0 0 .96-.73Z" />
<path d="M8 13v9" />
<path d="M16 22v-9" />
<path d="m9 6 1 7" />
<path d="m15 6-1 7" />
<path d="M12 6V2" />
<path d="M13 2h-2" />
</svg>

After

Width:  |  Height:  |  Size: 436 B

14
icons/utility-pole.json Normal file
View File

@@ -0,0 +1,14 @@
{
"$schema": "../icon.schema.json",
"tags": [
"electricity",
"energy",
"transmission line",
"telegraph pole"
],
"categories": [
"buildings",
"home",
"sustainability"
]
}

19
icons/utility-pole.svg Normal file
View File

@@ -0,0 +1,19 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 2v20" />
<path d="M2 5h20" />
<path d="M3 3v2" />
<path d="M7 3v2" />
<path d="M17 3v2" />
<path d="M21 3v2" />
<path d="m19 5-7 7-7-7" />
</svg>

After

Width:  |  Height:  |  Size: 374 B

View File

@@ -25,7 +25,8 @@
"generate:changelog": "node ./scripts/generateChangelog.mjs",
"postinstall": "husky install",
"lint": "eslint --ext .ts,.js,.mjs ./{packages/lucide,scripts}",
"prepare": "husky install"
"prepare": "husky install",
"gi": "node ./scripts/generate/generateIcons.mjs"
},
"devDependencies": {
"eslint": "^8.26.0",

View File

@@ -1,7 +1,7 @@
{
"name": "lucide-angular",
"description": "A Lucide icon library package for Angular applications",
"version": "0.116.0",
"version": "0.122.0",
"author": "SMAH1",
"license": "ISC",
"homepage": "https://lucide.dev",

View File

@@ -1,6 +1,6 @@
name: lucide_icons
description: A Lucide icon library package for Flutter applications. Fork of Feather Icons, open for anyone to contribute icons.
version: 0.116.0
version: 0.122.0
homepage: https://lucide.dev
repository: https://github.com/lucide-icons/lucide

View File

@@ -1,7 +1,7 @@
{
"name": "lucide-preact",
"description": "A Lucide icon library package for Preact applications",
"version": "0.116.0",
"version": "0.122.0",
"license": "ISC",
"homepage": "https://lucide.dev",
"bugs": "https://github.com/lucide-icons/lucide/issues",

View File

@@ -1,7 +1,7 @@
{
"name": "lucide-react-native",
"description": "A Lucide icon library package for React Native applications",
"version": "0.116.0",
"version": "0.122.0",
"license": "ISC",
"homepage": "https://lucide.dev",
"bugs": "https://github.com/lucide-icons/lucide/issues",

View File

@@ -1,7 +1,7 @@
{
"name": "lucide-react",
"description": "A Lucide icon library package for React applications",
"version": "0.116.0",
"version": "0.122.0",
"license": "ISC",
"homepage": "https://lucide.dev",
"bugs": "https://github.com/lucide-icons/lucide/issues",

View File

@@ -1,7 +1,7 @@
{
"name": "lucide-svelte",
"description": "A Lucide icon library package for Svelte applications",
"version": "0.116.0",
"version": "0.122.0",
"license": "ISC",
"homepage": "https://lucide.dev",
"bugs": "https://github.com/lucide-icons/lucide/issues",

View File

@@ -1,6 +1,6 @@
{
"name": "lucide-vue-next",
"version": "0.116.0",
"version": "0.122.0",
"author": "Eric Fennis",
"description": "A Lucide icon library package for Vue 3 applications",
"license": "ISC",

View File

@@ -1,6 +1,6 @@
{
"name": "lucide-vue",
"version": "0.116.0",
"version": "0.122.0",
"author": "Eric Fennis",
"description": "A Lucide icon library package for Vue 2 applications",
"license": "ISC",

View File

@@ -1,7 +1,7 @@
{
"name": "lucide",
"description": "A Lucide icon library package for web and javascript applications.",
"version": "0.116.0",
"version": "0.122.0",
"license": "ISC",
"homepage": "https://lucide.dev",
"bugs": "https://github.com/lucide-icons/lucide/issues",

View File

@@ -0,0 +1,35 @@
import path from 'path';
import {getCurrentDirPath, writeFileIfNotExists} from "../helpers.mjs";
const currentDir = getCurrentDirPath(import.meta.url);
const ICONS_DIR = path.resolve(currentDir, '../../icons');
const iconNames = process.argv.slice(2);
const iconSvgTemplate = `<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
</svg>
`;
const iconJsonTemplate = `{
"$schema": "../icon.schema.json",
"tags": [
],
"categories": [
]
}
`;
iconNames.forEach(iconName => {
writeFileIfNotExists(iconSvgTemplate, `${iconName}.svg`, ICONS_DIR);
writeFileIfNotExists(iconJsonTemplate, `${iconName}.json`, ICONS_DIR);
});

View File

@@ -70,6 +70,19 @@ export const appendFile = (content, fileName, outputDirectory) =>
export const writeFile = (content, fileName, outputDirectory) =>
fs.writeFileSync(path.join(outputDirectory, fileName), content, 'utf-8');
/**
* writes content to a file if it does not exist
*
* @param {string} content
* @param {string} fileName
* @param {string} outputDirectory
*/
export const writeFileIfNotExists = (content, fileName, outputDirectory) => {
if (!fs.existsSync(path.join(outputDirectory, fileName))) {
writeFile(content, fileName, outputDirectory);
}
};
/**
* Reads metadata from the icons/categories directories
*