Compare commits

..

147 Commits

Author SHA1 Message Date
Abdalrhman Almarakeby
c00ef3a835 chore(metadata): add lens tag to icons with magnifying glass (#3192) 2025-05-06 10:58:27 +02:00
Jakob Guddas
0d3c8f4ea2 fix(icons): arcified laptop icon (#3190)
* Updated icons/laptop.svg

* Updated icons/laptop.json

* Updated icons/laptop.json
2025-05-06 10:58:01 +02:00
Eric Fennis
771cb0bbd6 Update names in docs (#3184) 2025-05-03 09:28:29 +02:00
Jamie Law
3f34f4e7b6 fix(icons): Optimised phone- icons (#3169)
* 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>
2025-05-02 22:10:13 +02:00
Kyle Angelo Galendez
e4f411ce9c feat(icons): added panda icon (#2094)
* Added icons/panda.svg

* Added icons/panda.json

* Enlarge `panda`

* Add contributors

Added "karsa-mistmere" because he redesign the `panda`

* Update panda.svg

fix(icons/panda): fix overeager optimisation by Lucide Studio

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-05-02 22:04:31 +02:00
Jakob Guddas
0f47888a17 feat(icons): added soap-dispenser-droplet icon (#3088)
* Added icons/soap-dispenser-droplet.svg

* Added icons/soap-dispenser-droplet.json

* Updated icons/soap-dispenser-droplet.svg

* Updated icons/soap-dispenser-droplet.svg
2025-05-02 22:04:14 +02:00
Eric Fennis
81ce8fed07 Adjust pr template (#3183) 2025-05-02 13:17:01 +02:00
Jakob Guddas
03b3a4f179 fix(icons): changed mail icon (#3144)
* Updated icons/mail.svg

* Updated icons/mail.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-02 13:09:43 +02:00
Jakob Guddas
24178ca1bc fix(icons): changed menu icon (#3142)
* Updated icons/menu.svg

* Updated icons/menu.json

* Updated icons/menu.json
2025-05-02 13:07:07 +02:00
Jakob Guddas
e91dd659f0 fix(icons): changed bell-electric icon (#3139)
* Updated icons/bell-electric.svg

* Updated icons/bell-electric.json

* Updated icons/bell-electric.svg
2025-05-02 11:10:40 +02:00
Jakob Guddas
6277ceb274 fix(icons): changed touchpad-off icon (#3118)
* Updated icons/touchpad-off.svg

* Updated icons/touchpad-off.json
2025-05-02 11:04:16 +02:00
Jakob Guddas
45b22c9f2d fix(icons): rotate dumbbell icon (#3107)
* Updated icons/dumbbell.svg

* Updated icons/dumbbell.json

* Updated icons/dumbbell.svg

* Updated icons/dumbbell.json

* Updated icons/dumbbell.svg

* Updated icons/dumbbell.svg
2025-05-02 11:02:22 +02:00
Jakob Guddas
3a375e1a17 fix(icons): changed air-vent icon (#3117)
* Updated icons/air-vent.svg

* Updated icons/air-vent.json

* Updated icons/air-vent.svg
2025-05-02 11:00:28 +02:00
Jakob Guddas
ac09719ba6 fix(ci): reduces workflow triggers (#3150)
* ci: reduces workflow triggers

* chore: removed lint-contributors step

* Update .github/workflows/labeler.yml
2025-05-02 10:59:38 +02:00
ajokt123
8d8c41c371 4 missing categories (#3110) 2025-05-02 10:57:39 +02:00
Jamie Law
951c142e96 fix(icons): changed guitar icon (#3115)
* Updated icons/guitar.svg

* Add back missing path

* Remove guitar hole
2025-05-02 10:54:40 +02:00
Brizen Britt
dcdc0b8bb3 fix(dev): resets Absolute Stroke Width (#3005)
* Changed resetStyle to reflect changes of button on absolutestrokewidth

* removed nextTick

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-02 10:52:59 +02:00
Jakob Guddas
e11e134ce1 fix(icons): changed search icon (#3140)
* Updated icons/search.svg

* Updated icons/search.json
2025-05-02 10:31:02 +02:00
Jakob Guddas
e149de42ff fix(metadata): added tags to square-pen icon (#3155)
* Updated icons/square-pen.json

* Updated icons/square-pen.json
2025-05-02 10:27:55 +02:00
gubser
5baa37b85a feat(icons): Added clock plus icon. (#2996)
* Added clock plus icon.

* Reduced gaps.

---------

Co-authored-by: Elio Gubser <3030498-gubser@users.noreply.gitlab.com>
2025-05-02 10:24:08 +02:00
Jakob Guddas
7916c44484 fix(icons): changed expand icon (#2831)
* Updated icons/expand.svg

* Updated icons/expand.json

* Updated icons/expand.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-02 10:23:08 +02:00
Jamie Law
922ba5c781 fix(icons): changed locate-off icon (#3137)
* Updated icons/locate-off.svg

* Updated icons/locate-off.json
2025-05-02 10:14:35 +02:00
Jakob Guddas
c9c1b47e7a fix(icons): changed users icon (#3143)
* Updated icons/users.svg

* Updated icons/users.json
2025-05-02 10:14:09 +02:00
Viktor Andersson
03eb86287a use implicit return in react package (#2325)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-02 09:49:43 +02:00
Karsa
1ab3826607 feat(icons): added brush-cleaning icon (#2395)
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-02 09:40:21 +02:00
shamaamahh
2fde138c46 fix(lucide-svelte): Resolve Svelte 5 deprecation of svelte:component (#3112)
* removed flutter package link

* created drumsticks.svg and json

* Update to Svelte 5 syntax (removed svelte:component)

* Remove drumsticks icons

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-02 09:39:05 +02:00
Jakob Guddas
2640a7c585 docs(icon-design-guide): point people to lucide studio instead of svgo (#3152) 2025-05-02 09:23:36 +02:00
Jakob Guddas
25ce89b191 fix(icons): changed package-2 icon (#3174)
* Updated icons/package-2.svg

* Updated icons/package-2.json
2025-05-02 09:22:30 +02:00
Karsa
fd3f3eb607 feat(icons): added hamburger icon (#3165)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Added icons/hamburger.svg

* Added icons/hamburger.json

* Update hamburger.svg

* Update icons/hamburger.json

* Update icons/hamburger.svg

* Update icons/hamburger.json

Co-authored-by: Jakob Guddas <github@jguddas.de>

---------

Co-authored-by: Karsa <karsa@karsa.org>
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-02 09:21:06 +02:00
Jakob Guddas
b473c10af9 fix(site): remove studio link from navbar (#3166) 2025-04-28 18:01:10 +02:00
Jakob Guddas
a01c15cc8c fix(icons): redesigned brush icon (#3011)
* Updated icons/brush.svg

* Updated icons/brush.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-21 21:19:52 +02:00
Eric Fennis
0fccc276c3 Bump dependencies (#3096) 2025-04-21 12:37:02 +02:00
lukedukeus
06c33964cb update door icons (#3060) 2025-04-21 12:31:07 +02:00
Luis David Lopera
232d7b4557 feat(icons): added wifi-pen icon (#2576)
* Added icons/wifi-pen.svg

* Added icons/wifi-pen.json

* Apply suggestion from @jguddas - wifi-pen.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-21 12:20:25 +02:00
Jakob Guddas
3205e11173 fix(icons): changed file-badge-2 icon (#2933)
* Updated icons/file-badge-2.svg

* Updated icons/file-badge-2.json

* Updated icons/file-badge-2.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
2025-04-21 12:04:24 +02:00
Jakob Guddas
0778ec87ad feat(icons): added ruler-dimension-line icon (#2535) 2025-04-21 11:33:51 +02:00
Brizen Britt
85983552ee fix(docs): PR Conventions (#3066)
* added title for title guidelines

* added example title

---------

Co-authored-by: Jacob Padilla <jp@jacobpadilla.com>
2025-04-21 10:49:10 +02:00
Brizen Britt
7b954807da Added periods (#3065) 2025-04-21 10:45:14 +02:00
Jakob Guddas
9105f0e3dd fix(icons): changed baby icon (#3073)
* Updated icons/baby.svg

* Updated icons/baby.json
2025-04-21 10:38:22 +02:00
Jakob Guddas
fe57bdd291 fix(icons): changed orbit icon (#3074)
* Updated icons/orbit.svg

* Updated icons/orbit.svg
2025-04-21 10:37:41 +02:00
Jakob Guddas
34cb6b12f8 fix(icons): changed clipboard-paste icon (#3075)
* Updated icons/clipboard-paste.svg

* Updated icons/clipboard-paste.json
2025-04-21 10:35:01 +02:00
Jakob Guddas
6a8591c348 Updated icons/book-key.svg (#3062) 2025-04-21 10:31:36 +02:00
Jakob Guddas
547b1846ae fix(icons): changed calendar-plus icon (#3085)
* Updated icons/calendar-plus.svg

* Updated icons/calendar-plus.json
2025-04-21 10:27:03 +02:00
ajokt123
187ce5cff8 fixed grammatical and spelling issues (#3090) 2025-04-21 10:26:20 +02:00
Karsa
40f544433b fix(icons): rebase non-binary on square-asterisk (#3071) 2025-04-19 17:03:51 +02:00
Jacob Padilla
05fa11e073 fixed shredder.json formatting (#3072) 2025-04-19 17:03:27 +02:00
dependabot[bot]
e4988bc1df build(deps-dev): bump vite from 5.4.15 to 5.4.17 (#2993)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.15 to 5.4.17.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.17/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.17/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 5.4.17
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-19 08:42:07 +02:00
Brizen Britt
3a24adec64 Added link for jguddas next to lucide studio (#3063) 2025-04-19 08:39:42 +02:00
Irvine Acosta
a620a0b08c feat(icons): Add columns-3-cog icon (#2763)
* 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>
2025-04-18 17:17:44 +02:00
Jakob Guddas
2cc06fa703 feat: added request-review workflow (#2502)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-18 17:10:38 +02:00
Rokas Brazdžionis
9aac2e8424 feat(angular): export icon data types (#2820)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-18 17:06:27 +02:00
Anthony Mariotti
2517eb642c feat(icons): Add user-lock icon (#2818)
* Added `user-lock` icon

* Corrected lock arc and alignment

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-18 17:01:25 +02:00
LienMaas
7acf492f63 Add electric-truck icon (#1803)
* 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>
2025-04-18 16:58:06 +02:00
Jakob Guddas
abe8910247 fix(icons): changed traffic-cone icon (#2941)
* Updated icons/traffic-cone.svg

* Updated icons/traffic-cone.json

* Updated icons/traffic-cone.svg

* Updated icons/traffic-cone.json

* Updated icons/traffic-cone.json

* Updated icons/traffic-cone.svg

* Updated icons/traffic-cone.json

* Updated icons/traffic-cone.svg
2025-04-18 16:57:25 +02:00
Jakob Guddas
b35b16e96e fix(icons): arcified lamp-* icons (#2267)
* Updated icons/lamp.svg

* Updated icons/lamp-ceiling.svg

* Updated icons/lamp-desk.svg

* Updated icons/lamp-floor.svg

* Updated icons/lamp-wall-down.svg

* Updated icons/lamp-wall-up.svg

* Updated icons/lamp.svg

* Updated icons/lamp-ceiling.svg

* Updated icons/lamp-ceiling.json

* Updated icons/lamp-floor.svg

* Updated icons/lamp-floor.json

* Updated icons/lamp-wall-up.svg

* Updated icons/lamp-wall-up.json

* Updated icons/lamp-wall-down.svg

* Updated icons/lamp-wall-down.json

* Updated icons/lamp-desk.svg

* Updated icons/lamp-desk.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-18 16:52:58 +02:00
Usama Khan
b49c387cfe fix(icons): updated *-cog icons (#2782)
* Updated icons/folder-cog.svg

* Updated icons/folder-cog.json

* Updated icons/folder-cog.svg

* Updated icons/brain-cog.svg

* Updated icons/brain-cog.json

* Updated icons/calendar-cog.svg

* Updated icons/calendar-cog.json

* Updated icons/cloud-cog.svg

* Updated icons/cloud-cog.json

* Updated icons/file-cog.svg

* Updated icons/file-cog.json

* Updated icons/monitor-cog.svg

* Updated icons/monitor-cog.json

* Updated icons/server-cog.svg

* Updated icons/server-cog.json

* Updated icons/user-cog.svg

* Updated icons/user-cog.json

* Updated icons/user-round-cog.svg

* Updated icons/user-round-cog.json

* Updated icons/folder-cog.svg

* Updated icons/file-cog.svg

* Updated icons/folder-cog.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-18 16:51:09 +02:00
Jamie Law
61d6f93023 feat(icons): added bow-arrow icon (#2418)
* Added bow-arrow.svg

* Added bow-arrow.json

* Arcify bow-arrow.svg

* Further arcify bow-arrow.svg

Rounded the tips of the bow
2025-04-18 16:49:10 +02:00
Anna Sas
1a3e9f273e feat(icons): added decimals-arrow-left icon and decimals-arrow-right (#2945)
* fix: name change reflected in contributions

* Added icons/decimals-move-left.json and icons/decimals-move-right.json

* Change: `move` to `arrow`

* Update icons/decimals-arrow-right.json

Co-authored-by: Karsa <contact@karsa.org>

* Change: Updated design to karsa-mistmere example

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-04-18 16:47:46 +02:00
Ali Rashidy
8023c01f37 feat(icons): added shredder icon (#3052)
* Added icons/shredder.svg

* Added icons/shredder.json

* Updated icons/shredder.svg

* Updated icons/shredder.json

* Updated icons/shredder.svg

* Updated icons/shredder.json

* Update icons/shredder.json

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>

* Update icons/shredder.json

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>

* Update shredder.json

Co-authored-by: Jakob Guddas <github@jguddas.de>

* Update shredder.json

* Update icons/shredder.json

Co-authored-by: Jakob Guddas <github@jguddas.de>

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-04-18 16:46:27 +02:00
Ethan Hazel
674a6bf799 feat(icons): added squares-* operation icons (#2585)
* 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>
2025-04-18 16:45:43 +02:00
Ethan Hazel
e3a476a027 feat(icons): added rectangle-goggles icon (#2515)
* Added tiolet icon

* fixed typo lol

* fixed formatting with SVG

* Added icons/vr-headset.svg

* Added icons/vr-headset.json

* removed icon added in from different branch by mistake

* fix(vr-headset): removed circles to avoid conflicts

Co-authored-by: Jakob Guddas <github@jguddas.de>

* fix(rectangle-goggles): Updated name, tags, and contributors

Co-Authored-By: Jakob Guddas <25524993+jguddas@users.noreply.github.com>

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Jakob Guddas <25524993+jguddas@users.noreply.github.com>
2025-04-18 16:44:46 +02:00
Sachin kumar
a021c1dbce feat(icons): added map-pin-edit icon #2874 (#2957)
* Add map-pin-edit icon #2874

* Delete package-lock.json

* fixed contributer inherit

* added contributors

---------

Co-authored-by: SachinSettlrs <sachin.kumar@settlrs.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-18 15:44:18 +02:00
Karsa
a5ea7932dc fix(icons): changed cpu icon (#3033)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/cpu.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-04-18 15:18:26 +02:00
Karsa
6eb67bde5a feat(icons): added brick-wall-fire icon (#3036)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Added icons/brick-wall-fire.svg

* Added icons/brick-wall-fire.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-04-18 15:17:23 +02:00
Jamie Law
19eb810537 fix(icons): changed palette icon (#3015)
* Updated icons/palette.svg

* Updated icons/palette.json
2025-04-18 15:08:28 +02:00
Jakob Guddas
6c865ccd9a feat(ci): adds dpi preview for 16, 32 and 48px (#3048)
* feat(ci): adds dpi preview for 18, 32 and 48px

* Update DPI preview from 18px to 16px

* Consolidate DPI preview sections in markup
2025-04-18 15:02:00 +02:00
Eric Fennis
667c80b39f Add Lucide studio link to CONTRIBUTING.md and site (#3058) 2025-04-18 14:32:07 +02:00
vuong quang huy
dbada2a227 feat(icons): added bubbles icon (#2582)
* Added icons/bubbles.svg

* Added icons/bubbles.json

* Updated icons/bubbles.svg

* Updated icons/bubbles.svg

* Update bubbles.json

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-04-18 12:51:50 +02:00
Ayberk Yavas
849d9c8af2 feat(icons): added heart-plus & heart-minus icon (#2842)
* Added icons/heart-plus.svg

* Added icons/heart-plus.json

* fix(icons): increase spacing in heart-plus icon

- Updated icons/heart-plus.svg
- Updated icons/heart-plus.json

* refactor(icons): updated heart-plus icon

- Refined the heart-plus icon design for better clarity.
- Updated its metadata accordingly.

* feat(icons): added heart-minus icon

- Added heart-minus as the inverse of heart-plus.
- Included its metadata file.

* chore(metadata): remove a tag from heart-plus icon metadata

- Update heart-plus.json
- Remove ui & ux metadata tag

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-18 12:30:40 +02:00
Jakob Guddas
d61d47470f fix(icons): changed pipette icon (#2927)
* Updated icons/pipette.svg

* Updated icons/pipette.json

* Updated icons/pipette.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-18 12:23:15 +02:00
Eric Fennis
8b80cf2cef Merge branch 'main' of https://github.com/lucide-icons/lucide 2025-04-18 12:22:54 +02:00
Eric Fennis
41f6c26228 ci(ci): Fix syntax 2025-04-18 12:22:49 +02:00
Paul Bradbury
02efe87c5a feat(icons): added rotate-ccw-key icon (#2587)
* Added icons/key-refresh.svg

* Added icons/key-refresh.json

* Update and rename key-refresh.json to rotate-ccw-key.json

* Rename key-refresh.svg to rotate-ccw-key.svg

* Update rotate-ccw-key.json

* Update rotate-ccw-key.svg

* Update rotate-ccw-key.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-04-18 12:20:20 +02:00
Jamie Law
dc39f3d96a fix(icons): changed piggy-bank icon (#3044)
* Updated icons/piggy-bank.svg

* Updated icons/piggy-bank.json
2025-04-18 12:14:54 +02:00
Eric Fennis
9879d8f4ed Merge branch 'main' of https://github.com/lucide-icons/lucide 2025-04-18 12:14:24 +02:00
Eric Fennis
f95afd258a ci(ci): Adjust to only trigger on feat(icons) 2025-04-18 12:14:19 +02:00
Jakob Guddas
6ca07ea1bc fix(icons): changed text-cursor-input icon (#3027)
* Updated icons/text-cursor-input.svg

* Updated icons/text-cursor-input.svg
2025-04-18 11:42:49 +02:00
Eric Fennis
3ff082cfd9 Merge branch 'main' of https://github.com/lucide-icons/lucide 2025-04-18 11:37:14 +02:00
Eric Fennis
f776aaa9bc ci(ci): Improve ci trigger 2025-04-18 11:37:09 +02:00
Jakob Guddas
1587bee16d fix(icons): added 2px gap between layers of layers-2 icon (#2918)
* Updated icons/layers-2.svg

* Updated icons/layers-2.json
2025-04-18 11:02:55 +02:00
Eric Fennis
c78686ceca ci(ci): Log push event 2025-04-18 10:42:19 +02:00
Jakob Guddas
a11ba9e1cd fix(react): added aria-hidden fallback for decorative icons (#2158) 2025-04-17 21:02:05 +02:00
Brizen Britt
99d992678a added link for preact in installation (#3025) 2025-04-15 18:06:58 +02:00
Jamie Law
14822456aa Increase toggle size (#3049) 2025-04-15 18:05:51 +02:00
Jakob Guddas
64d6b10239 Updated icons/text-select.svg (#3028) 2025-04-13 14:39:18 +02:00
Jakob Guddas
0232ce490d fix(icons): changed letter-text icon (#3030)
* Updated icons/letter-text.svg

* Updated icons/letter-text.svg
2025-04-13 14:38:54 +02:00
Jakob Guddas
9d9e2c995a fix(icons): changed text icon (#3029)
* Updated icons/text.svg

* Updated icons/text.json
2025-04-13 14:38:44 +02:00
Jakob Guddas
c68ee7f9a0 feat(ci): added npm package provenance attestation (#3016) 2025-04-11 10:39:20 +02:00
shamaamahh
5f5e052038 removed flutter package link (#2999) 2025-04-08 11:41:10 +02:00
Spencer Smith
aeb376f3a2 Typo fix for @lucide/astro badge (#3004) 2025-04-08 08:55:24 +02:00
dependabot[bot]
ed733916f3 build(deps-dev): bump vite from 5.4.14 to 5.4.15 (#2946)
* build(deps-dev): bump vite from 5.4.14 to 5.4.15

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.14 to 5.4.15.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.15/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.15/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Revert icon change

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-04-04 14:26:19 +02:00
Brizen Britt
64a8b7d4d0 Changed packageData.name to pJson.name (#2983)
Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-04-03 09:49:16 +02:00
realguse
c138c2e97d docs(readme): fix packages table (#2976) 2025-04-03 09:47:30 +02:00
Dania Rifki
d82718b222 feat(icons): added spline-pointer icon (#2932)
* 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
2025-04-02 08:44:42 +02:00
Eric Fennis
acdcf74faf ci(release): Fix publishing scoped packages 2025-04-02 08:41:11 +02:00
Happydev
9fa525e8c6 feat(@lucide/astro): add lucide package for Astro (#2665)
* feat(lucide-astro): initial commit

* test: add test suite

* fix module resolution issue

* chore: update lock file

* chore: update lock file

* chore: fix precommit hook failing

* sync icons generated by precommit hook

* remove useless tab in template

* style: add space for readability

* docs: add bun installation instructions

* fix `clean` script

* fix testing setup

* remove unnecessary `key` props in Astro icons

* fix jest matchers types and undefined behavior

* chore: update lock file

* setup prettier for formatting Astro files

* remove mistakenly added prop from the `Icon` component

* docs: add documentation for new Astro package

* fix incorrect types in `Icon` component

* refactor: use `stroke-width` over `strokeWidth`

* fix unexpected module resolution behavior

* remove hack in test types

* remove review marker

* docs: progress on documentation of lucide-astro

* chore: remove unnecessary .gitignore

* docs: add sidebar entry

* edit package description

* fix uneven icon heights in homepage packages list

* docs: add package to readme table

* add workflows for lucide-astro package

* docs: add package-logos

* use the appropriate Astro logo in light and dark mode

* Remove inadvertently added class

* Update snapshots to reflect removed class `lucide-icon`

* remove dependency on internal `@lucide/shared` package

* fix: revert changes

* revert grid-2x2-x.json

* revert grid-2x2-check.json

* revert picture-in-picture svg

* add package in labeler workflow

* add previously uncommited utils.ts file

* fix dom type errors

* up one major from legacy package

* add package to issue and feature request templates

* docs: add acknowledgement of Aviortheking as original creator of the package

* format

* optimization: more lightweight component footprint

* refactor: simplify removal of `data-astro-source` debugging attributes

* format

* style: fix linting error once again 😠

* wip: rename package to `@lucide/astro`

* remove acknowledgment of `lucide-astro`

* fix error caused by change in build tooling

* chore: upgrade dependencies

* chore: rename lucide-astro folder

* further renaming

* use correct package name in key

* more renaming

* chore: update lock file

* apply review suggestions (#1)

set correct path for package in actions

* apply suggestions from code review (#2)

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>

* apply @dotspencer's review

resolve correct link to package docs page and github source

* Format files

---------

Co-authored-by: realguse <realguse@icloud.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-03-31 16:20:33 +02:00
Joffre Veloz
20c0012e62 feat(icons): added banknote-arrow-up icon (#2947)
* Added icons/banknote-arrow-up.svg

* Added icons/banknote-arrow-up.json

* Update banknote-arrow-up.json

* Update banknote-arrow-up.svg

* Update icons/banknote-arrow-up.json

Co-authored-by: Karsa <contact@karsa.org>

* Update icons/banknote-arrow-up.json

Co-authored-by: Karsa <contact@karsa.org>

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-03-28 15:16:00 +01:00
Joffre Veloz
70248c0f42 feat(icons): added banknote-x icon (#2949)
* Added icons/banknote-x.svg

* Added icons/banknote-x.json

* Update banknote-x.json

* Update banknote-x.svg

* Update icons/banknote-x.json

Co-authored-by: Karsa <contact@karsa.org>

* Update icons/banknote-x.json

Co-authored-by: Karsa <contact@karsa.org>

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-03-28 15:15:48 +01:00
Joffre Veloz
f8af6ae309 feat(icons): added banknote-arrow-down icon (#2948)
* Added icons/banknote-arrow-down.svg

* Added icons/banknote-arrow-down.json

* Update banknote-arrow-down.json

* Update banknote-arrow-down.svg

* Update icons/banknote-arrow-down.json

Co-authored-by: Karsa <contact@karsa.org>

* Update icons/banknote-arrow-down.json

Co-authored-by: Karsa <contact@karsa.org>

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-03-28 15:15:28 +01:00
Karsa
e8f64d8dcc fix(icons): arcified candy & candy-off (#2944) 2025-03-25 17:06:23 +01:00
Jakob Guddas
4ea41dc329 feat(ci): add x.com to brand filter (#2939)
* ci: add `x.com` to brand filter

* Update custom-words.txt
2025-03-24 09:33:02 +01:00
Dante Issaias
4835ae67a9 fix(packages): consistent icon name class (#2878)
* fix: consistent icon name class

* merge classes

* fix vue-next

* update test snapshots

* fix vue-next

* fix test

* fix solid

* proper deduplication

* update snapshots

* preact

* refactor

* deprecated

* refactor tests

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-03-21 11:35:54 +01:00
dependabot[bot]
6d6aa4c4cc build(deps): bump tj-actions/changed-files in /.github/workflows (#2920)
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 41 to 46.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v41...v46)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-18 14:09:31 +01:00
lukedukeus
70dad77b96 feat(icons): updates filter & adds filter-plus icon (#2917)
* Added icons/filter-add.svg

* Added icons/filter-add.json

* add contributors

* rename according to naming conventions

* add missing tags

* fill gap between plus sign and funnel

* Update icons/filter-plus.svg

Co-authored-by: Karsa <contact@karsa.org>

* update filter icons

* rename filter to funnel

* tidy up

* Update funnel.svg

* Update funnel-x.svg

* Update funnel-plus.svg

* Update funnel-x.json

* Update funnel.json

* Update funnel-x.json

* Update funnel.json

* Update funnel-plus.json

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-03-18 13:43:37 +01:00
Karsa
cc09030f9d fix(packages/lucide-angular): restore exporting prefixed and suffixed icon names (#2919) 2025-03-18 13:43:21 +01:00
Jakob Guddas
73a6c8045d ci: added pix to brand filter (#2908) 2025-03-17 14:38:56 +01:00
Albaraa Hasan
fccfaa3dd0 feat(icons): add saudi-riyal Symbol (#2827)
* 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>
2025-03-14 18:49:52 +01:00
Anupam Mediratta
14fec0e184 fix(deps): CVE-2024-21538 (#2871)
* fix: CVE-2024-21538 - Update package dependencies

* Update lockfile

* Format

---------

Co-authored-by: Security Bot <security-bot@github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-03-14 16:34:42 +01:00
Jakob Guddas
fcebb5c4db feat(icons): added clock-fading icon (#2405)
* Added icons/clock-fading.svg

* Added icons/clock-fading.json
2025-03-14 16:03:53 +01:00
Jakob Guddas
1058ea5ae3 feat(icons): added shrimp icon (#2319)
* Added icons/shrimp.svg

* Added icons/shrimp.json

* Updated icons/shrimp.json
2025-03-14 15:44:33 +01:00
Jamie Law
e08a1f7973 fix(icons): changed infinity icon (#2868)
* Updated icons/infinity.svg

* Updated icons/infinity.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-03-14 15:37:15 +01:00
Eric Fennis
07f9d3ea79 ci(node): Use correct node version (#2877)
* ci(node): Use correct node version

* Remove overrides

* update lock file

* Change assert to with

* Remove duplicated version
2025-03-14 11:29:59 +01:00
Karsa
73a2c9da6c fix(icons): arcified newspaper (#2885) 2025-03-14 11:25:29 +01:00
Brizen Britt
afa4176737 fix(docs): Resolves #2887 (#2889)
* play with image

* changes to width

* changes to contributing image to show on github
2025-03-14 11:25:08 +01:00
FOSS-VFX
cb86576661 Fix grammatical inconsistencies (#2899) 2025-03-14 09:09:25 +01:00
Jakob Guddas
9b738c1cb6 ci: added bluesky and spotify to brand list filter (#2857)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-03-07 16:40:12 +01:00
Eric Fennis
aefb710e5c feat(@lucide/svelte): Lucide svelte 5 package (#2753)
* 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>
2025-03-07 13:44:09 +01:00
Jakob Guddas
df063fa378 Updated icons/brackets.svg (#2863)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-03-07 13:03:57 +01:00
Eric Fennis
2c3b6754d5 ci: Update the release workflow 2025-03-07 12:59:41 +01:00
Eric Fennis
47303ac790 ci: Fix icon preview comment 2025-03-07 12:36:32 +01:00
Eric Fennis
3aab3b9b08 fix: Icon preview comment workflow 2025-03-07 12:25:36 +01:00
Eric Fennis
3d29ab9279 ci: Fix icon preview comment - remove bracket 2025-03-07 11:58:36 +01:00
Eric Fennis
e0fbbb6f2d ci: Fix icon preview comment attempt 3 2025-03-07 11:56:43 +01:00
Eric Fennis
c1331798f5 Merge branch 'main' of https://github.com/lucide-icons/lucide 2025-03-07 11:14:21 +01:00
Eric Fennis
ddad14a96d ci: Fix attempt 2 issue with icon preview comments 2025-03-07 11:14:17 +01:00
Anna Sas
a17609b5e4 fix: name change reflected in contributions (#2866) 2025-03-07 11:02:10 +01:00
Eric Fennis
e619963183 ci: fix PR comment workflow 2025-03-07 11:00:07 +01:00
Jakob Guddas
56948fe7c2 fix(ci): run lint pr title on title change (#2872) 2025-03-07 10:48:56 +01:00
Eric Fennis
68116414d0 ci(pr-comment): Fix icon preview comment on PRs (#2854)
* fix: PR icon Comment

* formatting
2025-03-07 10:48:06 +01:00
liamb13
16a18f7908 feat(icons): added square-round-corner icon (#2323)
* 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>
2025-02-28 18:00:52 +01:00
dependabot[bot]
ae8af191f7 build(deps-dev): bump vitest from 0.32.4 to 0.33.0 (#2799)
* build(deps-dev): bump vitest from 0.32.4 to 0.33.0

Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 0.32.4 to 0.33.0.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v0.33.0/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps-dev): bump vitest from 0.32.4 to 0.33.0

Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 0.32.4 to 0.33.0.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v0.33.0/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update vitest

* Update vitest

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-02-28 17:59:23 +01:00
dependabot[bot]
1787b82cfe build(deps-dev): bump vite from 5.4.13 to 5.4.14 in /packages/lucide (#2804)
* build(deps-dev): bump vite from 5.4.13 to 5.4.14 in /packages/lucide

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.13 to 5.4.14.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.14/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.14/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update lockfile

* Update all vite versions

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-02-28 17:36:25 +01:00
dependabot[bot]
0e49b2b88c build(deps-dev): bump solid-js from 1.8.14 to 1.9.4 (#2844)
Bumps [solid-js](https://github.com/solidjs/solid) from 1.8.14 to 1.9.4.
- [Release notes](https://github.com/solidjs/solid/releases)
- [Changelog](https://github.com/solidjs/solid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/solidjs/solid/compare/v1.8.14...v1.9.4)

---
updated-dependencies:
- dependency-name: solid-js
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-02-28 17:23:50 +01:00
dependabot[bot]
bab52d7333 build(deps-dev): bump vite from 5.4.13 to 5.4.14 in /packages/lucide-vue-next (#2805)
* build(deps-dev): bump vite in /packages/lucide-vue-next

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.13 to 5.4.14.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.14/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.14/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

* update lockfile

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-02-28 17:23:17 +01:00
Eric Fennis
c96260d82a style(scripts): Fix formatting 2025-02-28 15:06:39 +01:00
Eric Fennis
3c23331e9e ci(actions): Update & cleanup actions (#2764)
* Update actions

* Update workflows

* Remove double jobs
2025-02-28 14:59:41 +01:00
Danilo Leal
5a7c49dc55 Make input autofocus as page reloads (#2581)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-02-28 11:12:16 +01:00
Jakob Guddas
6ae047557e docs: updated guideline icons (#2676)
* docs: updated guideline icons

* Update docs/images/1px-border-radius.svg

* Update docs/images/1px-border-radius.svg

* Update docs/images/1px-padding.svg

* Update docs/images/24px-24px.svg

* Update docs/images/2px-element-spacing.svg

* Update docs/images/2px-stroke.svg
2025-02-28 11:11:48 +01:00
Epifânio Francisco
fa064306fa feat(docs): Add deprecated badge for icons with deprecation status (#2618)
* 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>
2025-02-28 11:10:50 +01:00
Jakob Guddas
4f46f43379 fix(icons): added tags to circle-slash-2 icon (#2837)
* Updated icons/circle-slash-2.svg

* Updated icons/circle-slash-2.json
2025-02-25 09:22:49 +01:00
Eric Fennis
fc87643aae Merge branch 'main' of https://github.com/lucide-icons/lucide 2025-02-25 09:21:44 +01:00
Eric Fennis
6f4f47684f fix(scripts): Remove console.log 2025-02-25 09:21:40 +01:00
Sebestyén Németh
c6632ce8d7 feat(icons): added shield-user icon (#2608)
* Added icons/shield-user.svg

* Added icons/shield-user.json

* Update shield-user.svg

Apply suggestion by @karsa-mistmere at https://github.com/lucide-icons/lucide/pull/2608#issuecomment-2541214222

* Inherit coontributors

* Close gaps in svg

* Simplify arc

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-02-25 09:13:45 +01:00
Eric Fennis
a59c5de61a fix(scripts): Add extra const for path mapping 2025-02-24 10:28:54 +01:00
Eric Fennis
2bd0ae55fd fix(scripts): Add await to readSvgDirectory 2025-02-24 10:18:58 +01:00
Eric Fennis
3f2ad5b2a6 fix(lucide): Lucide create element function returning SVG Element (#2816)
* Fix create element function

* Formatting

* Adjust documentation
2025-02-24 10:10:28 +01:00
Jakob Guddas
1250fc276d fix(icons): optimized beef icon (#2832)
* ci: Improve build speeds (#2778)

* Revert sync to async functions

* Replace more sync fs functions

* Format files

* Fix build svelte package

* build(deps): bump esbuild from 0.19.12 to 0.25.0 (#2791)

Bumps [esbuild](https://github.com/evanw/esbuild) from 0.19.12 to 0.25.0.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2024.md)
- [Commits](https://github.com/evanw/esbuild/compare/v0.19.12...v0.25.0)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump vite from 5.1.8 to 5.4.12 (#2786)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.1.8 to 5.4.12.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.12/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.12/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps-dev): bump vite from 5.4.12 to 5.4.13 (#2798)

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.12 to 5.4.13.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.13/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.13/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: Add await to checkIconsAndCategories script

* fix(lucide-react): Revert exports property package.json, fixing edge worker environments. (#2814)

* Revert exports prop

* Adjust export

* Adjust export path

* Add to gitignore

* Adjust build process

* Update .gitignore and add dynamicIconImports module

* Formatting

* refactor: Optimize readAllMetadata function to use Promise.all for concurrent metadata reading

* refactor(scripts): Formatting in readAllMetadata

* Updated icons/beef.svg

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-24 10:09:14 +01:00
390 changed files with 16265 additions and 4700 deletions

View File

@@ -15,3 +15,4 @@ toc
codepen
codesandbox
dribbble
x.com

View File

@@ -22,6 +22,7 @@ body:
- label: lucide-svelte
- label: lucide-vue
- label: lucide-vue-next
- label: lucide-astro
- label: Figma plugin
- label: source/main
- label: other/not relevant

View File

@@ -22,6 +22,7 @@ body:
- label: lucide-svelte
- label: lucide-vue
- label: lucide-vue-next
- label: lucide-astro
- label: Figma plugin
- label: all JS packages
- label: site

View File

@@ -1,44 +0,0 @@
name: 'Build and Test'
description: 'Builds and test a package'
inputs:
name:
description: “Name of the package”
required: true
runs:
using: 'composite'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 16
- uses: pnpm/action-setup@v2
name: Install pnpm
id: pnpm-install
with:
version: 8
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --filter lucide-preact
- name: Build
run: pnpm --filter lucide-preact build
- name: Test
run: pnpm --filter lucide-preact test

View File

@@ -1,41 +0,0 @@
name: 'Check icons'
description: 'Cross-checks icon and category references in JSON descriptors'
inputs:
name:
description: “Name of the package”
required: true
runs:
using: 'composite'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 16
- uses: pnpm/action-setup@v2
name: Install pnpm
id: pnpm-install
with:
version: 8
run_install: false
- name: Get pnpm store directory
id: pnpm-cache
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --filter .
- name: Check icons and categories
run: pnpm checkIcons

6
.github/labeler.yml vendored
View File

@@ -79,6 +79,12 @@
- any-glob-to-any-file:
- 'packages/lucide-solid/*'
# For changes in the lucide astro package
🚀 astro package:
- changed-files:
- any-glob-to-any-file:
- 'packages/astro/*'
# For changes in the lucide static package
🪨 static package:
- changed-files:

View File

@@ -1,16 +1,18 @@
<!-- Thank you for contributing! -->
<!--
PR Title Guidelines:
Please use the format: <type>(<scope>): <short description>
Example: feat(icons): added `camera` icon
Available types: fix, feat, perf, docs, style, refactor, test, chore, ci, build
Common scopes: icons, docs, studio, site, dev
-->
<!-- Insert `closes #issueNumber` here if merging this PR will resolve an existing issue -->
## What is the purpose of this pull request?
<!-- Please choose one of the following, and put an "x" next to it. -->
- [ ] New Icon
- [ ] Bug fix
- [ ] New Feature
- [ ] Documentation update
- [ ] Other:
### Description
## Description
<!-- Please insert your description here and provide info about the "what" this PR is contribution -->
### Icon use case <!-- ONLY for new icons, remove this part if not icon PR -->

View File

@@ -9,18 +9,18 @@ on:
jobs:
create-release:
if: github.repository == 'lucide-icons/lucide'
if: github.repository == 'lucide-icons/lucide' && startsWith(github.event.head_commit.message, 'feat(icons)')
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.new-version.outputs.NEW_VERSION }}
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -61,8 +61,40 @@ jobs:
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ steps.new-version.outputs.NEW_VERSION }}
name: New icons ${{ steps.new-version.outputs.NEW_VERSION }}
body: ${{ steps.change-log.outputs.CHANGE_LOG }}
name: Version ${{ steps.new-version.outputs.NEW_VERSION }}
generate_release_notes: true
test-semantic-release:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Semantic Release
id: semantic
uses: cycjimmy/semantic-release-action@v4
with:
tag_format: ${version}
branches: |
['new-release-workflow']
extends: |
semantic-release-monorepo
extra_plugins: |
@semantic-release/github
@semantic-release/git
@semantic-release/release-notes-generator
conventional-changelog-conventionalcommits
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Log output
if: steps.semantic.outputs.new_release_published == 'true'
run: |
echo ${{ steps.semantic.outputs.new_release_version }}
echo ${{ steps.semantic.outputs.new_release_major_version }}
echo ${{ steps.semantic.outputs.new_release_minor_version }}
echo ${{ steps.semantic.outputs.new_release_patch_version }}
start-release:
if: github.repository == 'lucide-icons/lucide'

View File

@@ -11,12 +11,12 @@ jobs:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Check for blocked phrases in issue title
run: |
ISSUE_TITLE=$(jq -r '.issue.title' "$GITHUB_EVENT_PATH")
BLOCKED_PHRASES=("twitter" "whatsapp" "logo" "google" "tiktok" "facebook" "slack" "discord" "bluesky")
BLOCKED_PHRASES=("twitter" "whatsapp" "logo" "google" "tiktok" "facebook" "slack" "discord" "bluesky" "spotify" "behance" "pix" "x.com")
# Check title and body for blocked phrases
for PHRASE in "${BLOCKED_PHRASES[@]}"

View File

@@ -0,0 +1,58 @@
name: Icon preview comment
on:
workflow_run:
workflows: ['Pull request icon preview']
types:
- completed
jobs:
upload:
runs-on: ubuntu-latest
if: >
github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion == 'success'
steps:
- name: 'Download artifact'
uses: actions/github-script@v7
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name == "pr_number"
})[0];
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
const fs = require('fs');
fs.writeFileSync('${{github.workspace}}/pr_number.zip', Buffer.from(download.data));
- name: 'Unzip artifact'
run: unzip pr_number.zip
- name: 'Get PR number'
run: echo "number=$(cat NR)" >> $GITHUB_OUTPUT
id: pr-number
- name: Find Comment
uses: peter-evans/find-comment@v2
id: pr-comment
with:
issue-number: ${{ steps.pr-number.outputs.number }}
comment-author: 'github-actions[bot]'
body-includes: Added or changed icons
- name: Create or update comment
uses: peter-evans/create-or-update-comment@v3
with:
comment-id: ${{ steps.pr-comment.outputs.comment-id }}
issue-number: ${{ steps.pr-number.outputs.number }}
body-path: comment-markup.md
edit-mode: replace

View File

@@ -1,20 +1,20 @@
name: Linting
name: Linting PR
on:
pull_request:
branches:
- '**'
paths-ignore:
- icons/*.svg
jobs:
linting:
lint-code:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install Dependencies
run: pnpm install --frozen-lockfile

32
.github/workflows/lint-pr-title.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: Linting PR
on:
pull_request:
types:
- opened
- edited
- reopened
jobs:
lint-pr-title:
name: PR Title Lint
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
types: |
fix
feat
perf
refactor
test
style
docs
ci
build
chore
requireScope: true
ignoreLabels: |
bot

36
.github/workflows/linting-icons.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
name: Linting Icons
on:
pull_request:
paths:
- 'icons/*'
jobs:
lint-filenames:
name: Lint Filenames
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v46
with:
files: icons/*
- name: Generate annotations
run: node ./scripts/lintFilenames.mjs
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
lint-aliases:
name: Check Uniqueness of Aliases
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Check Uniqueness of Aliases
run: "! cat <(printf \"%s\\n\" icons/*.json | while read -r name; do basename \"$name\" .json; done) <(jq -cr 'select(.aliases) | .aliases[] | if type==\"string\" then . else .name end' icons/*.json) | sort | uniq -c | grep -ve '^\\s*1 '"

View File

@@ -12,11 +12,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -27,12 +27,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3.8.1
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -1,12 +1,11 @@
name: Lucide Vue checks
name: Lucide Astro Checks
on:
pull_request:
paths:
- packages/lucide-vue/**
- packages/astro/**
- packages/shared/**
- tools/build-icons/**
- tools/rollup-plugins/**
- pnpm-lock.yaml
jobs:
@@ -24,7 +23,7 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm --filter lucide-vue build
run: pnpm --filter @lucide/astro build
test:
runs-on: ubuntu-latest
@@ -40,4 +39,4 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Test
run: pnpm --filter lucide-vue test
run: pnpm --filter @lucide/astro test

View File

@@ -3,7 +3,6 @@ name: Lucide font checks
on:
pull_request:
paths:
- icons/**
- tools/build-font/**
- pnpm-lock.yaml
@@ -12,11 +11,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -28,7 +27,7 @@ jobs:
run: pnpm build:font
- name: 'Upload to Artifacts'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: lucide-font
path: lucide-font

View File

@@ -14,11 +14,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -10,15 +10,31 @@ on:
- pnpm-lock.yaml
jobs:
lucide-react-native:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm --filter lucide-react-native build
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -15,11 +15,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -30,12 +30,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3.8.1
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -10,12 +10,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3.8.1
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -14,11 +14,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -29,12 +29,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3.8.1
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -12,11 +12,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

43
.github/workflows/lucide-svelte-5.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: Lucide Svelte 5 checks
on:
pull_request:
paths:
- packages/svelte/**
- packages/shared/**
- tools/build-icons/**
- tools/rollup-plugins/**
- pnpm-lock.yaml
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm --filter @lucide/svelte build
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Test
run: pnpm --filter @lucide/svelte test

View File

@@ -14,11 +14,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -29,12 +29,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3.8.1
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -14,11 +14,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -29,12 +29,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3.8.1
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -13,11 +13,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -28,12 +28,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3.8.1
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -0,0 +1,43 @@
name: Pull request icon preview
on:
pull_request:
paths:
- 'icons/*.svg'
jobs:
generate-changed-icons-comment:
name: Generate Changed Icons Comment
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v46
with:
files: icons/*.svg
- uses: actions/setup-node@v4
- name: Install svgson for code preview (safer and faster than installing all deps)
run: npm install svgson
- name: Save PR number
run: |
mkdir -p ./pr
echo ${{ github.event.number }} > ./pr/NR
- name: Generate comment markup
run: node ./scripts/generateChangedIconsCommentMarkup.mjs >> ./pr/comment-markup.md
id: comment-markup
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
- uses: actions/upload-artifact@v4
with:
name: pr_number
path: pr/

View File

@@ -1,123 +0,0 @@
name: Add Changed Icons comment
on:
pull_request_target:
paths:
- 'icons/*'
branches:
- main
- fix-icon-preview
jobs:
lint-filenames:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v41
with:
files: icons/*
- name: Generate annotations
run: node ./scripts/lintFilenames.mjs
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
lint-contributors:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v41
with:
files: icons/*
- uses: actions/setup-node@v4
- name: Install simple-git (safer and faster than installing all deps)
run: npm install simple-git
- name: Generate annotations
run: node ./scripts/updateContributors.mjs
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FETCH_DEPTH: ${{ github.event.pull_request.commits }}
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
- name: Generate annotations
env:
ANNOTATION_SEVERITY: notice
ANNOTATION_TITLE: Contributors have changed!
ANNOTATION_DESCRIPTION: Don't add people who have only performed automatic optimizations.
run: |
git diff --unified=0 -- icons/*.json | # diff icon metadata (unified=0 gives the correct chunk line number)
perl -ne '/^(\+|- |@)/ && print' | # get chunks (lines that start with "+++", "@@", "+ ", "- ")
perl -pe 's/\n/%0A/' | # url encode line breaks (\n -> %0A)
perl -pe 's/%0A(\+\+\+ b\/)/\n\1/g' | # split chunks(one chunk per line)
perl -pe "s/\+\+\+ b\/([^@]*)%0A@@ -(\d+)[^\s]* \+(\d+)[^@]*@@(.*)/::$ANNOTATION_SEVERITY file=\1,line=\2,endLine=\3,title=$ANNOTATION_TITLE::$ANNOTATION_DESCRIPTION%0A\4/"
# Example for the previous substitution
# input: +++ b/icons/accessibility.json%0A@@ -2,0 +3 @@%0A+ "contributors": ["hi"],%0A@@ -13 +14 @@%0A+}%0A
# output: ::$ANNOTATION_SEVERITY file=icons/accessibility.json,line=2,endLine=3,title=$ANNOTATION_TITLE::$ANNOTATION_DESCRIPTION%0A%0A+ "contributors": ["hi"],%0A@@ -13 +14 @@%0A+}%0A
lint-aliases:
name: Check Uniqueness of Aliases
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Check Uniqueness of Aliases
run: "! cat <(printf \"%s\\n\" icons/*.json | while read -r name; do basename \"$name\" .json; done) <(jq -cr 'select(.aliases) | .aliases[] | if type==\"string\" then . else .name end' icons/*.json) | sort | uniq -c | grep -ve '^\\s*1 '"
generate-changed-icons-comment:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v41
with:
files: icons/*.svg
- name: Find Comment
uses: peter-evans/find-comment@v2
id: pr-comment
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: Added or changed icons
- uses: actions/setup-node@v4
- name: Install svgson for code preview (safer and faster than installing all deps)
run: npm install svgson
- name: Generate comment markup
run: node ./scripts/generateChangedIconsCommentMarkup.mjs >> comment-markup.md
id: comment-markup
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
- name: Create or update comment
uses: peter-evans/create-or-update-comment@v3
with:
comment-id: ${{ steps.pr-comment.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body-path: ./comment-markup.md
edit-mode: replace

View File

@@ -38,6 +38,8 @@ jobs:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
needs: pre-release
permissions:
id-token: write
strategy:
fail-fast: false
matrix:
@@ -52,14 +54,16 @@ jobs:
'lucide-preact',
'lucide-solid',
'lucide-svelte',
'@lucide/astro',
'@lucide/svelte',
]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -77,20 +81,24 @@ jobs:
run: pnpm --filter ${{ matrix.package }} test
- name: Publish
run: pnpm --filter ${{ matrix.package }} publish --no-git-checks --ignore-scripts
run: pnpm --filter ${{ matrix.package }} publish --access public --no-git-checks --ignore-scripts
env:
NPM_CONFIG_PROVENANCE: true
lucide-static:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
needs: [pre-release, lucide-font]
permissions:
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
- uses: pnpm/action-setup@v2
- uses: actions/download-artifact@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -109,6 +117,8 @@ jobs:
- name: Publish
run: pnpm --filter lucide-static publish --no-git-checks
env:
NPM_CONFIG_PROVENANCE: true
lucide-font:
if: github.repository == 'lucide-icons/lucide'
@@ -116,11 +126,11 @@ jobs:
needs: pre-release
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -132,7 +142,7 @@ jobs:
run: pnpm build:font
- name: 'Upload to Artifacts'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: lucide-font
path: lucide-font
@@ -144,14 +154,14 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
- name: Zip font and icons
run: |
zip -r lucide-font-${{ needs.pre-release.outputs.VERSION }}.zip lucide-font
zip -r lucide-icons-${{ needs.pre-release.outputs.VERSION }}.zip icons
- name: Release zip and fonts
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ needs.pre-release.outputs.VERSION }}
files: |

32
.github/workflows/request-review.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: 'Request Review'
on:
pull_request_target:
types: [opened]
paths: icons/*.svg
jobs:
request-review:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v41
with:
files: icons/*.svg
- run: |
while IFS= read -r file; do
jq -r '.contributors[]' "${file%.svg}.json"
done <<< "$CHANGED_FILES" | while read -r contributor; do
gh pr edit "${{ github.event.pull_request.number }}" --add-reviewer "$contributor" || true
done
env:
GH_TOKEN: ${{ github.token }}
CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}

View File

@@ -16,10 +16,10 @@ Guidelines for pull requests:
- __Make your commit messages as descriptive as possible.__ Include as much information as you can. Explain anything that the file diffs themselves wont 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 bug fixes 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:
#### [Adobe Illustrator Guide](https://lucide.dev/docs/illustrator-guide)
##### [Adobe Illustrator Guide](https://lucide.dev/docs/illustrator-guide)
You can also [download an Adobe Illustrator template](https://github.com/lucide-icons/lucide/blob/main/docs/public/templates/illustrator_template.ai).
#### [Inkscape Guide](https://lucide.dev/docs/inkscape-guide)
##### [Inkscape Guide](https://lucide.dev/docs/inkscape-guide)
#### [Figma Guide](https://lucide.dev/docs/figma-guide)
##### [Figma Guide](https://lucide.dev/docs/figma-guide)
#### [Affinity Designer Guide](https://lucide.dev/guide/design/affinity-designer-guide)
##### [Affinity Designer Guide](https://lucide.dev/guide/design/affinity-designer-guide)
### 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.
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`, `bun 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
@@ -165,15 +169,15 @@ 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.
> 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
@@ -190,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!
<a href="https://github.com/lucide-icons/lucide/graphs/contributors">
<img src="https://opencollective.com/lucide-icons/contributors.svg?width=890" /></a>
<img src="https://opencollective.com/lucide-icons/contributors.svg?width=800" /></a>

View File

@@ -40,6 +40,7 @@ Lucide is an open-source icon library that provides 1000+ vector (svg) files for
| <img src="https://lucide.dev/framework-logos/preact.svg" alt="Preact logo" width="48"> | **`lucide-preact`** | [![npm](https://img.shields.io/npm/v/lucide-preact)](https://www.npmjs.com/package/lucide-preact) | ![NPM Downloads](https://img.shields.io/npm/dw/lucide-preact) | [Docs](https://lucide.dev/guide/packages/lucide-preact) · [Source](./packages/lucide-preact) |
| <img src="https://lucide.dev/framework-logos/react-native.svg" alt="React Native logo" width="48"> | **`lucide-react-native`** | [![npm](https://img.shields.io/npm/v/lucide-react-native)](https://www.npmjs.com/package/lucide-react-native) | ![NPM Downloads](https://img.shields.io/npm/dw/lucide-react-native) | [Docs](https://lucide.dev/guide/packages/lucide-react-native) · [Source](./packages/lucide-react-native) |
| <img src="https://lucide.dev/framework-logos/angular.svg" alt="Angular logo" width="48"> | **`lucide-angular`** | [![npm](https://img.shields.io/npm/v/lucide-angular)](https://www.npmjs.com/package/lucide-angular) | ![NPM Downloads](https://img.shields.io/npm/dw/lucide-angular) | [Docs](https://lucide.dev/guide/packages/lucide-angular) · [Source](./packages/lucide-angular) |
| <img src="https://lucide.dev/framework-logos/astro.svg" alt="Astro logo" width="48"> | **`@lucide/astro`** | [![npm](https://img.shields.io/npm/v/@lucide/astro)](https://www.npmjs.com/package/@lucide/astro) | ![NPM Downloads](https://img.shields.io/npm/dw/@lucide/astro) | [Docs](https://lucide.dev/guide/packages/lucide-astro) · [Source](./packages/astro) |
| <img src="https://lucide.dev/framework-logos/svg.svg" alt="SVG logo" width="48"> | **`lucide-static`** | [![npm](https://img.shields.io/npm/v/lucide-static)](https://www.npmjs.com/package/lucide-static) | ![NPM Downloads](https://img.shields.io/npm/dw/lucide-static) | [Docs](https://lucide.dev/guide/packages/lucide-static) · [Source](./packages/lucide-static) |
### Figma
@@ -69,7 +70,9 @@ Lucide is totally free for commercial use and personal use, this software is lic
Thank you to all the people who contributed to Lucide!
<a href="https://github.com/lucide-icons/lucide/graphs/contributors">
<img src="https://opencollective.com/lucide-icons/contributors.svg?width=890" /></a>
<img src="https://opencollective.com/lucide-icons/contributors.svg?width=800" />
</a>
## Sponsors

View File

@@ -127,8 +127,27 @@
}
]
},
"lucide-static": {
"@lucide/astro": {
"docsAlias": "lucide-astro",
"packageDirname": "astro",
"order": 8,
"icon": "astro",
"iconDark": "astro-dark",
"shields": [
{
"alt": "npm",
"src": "https://img.shields.io/npm/v/@lucide/astro",
"href": "https://www.npmjs.com/package/@lucide/astro"
},
{
"alt": "npm",
"src": "https://img.shields.io/npm/dw/@lucide/astro",
"href": "https://www.npmjs.com/package/@lucide/astro"
}
]
},
"lucide-static": {
"order": 9,
"icon": "svg",
"shields": [
{

View File

@@ -79,7 +79,7 @@
},
{
"name": "lucide-lustre",
"description": "A library providing https://lucide.dev icons to lustre",
"description": "A library providing https://lucide.dev icons to lustre.",
"icon": "/framework-logos/lustre.webp",
"shields": [
{

View File

@@ -96,6 +96,10 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
text: 'Lucide Preact',
link: '/guide/packages/lucide-preact',
},
{
text: 'Lucide Astro',
link: '/guide/packages/lucide-astro',
},
{
text: 'Lucide Static',
link: '/guide/packages/lucide-static',

View File

@@ -38,6 +38,7 @@ const value = computed({
<Input
ref="input"
type="search"
autofocus
v-bind="$attrs"
v-model="value"
class="input-wrapper"

View File

@@ -3,11 +3,13 @@
import { Switch } from '@headlessui/vue'
const enabled = ref(false)
</script>
<template>
<Switch
v-model="enabled"
:key="enabled"
class="switch"
:class="{ enabled }"
>

View File

@@ -48,10 +48,12 @@ function resetStyle () {
color.value = 'currentColor'
strokeWidth.value = 2
size.value = 24
absoluteStrokeWidth.value = false;
}
watch(absoluteStrokeWidth, (enabled) => {
iconContainer.value?.classList.toggle('absolute-stroke-width', enabled)
})
</script>
@@ -121,6 +123,9 @@ watch(absoluteStrokeWidth, (enabled) => {
>
<template #display>
<Switch
:key="absoluteStrokeWidth"
class="switch"
:class="{ enabled: absoluteStrokeWidth }"
id="absolute-stroke-width"
name="absolute-stroke-width"
v-model="absoluteStrokeWidth"

View File

@@ -37,6 +37,12 @@ export default {
logo: '/framework-logos/angular.svg',
label: 'Lucide documentation for Angular',
},
{
name: 'lucide-astro',
logo: '/framework-logos/astro.svg',
logoDark: '/framework-logos/astro-dark.svg',
label: 'Lucide documentation for Astro',
},
{
name: 'lucide-react-native',
logo: '/framework-logos/react-native.svg',

View File

@@ -13,7 +13,7 @@ const { go } = useRouter()
<HomeSectionTitle>Available For:</HomeSectionTitle>
<div class="packages-list">
<a
v-for="{ name, logo } in data.packages"
v-for="{ name, logo, logoDark } in data.packages"
:href="`/guide/packages/${name}`"
class="package-logo"
:aria-label="`Read more about: ${name} package`"
@@ -21,10 +21,17 @@ const { go } = useRouter()
>
<img
:src="logo"
height="36"
width="36"
loading="lazy"
:class="{ light: logoDark, 'image-logo': true }"
:alt="`${name} logo`"
loading="lazy"
/>
<img
v-if="logoDark"
:src="logoDark"
:alt="`${name} logo`"
class="image-logo dark"
loading="lazy"
/>
</a>
</div>
@@ -35,6 +42,13 @@ const { go } = useRouter()
</template>
<style scoped>
.image-logo {
object-fit: contain;
width: 36px;
height: 36px;
}
.packages-list {
display: flex;
flex-wrap: wrap;
@@ -57,4 +71,11 @@ const { go } = useRouter()
.package-logo:hover {
opacity: .6;
}
html.dark .image-logo.light {
display: none;
}
html:not(.dark) .image-logo.dark {
display: none;
}
</style>

View File

@@ -9,6 +9,8 @@ import {useData, useRouter} from 'vitepress';
import { computed } from 'vue';
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon';
import { diamond } from '../../../data/iconNodes'
import deprecationReasonTemplate from '../../../../../tools/build-icons/utils/deprecationReasonTemplate.mjs';
const props = defineProps<{
icon: IconEntity
@@ -24,6 +26,15 @@ const tags = computed(() => {
})
const DiamondIcon = createLucideIcon('Diamond', diamond)
const deprecatedTitle = computed(() => {
if (!props.icon.deprecationReason) return '';
return deprecationReasonTemplate(props.icon.deprecationReason, {
componentName: props.icon.name,
iconName: props.icon.name,
toBeRemovedInVersion: props.icon.toBeRemovedInVersion,
});
});
</script>
<template>
@@ -36,6 +47,13 @@ const DiamondIcon = createLucideIcon('Diamond', diamond)
<DiamondIcon fill="currentColor" :size="12"/>
{{ icon.externalLibrary }}
</div>
<Badge
v-if="icon.deprecated"
class="deprecated-badge"
:title="deprecatedTitle"
>
Deprecated
</Badge>
</div>
<div class="tags-scroller" v-if="tags.length">
<p class="icon-tags horizontal-scroller">
@@ -98,6 +116,16 @@ const DiamondIcon = createLucideIcon('Diamond', diamond)
align-items: center;
}
.deprecated-badge {
background-color: var(--vp-c-brand-5);
margin-left: 40px;
opacity: .8;
}
.deprecated-badge:hover {
background-color: var(--vp-c-brand-2);
}
.icon-tags {
font-size: 16px;
color: var(--vp-c-text-2);

View File

@@ -47,6 +47,7 @@ function resetStyle () {
color.value = STYLE_DEFAULTS.color
strokeWidth.value = STYLE_DEFAULTS.strokeWidth
size.value = STYLE_DEFAULTS.size
absoluteStrokeWidth.value = STYLE_DEFAULTS.absoluteStrokeWidth
}
watch(absoluteStrokeWidth, (enabled) => {
@@ -119,11 +120,16 @@ const customizingActive = computed(() => {
id="absolute-stroke-width"
label="Absolute Stroke width"
>
<Switch
id="size"
name="size"
id="absolute-stroke-width"
name="absolute-stroke-width"
:key="absoluteStrokeWidth"
class="switch"
:class="{ enabled: absoluteStrokeWidth }"
v-model="absoluteStrokeWidth"
/>
</InputField>
</div>
</template>

View File

@@ -1,21 +1,27 @@
import packageData from '../../../data/packageData.json';
import packageDataList from '../../../data/packageData.json';
import thirdPartyPackages from '../../../data/packageData.thirdParty.json';
import fetchPackages from '../../../lib/fetchPackages';
export default {
async load() {
const packages = await fetchPackages();
const packageJsonList = await fetchPackages();
return {
packages: packages
.filter((p) => p?.name != null && p.name in packageData)
.map((pData) => ({
...pData,
...packageData[pData.name],
documentation: `/guide/packages/${pData.name}`,
source: `https://github.com/lucide-icons/lucide/tree/main/packages/${pData.name}`,
icon: `/framework-logos/${packageData[pData.name].icon}.svg`,
}))
packages: packageJsonList
.filter((pJson) => pJson?.name != null && pJson.name in packageDataList)
.map((pJson) => {
const packageData = packageDataList[pJson.name];
return {
...pJson,
...packageData,
documentation: `/guide/packages/${packageData.docsAlias ?? pJson.name}`,
source: `https://github.com/lucide-icons/lucide/tree/main/packages/${packageData.packageDirname ?? pJson.name}`,
icon: `/framework-logos/${packageData.icon}.svg`,
iconDark: Boolean(packageData.iconDark)
? `/framework-logos/${packageData.iconDark}.svg`
: null,
};
})
.sort((a, b) => a.order - b.order),
thirdPartyPackages,
};

View File

@@ -6,6 +6,9 @@ export interface IconMetaData {
categories: string[];
contributors: string[];
aliases?: string[];
deprecated?: boolean;
deprecationReason?: string;
toBeRemovedInVersion?: string;
}
export type ExternalLibs = 'lab';
@@ -33,12 +36,19 @@ interface Shield {
export interface PackageItem {
name: string;
// set when the package's directory
// name under the `packages/` directory
// is diffrent from the package name
packageDirname?: string;
description: string;
icon: string;
iconDark: string;
shields: Shield[];
source: string;
documentation: string;
// set when the docs page name is
// diffrent from the package name
docsAlias?: string;
order?: number;
private?: boolean;
flutter?: object;

View File

@@ -139,22 +139,22 @@ contained icon.
```tsx
// Don't do this
<button class="btn-icon">
<Home/>
<House/>
</button>
// Don't do this either
<button class="btn-icon">
<Home aria-label="Home icon"/>
<House aria-label="Home icon"/>
</button>
// This works but might not be the best solution, see below
<button aria-label="Go to home" class="btn-icon">
<Home/>
<House/>
</button>
// Do this instead
<button class="btn-icon">
<Home/>
<House/>
<span class="visually-hidden">Go to home</span>
</button>
```
@@ -167,6 +167,7 @@ Although you could provide accessible labels to your elements via the `aria-labe
generally recommend avoiding this and instead suggest that you use your chosen CSS framework's "
visually hidden" utility whenever possible. You can
[read more about why `aria-label` might not be the best solution](https://gomakethings.com/revisting-aria-label-versus-a-visually-hidden-class/).
### Example - Radix UI
Use [Radix UI's built-in accessible icon utility component](https://www.radix-ui.com/primitives/docs/utilities/accessible-icon).
@@ -179,6 +180,7 @@ import { AccessibleIcon } from '@radix-ui/react-accessible-icon';
<ArrowRightIcon />
</AccessibleIcon>
```
### Example - Bootstrap
```html

View File

@@ -7,9 +7,9 @@ Beside aliases names lucide also includes prefixed and suffixed names to use wit
```tsx
// These are all the same icon
import {
Home,
HomeIcon,
LucideHome,
House,
HouseIcon,
LucideHouse,
} from "lucide-react";
```

View File

@@ -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 [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.
### Allowed elements

View File

@@ -29,7 +29,8 @@ However, not everyone can understand them easily. Read more about [how to use Lu
## 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).

View File

@@ -184,8 +184,37 @@ npm install lucide-preact
bun add lucide-preact
```
:::
For more details, see the [documentation](packages/lucide-preact.md).
## Astro
Implementation of the lucide icon library for Astro applications.
::: code-group
```sh [pnpm]
pnpm install @lucide/astro
```
```sh [yarn]
yarn add @lucide/astro
```
```sh [npm]
npm install @lucide/astro
```
```sh [bun]
bun add @lucide/astro
```
:::
For more details, see the [documentation](packages/lucide-astro.md).
## Static usage
Implementation of the lucide icon library for multiple usages that like to use: SVG files icons, SVG Sprite, Icon Fonts and static SVG strings export in Common JS modules (for NodeJS).

View File

@@ -31,11 +31,11 @@ bun add lucide-angular
In any Angular module you wish to use Lucide icons in, you have to import `LucideAngularModule`, and pick any icons you wish to use:
```js
import { LucideAngularModule, File, Home, Menu, UserCheck } from 'lucide-angular';
import { LucideAngularModule, File, House, Menu, UserCheck } from 'lucide-angular';
@NgModule({
imports: [
LucideAngularModule.pick({File, Home, Menu, UserCheck})
LucideAngularModule.pick({File, House, Menu, UserCheck})
]
})
export class AppModule { }
@@ -64,7 +64,7 @@ Within your templates you may now use one of the following component tags to ins
```html
<lucide-angular name="file" class="my-icon"></lucide-angular>
<lucide-icon name="home" class="my-icon"></lucide-icon>
<lucide-icon name="house" class="my-icon"></lucide-icon>
<i-lucide name="menu" class="my-icon"></i-lucide>
<span-lucide name="user-check" class="my-icon"></span-lucide>
```
@@ -88,7 +88,7 @@ You can pass additional props to adjust the icon appearance.
| `absoluteStrokeWidth` | *boolean* | false |
```html
<i-lucide name="home" [size]="48" color="red" [strokeWidth]="1"></i-lucide>
<i-lucide name="house" [size]="48" color="red" [strokeWidth]="1"></i-lucide>
```
### Global configuration
@@ -151,11 +151,11 @@ They can be used in the same way as the official icons.
```js
import { LucideAngularModule } from 'lucide-angular';
import { burger } from '@lucide/lab';
import { coconut } from '@lucide/lab';
@NgModule({
imports: [
LucideAngularModule.pick({ burger })
LucideAngularModule.pick({ coconut })
]
})
export class AppModule { }

View File

@@ -0,0 +1,187 @@
# Lucide Astro
Implementation of the lucide icon library for Astro applications.
## Installation
::: code-group
```sh [pnpm]
pnpm add @lucide/astro
```
```sh [yarn]
yarn add @lucide/astro
```
```sh [npm]
npm install @lucide/astro
```
```sh [bun]
bun add @lucide/astro
```
:::
## How to use
Lucide is built with ES Modules, so it's completely tree-shakable.
Each icon can be imported as an Astro component, which renders an inline SVG element. This way, only the icons that are imported into your project are included in the final bundle. The rest of the icons are tree-shaken away.
### Example
Default usage:
```astro
---
import { Skull } from '@lucide/astro';
---
<Skull />
```
Additional props can be passed to adjust the icon:
```astro
---
import { Camera } from '@lucide/astro';
---
<Camera color="#ff3e98" />
```
For faster builds and load times, you can import icons directly from the `@lucide/astro/icons` directory:
```astro
---
import CircleAlert from '@lucide/astro/icons/circle-alert';
---
<CircleAlert color="#ff3e98" />
```
## Props
| name | type | default |
| --------------------- | --------- | ------------ |
| `size` | _number_ | 24 |
| `color` | _string_ | currentColor |
| `stroke-width` | _number_ | 2 |
| `absoluteStrokeWidth` | _boolean_ | false |
### Applying props
To customize the appearance of an icon, you can pass custom properties as props directly to the component. The component accepts all SVG attributes as props, which allows flexible styling of the SVG elements. See the list of SVG Presentation Attributes on [MDN](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/Presentation).
```astro
---
import { Phone } from '@lucide/astro';
---
<Phone fill="#333" />
```
This results a filled phone icon.
## Types
The package includes type definitions for all icons. This is useful if you want to dynamically render icons.
### Example
```astro
---
import { House, Library, Cog, type Icon as IconType } from '@lucide/astro';
type MenuItem = {
name: string;
href: string;
icon: typeof IconType;
};
const menuItems: MenuItem[] = [
{
name: 'Home',
href: '/',
icon: House,
},
{
name: 'Blog',
href: '/blog',
icon: Library,
},
{
name: 'Projects',
href: '/projects',
icon: Cog,
},
];
---
{
menuItems.map((item) => (
<a href={item.href}>
<item.icon />
<span>{item.name}</span>
</a>
))
}
```
## With Lucide lab or custom icons
[Lucide lab](https://github.com/lucide-icons/lucide-lab) is a collection of icons that are not part of the Lucide main library.
They can be used by using the `Icon` component.
All props of the regular Lucide icons can be passed to adjust the icon appearance.
### Using the `Icon` component
This creates a single icon based on the iconNode passed and renders a Lucide icon component.
```astro
---
import { Icon } from '@lucide/astro';
import { burger, sausage } from '@lucide/lab';
---
<Icon iconNode={burger} />
<Icon iconNode={sausage} color="red"/>
```
## One generic icon component
It is possible to create one generic icon component to load icons, but it is not recommended.
::: danger
The example below imports all ES Modules, so exercise caution when using it. Importing all icons will significantly increase the build size of the application. This may be passable if you're doing SSG and SSR in server environments. However if you're doing SSR in serverless environments, it could negatively affect your app's performance, as a bigger bundle size will translate to an increase in cold starts.
:::
### Icon Component Example
```astro
---
import { icons, type IconProps } from '@lucide/astro';
interface Props extends IconProps {
name: keyof typeof icons;
}
const { name, ...restProps } = Astro.props;
const Icon = icons[name];
---
<Icon {...restProps} />
```
### Using the Icon Component
```astro
---
import LucideIcon from './LucideIcon.astro';
---
<LucideIcon name="Menu" />
```

View File

@@ -84,10 +84,10 @@ This creates a single icon based on the iconNode passed and renders a Lucide ico
```jsx
import { Icon } from 'lucide-preact';
import { burger } from '@lucide/lab';
import { coconut } from '@lucide/lab';
const App = () => (
<Icon iconNode={burger} />
<Icon iconNode={coconut} />
);
```
@@ -119,7 +119,7 @@ export default Icon;
import Icon from './Icon';
const App = () => {
return <Icon name="home" />;
return <Icon name="house" />;
};
export default App;

View File

@@ -78,10 +78,10 @@ This creates a single icon based on the iconNode passed and renders a Lucide ico
```jsx
import { Icon } from 'lucide-react-native';
import { burger } from '@lucide/lab';
import { coconut } from '@lucide/lab';
const App = () => (
<Icon iconNode={burger} />
<Icon iconNode={coconut} />
);
```
@@ -113,7 +113,7 @@ export default Icon;
import Icon from './Icon';
const App = () => {
return <Icon name="home" />;
return <Icon name="house" />;
};
export default App;

View File

@@ -78,10 +78,10 @@ This creates a single icon based on the iconNode passed and renders a Lucide ico
```jsx
import { Icon } from 'lucide-react';
import { burger } from '@lucide/lab';
import { coconut } from '@lucide/lab';
const App = () => (
<Icon iconNode={burger} />
<Icon iconNode={coconut} />
);
```

View File

@@ -91,7 +91,7 @@ This creates a single icon based on the iconNode passed and renders a Lucide ico
```jsx
import { Icon } from 'lucide-solid';
import { burger, sausage } from '@lucide/lab';
import { sausage } from '@lucide/lab';
const App = () => (
<Icon iconNode={sausage} color="red"/>

View File

@@ -136,7 +136,7 @@ and update the SVG as follows
class="lucide-icon"
>
<use
href="#alert-triangle"
href="#triangle-alert"
/>
</svg>
<svg>

View File

@@ -7,22 +7,22 @@ Implementation of the lucide icon library for svelte applications.
::: code-group
```sh [pnpm]
pnpm add lucide-svelte
pnpm add @lucide/svelte
```
```sh [yarn]
yarn add lucide-svelte
yarn add @lucide/svelte
```
```sh [npm]
npm install lucide-svelte
npm install @lucide/svelte
```
```sh [bun]
bun add lucide-svelte
bun add @lucide/svelte
```
:::
> `@lucide/svelte` is only for Svelte 5, for Svelte 4 use the `lucide-svelte` package.
## How to use
@@ -36,7 +36,7 @@ Default usage:
```svelte
<script>
import { Skull } from 'lucide-svelte';
import { Skull } from '@lucide/svelte';
</script>
<Skull />
@@ -46,17 +46,17 @@ Additional props can be passed to adjust the icon:
```svelte
<script>
import { Camera } from 'lucide-svelte';
import { Camera } from '@lucide/svelte';
</script>
<Camera color="#ff3e98" />
```
For faster builds and load times, you can import icons directly from the `lucide-svelte/icons` directory:
For faster builds and load times, you can import icons directly from the `@lucide/svelte/icons` directory:
```svelte
<script>
import CircleAlert from 'lucide-svelte/icons/circle-alert';
import CircleAlert from '@lucide/svelte/icons/circle-alert';
</script>
<CircleAlert color="#ff3e98" />
@@ -77,7 +77,7 @@ To customize the appearance of an icon, you can pass custom properties as props
```svelte
<script>
import { Phone } from 'lucide-svelte';
import { Phone } from '@lucide/svelte';
</script>
<Phone fill="#333" />
@@ -91,53 +91,11 @@ The package includes type definitions for all icons. This is useful if you want
### TypeScript Example
#### Svelte 4
::: code-group
```svelte
```svelte [Svelte 5]
<script lang="ts">
import { Home, Library, Cog, type Icon } from 'lucide-svelte';
import type { ComponentType } from 'svelte';
type MenuItem = {
name: string;
href: string;
icon: ComponentType<Icon>;
};
const menuItems: MenuItem[] = [
{
name: 'Home',
href: '/',
icon: Home
},
{
name: 'Blog',
href: '/blog',
icon: Library
},
{
name: 'Projects',
href: '/projects',
icon: Cog
}
];
</script>
{#each menuItems as item}
<a href={item.href}>
<svelte:component this={item.icon} />
<span>{item.name}</span>
</a>
{/each}
```
#### Svelte 5
Some changes are required since Svelte 5 [deprecates](https://svelte.dev/docs/svelte/v5-migration-guide#Components-are-no-longer-classes-Component-typing-changes) the `ComponentType` typescript type.
```svelte
<script lang="ts">
import { Home, Library, Cog, type Icon as IconType } from 'lucide-svelte';
import { Home, Library, Cog, type Icon as IconType } from '@lucide/svelte';
type MenuItem = {
name: string;
@@ -173,61 +131,60 @@ Some changes are required since Svelte 5 [deprecates](https://svelte.dev/docs/sv
{/each}
```
### JSDoc Example
```svelte [Svelte 4]
<script lang="ts">
import { Home, Library, Cog, type Icon } from '@lucide/svelte';
import type { ComponentType } from 'svelte';
#### Svelte 4
type MenuItem = {
name: string;
href: string;
icon: ComponentType<Icon>;
};
```svelte
<script>
import { Home, Library, Cog } from 'lucide-svelte';
/**
* @typedef {Object} MenuItem
* @property {string} name
* @property {string} href
* @property {import('svelte').ComponentType<import('lucide-svelte').Icon>} icon
*/
/** @type {MenuItem[]} */
const menuItems = [
const menuItems: MenuItem[] = [
{
name: 'Home',
href: '/',
icon: Home,
icon: Home
},
{
name: 'Blog',
href: '/blog',
icon: Library,
icon: Library
},
{
name: 'Projects',
href: '/projects',
icon: Cog,
icon: Cog
}
];
</script>
{#each menuItems as item}
{@const Icon = item.icon}
<a href={item.href}>
<svelte:component this={item.icon} />
<Icon />
<span>{item.name}</span>
</a>
{/each}
```
:::
### JSDoc Example
#### Svelte 5
::: code-group
```svelte
```svelte [Svelte 5]
<script>
import { Home, Library, Cog } from 'lucide-svelte';
import { Home, Library, Cog } from '@lucide/svelte';
/**
* @typedef {Object} MenuItem
* @property {string} name
* @property {string} href
* @property {typeof import('lucide-svelte').Icon} icon
* @property {typeof import('@lucide/svelte').Icon} icon
*/
/** @type {MenuItem[]} */
@@ -257,9 +214,50 @@ Some changes are required since Svelte 5 [deprecates](https://svelte.dev/docs/sv
<span>{item.name}</span>
</a>
{/each}
```
```svelte [Svelte 4]
<script>
import { Home, Library, Cog } from '@lucide/svelte';
/**
* @typedef {Object} MenuItem
* @property {string} name
* @property {string} href
* @property {import('svelte').ComponentType<import('@lucide/svelte').Icon>} icon
*/
/** @type {MenuItem[]} */
const menuItems = [
{
name: 'Home',
href: '/',
icon: Home,
},
{
name: 'Blog',
href: '/blog',
icon: Library,
},
{
name: 'Projects',
href: '/projects',
icon: Cog,
}
];
</script>
{#each menuItems as item}
{@const Icon = item.icon}
<a href={item.href}>
<Icon />
<span>{item.name}</span>
</a>
{/each}
```
:::
For more details about typing the `svelte:component` directive, see the [Svelte documentation](https://svelte.dev/docs/typescript#types-componenttype).
## With Lucide lab or custom icons
@@ -275,11 +273,11 @@ This creates a single icon based on the iconNode passed and renders a Lucide ico
```svelte
<script>
import { Icon } from 'lucide-svelte';
import { burger, sausage } from '@lucide/lab';
import { Icon } from '@lucide/svelte';
import { pear, sausage } from '@lucide/lab';
</script>
<Icon iconNode={burger} />
<Icon iconNode={pear} />
<Icon iconNode={sausage} color="red"/>
```
@@ -293,22 +291,11 @@ The example below imports all ES Modules, so exercise caution when using it. Imp
### Icon Component Example
#### Svelte 4
::: code-group
```svelte
```svelte [Svelte 5]
<script>
import * as icons from 'lucide-svelte';
export let name;
</script>
<svelte:component this={icons[name]} {...$$props} />
```
#### Svelte 5
```svelte
<script>
import * as icons from 'lucide-svelte';
import * as icons from '@lucide/svelte';
let { name } = $props();
const Icon = icons[name];
@@ -317,6 +304,17 @@ The example below imports all ES Modules, so exercise caution when using it. Imp
<Icon {...props} />
```
```svelte [Svelte 4]
<script>
import * as icons from '@lucide/svelte';
export let name;
</script>
<svelte:component this={icons[name]} {...$$props} />
```
:::
#### Using the Icon Component
```svelte

View File

@@ -81,11 +81,11 @@ This creates a single icon based on the iconNode passed and renders a Lucide ico
```vue
<script setup>
import { Icon } from 'lucide-vue-next';
import { burger } from '@lucide/lab';
import { baseball } from '@lucide/lab';
</script>
<template>
<Icon :iconNode="burger" />
<Icon :iconNode="baseball" />
</template>
```

View File

@@ -126,11 +126,23 @@ 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 the DOM
const myApp = document.getElementById('app');
myApp.appendChild(menuIcon);
```
// Append HTMLElement in webpage
#### Custom Element binding with custom attributes
```js
import { createElement, Menu } from 'lucide';
const menuIcon = createElement(Menu, {
class: ['my-custom-class', 'icon'],
'stroke-width': 1,
stroke: '#333'
}); // Returns HTMLElement (svg)
// Append HTMLElement in the DOM
const myApp = document.getElementById('app');
myApp.appendChild(menuIcon);
```
@@ -141,11 +153,11 @@ myApp.appendChild(menuIcon);
They can be used in the same way as the official icons.
```js
import { burger } from '@lucide/lab';
import { coconut } from '@lucide/lab';
createIcons({
icons: {
burger
coconut
}
});
```

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@@ -49,9 +49,11 @@
<path d="M120 350h240" stroke="#D8D8D9" stroke-width=".5"/>
<path d="M350 120v240" stroke="#D8D8D9" stroke-width=".5"/>
</g>
<path d="m240 140-100 50 100 50 100-50-100-50Z" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="m140 290 100 50 100-50" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="m140 240 100 50 100-50" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<g id="embed-lucide-layers" stroke="#3C3C43" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" transform="translate(120 120), scale(10)">
<path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z" />
<path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12" />
<path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17" />
</g>
<g opacity=".5" stroke="#fff" stroke-width="3">
<path d="M120 92v16"/>
<path d="M360 92v16"/>

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -53,9 +53,13 @@
<path d="M350 120V360" stroke="#D8D8D9" stroke-width="0.5"/>
</g>
<g clip-path="url(#clip1_1612_15659)">
<path d="M310 260C324.9 245.4 340 227.9 340 205C340 190.413 334.205 176.424 323.891 166.109C313.576 155.795 299.587 150 285 150C267.4 150 255 155 240 170C225 155 212.6 150 195 150C180.413 150 166.424 155.795 156.109 166.109C145.795 176.424 140 190.413 140 205C140 228 155 245.5 170 260L240 330L310 260Z" stroke="#F56565" stroke-width="60" stroke-linejoin="round" stroke-dasharray="0.2 0.4"/>
<g id="embed-lucide-heart" stroke="#F56565" stroke-width="7" stroke-dasharray="0.04 0.08" stroke-linejoin="round" transform="translate(120 120), scale(10)">
<path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z" />
</g>
</g>
<g id="embed-lucide-heart" stroke="#3C3C43" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" transform="translate(120 120), scale(10)">
<path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z" />
</g>
<path d="M310 260C324.9 245.4 340 227.9 340 205C340 190.413 334.205 176.424 323.891 166.109C313.576 155.795 299.587 150 285 150C267.4 150 255 155 240 170C225 155 212.6 150 195 150C180.413 150 166.424 155.795 156.109 166.109C145.795 176.424 140 190.413 140 205C140 228 155 245.5 170 260L240 330L310 260Z" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<defs>
<clipPath id="clip0_1612_15659">
<rect x="120" y="120" width="240" height="240" rx="8" fill="white"/>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -52,16 +52,18 @@
<path d="M120 350H360" stroke="#D8D8D9" stroke-width="0.5"/>
<path d="M350 120V360" stroke="#D8D8D9" stroke-width="0.5"/>
</g>
<path d="M310 160H170C158.954 160 150 168.954 150 180V320C150 331.046 158.954 340 170 340H310C321.046 340 330 331.046 330 320V180C330 168.954 321.046 160 310 160Z" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M280 140V180" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M200 140V180" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M150 220H330" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M200 260H200.1" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M240 260H240.1" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M280 260H280.1" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M200 300H200.1" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M240 300H240.1" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M280 300H280.1" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<g id="embed-lucide-calendar-days" stroke="#3C3C43" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" transform="translate(120 120), scale(10)">
<path d="M8 2v4" />
<path d="M16 2v4" />
<rect width="18" height="18" x="3" y="4" rx="2" />
<path d="M3 10h18" />
<path d="M8 14h.01" />
<path d="M12 14h.01" />
<path d="M16 14h.01" />
<path d="M8 18h.01" />
<path d="M12 18h.01" />
<path d="M16 18h.01" />
</g>
<defs>
<clipPath id="clip0_1612_15298">
<rect x="120" y="120" width="240" height="240" rx="8" fill="white"/>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -54,10 +54,12 @@
</g>
<circle opacity="0.17" cx="240" cy="240" r="100" stroke="#F56565" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<rect opacity="0.17" x="150" y="150" width="180" height="180" rx="20" stroke="#F56565" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M330 330L270 270M330 330V282M330 330H282" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M150 282V330M150 330H198M150 330L210 270" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M330 198V150M330 150H282M330 150L270 210" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M150 198V150M150 150H198M150 150L210 210" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<g id="embed-lucide-expand" stroke="#3C3C43" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" transform="translate(120 120), scale(10)">
<path d="m21 21-6-6m6 6v-4.8m0 4.8h-4.8" />
<path d="M3 16.2V21m0 0h4.8M3 21l6-6" />
<path d="M21 7.8V3m0 0h-4.8M21 3l-6 6" />
<path d="M3 7.8V3m0 0h4.8M3 3l6 6" />
</g>
<circle opacity="0.5" cx="240" cy="240" r="100" stroke="#F56565" stroke-dasharray="1 1"/>
<rect opacity="0.5" x="150" y="150" width="180" height="180" rx="20" stroke="#F56565" stroke-dasharray="1 1"/>
<defs>

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -54,7 +54,9 @@
<path d="M120 350H360" stroke="#D8D8D9" stroke-width="0.5"/>
<path d="M350 120V360" stroke="#D8D8D9" stroke-width="0.5"/>
</g>
<path d="M150 150L220.7 320L245.8 246.1L320 220.7L150 150Z" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<g id="embed-lucide-mouse-pointer-2" stroke="#3C3C43" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" transform="translate(110 110), scale(10)">
<path d="M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z" />
</g>
<path opacity="0.5" d="M240 120V360M360 240H120" stroke="#F56565" stroke-dasharray="1 1"/>
</g>
<defs>

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -53,7 +53,9 @@
<path d="M120 350H360" stroke="#D8D8D9" stroke-width="0.5"/>
<path d="M350 120V360" stroke="#D8D8D9" stroke-width="0.5"/>
</g>
<path d="M160 160L230.7 330L255.8 256.1L330 230.7L160 160Z" stroke="#3C3C43" stroke-width="20" stroke-linecap="round" stroke-linejoin="round"/>
<g id="embed-lucide-mouse-pointer-2" stroke="#3C3C43" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" transform="translate(120 120), scale(10)">
<path d="M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z" />
</g>
<path opacity="0.5" d="M240 120V360M360 240H120" stroke="#F56565" stroke-dasharray="1 1"/>
</g>
<defs>

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1,11 @@
<svg width="85" height="107" viewBox="0 0 85 107" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z" fill="white"/>
<path d="M27.5894 91.1365C22.7555 86.7178 21.3444 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4375 78.2199 52.0359 77.7822 59.2232 74.2459C60.0454 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.318 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6845 102.089C39.2087 99.8193 38.5066 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5894 91.1365Z" fill="url(#paint0_linear_1_59)"/>
<path d="M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z" fill="white"/>
<defs>
<linearGradient id="paint0_linear_1_59" x1="22.4702" y1="107" x2="69.1451" y2="84.9468" gradientUnits="userSpaceOnUse">
<stop stop-color="#D83333"/>
<stop offset="1" stop-color="#F041FF"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -0,0 +1,4 @@
<svg width="85" height="107" viewBox="0 0 85 107" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M27.5893 91.1365C22.7555 86.7178 21.3443 77.4335 23.3583 70.7072C26.8503 74.948 31.6888 76.2914 36.7005 77.0497C44.4374 78.2199 52.0358 77.7822 59.2231 74.2459C60.0453 73.841 60.8052 73.3027 61.7036 72.7574C62.378 74.714 62.5535 76.6892 62.3179 78.6996C61.7452 83.5957 59.3086 87.3778 55.4332 90.2448C53.8835 91.3916 52.2437 92.4167 50.6432 93.4979C45.7262 96.8213 44.3959 100.718 46.2435 106.386C46.2874 106.525 46.3267 106.663 46.426 107C43.9155 105.876 42.0817 104.24 40.6844 102.089C39.2086 99.8193 38.5065 97.3081 38.4696 94.5909C38.4511 93.2686 38.4511 91.9345 38.2733 90.6309C37.8391 87.4527 36.3471 86.0297 33.5364 85.9478C30.6518 85.8636 28.37 87.6469 27.7649 90.4554C27.7187 90.6707 27.6517 90.8837 27.5847 91.1341L27.5893 91.1365Z" fill="#17191E"/>
<path d="M0 69.5866C0 69.5866 14.3139 62.6137 28.6678 62.6137L39.4901 29.1204C39.8953 27.5007 41.0783 26.3999 42.4139 26.3999C43.7495 26.3999 44.9325 27.5007 45.3377 29.1204L56.1601 62.6137C73.1601 62.6137 84.8278 69.5866 84.8278 69.5866C84.8278 69.5866 60.5145 3.35233 60.467 3.21944C59.7692 1.2612 58.5911 0 57.0029 0H27.8274C26.2392 0 25.1087 1.2612 24.3634 3.21944C24.3108 3.34983 0 69.5866 0 69.5866Z" fill="#17191E"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1,25 @@
<svg width="120" height="22" viewBox="0 0 120 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M74.2 17.17C73.4081 17.1897 72.6251 16.9999 71.93 16.62C71.302 16.2576 70.7943 15.7186 70.47 15.07C70.1179 14.3272 69.9466 13.5117 69.97 12.69C69.97 11.79 70.13 11 70.47 10.32C70.8 9.64858 71.3176 9.08722 71.9601 8.70386C72.6026 8.32051 73.3424 8.1316 74.09 8.16C74.63 8.16 75.14 8.25 75.62 8.42C76.1 8.59 76.52 8.86 76.89 9.22C77.26 9.58 77.55 10.03 77.76 10.59C77.98 11.14 78.08 11.8 78.08 12.57V13.2H70.93V11.8H76.11C76.11 11.4 76.02 11.06 75.86 10.75C75.69 10.45 75.46 10.2 75.16 10.02C74.86 9.84 74.52 9.75 74.12 9.75C73.732 9.74115 73.3498 9.84539 73.02 10.05C72.7 10.25 72.45 10.52 72.27 10.85C72.1 11.18 72.01 11.54 72 11.93V13.13C72 13.65 72.1 14.08 72.28 14.44C72.47 14.8 72.73 15.08 73.06 15.27C73.39 15.47 73.78 15.56 74.23 15.56C74.53 15.56 74.8 15.52 75.04 15.43C75.29 15.35 75.5 15.22 75.67 15.05C75.85 14.89 75.99 14.68 76.07 14.43L78 14.65C77.8833 15.1455 77.6424 15.6032 77.3 15.98C76.97 16.35 76.54 16.65 76 16.85C75.48 17.05 74.88 17.16 74.2 17.16V17.17Z" fill="white"/>
<path d="M63.5 17.15C62.8309 17.1645 62.1733 16.9752 61.6143 16.6073C61.0553 16.2394 60.6213 15.7102 60.37 15.09C60.0367 14.3208 59.8763 13.4879 59.9 12.65C59.9 11.68 60.06 10.86 60.38 10.19C60.5513 9.78493 60.8009 9.41767 61.1145 9.10931C61.428 8.80095 61.7994 8.55755 62.2073 8.3931C62.6152 8.22864 63.0516 8.14636 63.4913 8.15098C63.9311 8.15559 64.3656 8.24702 64.77 8.42C65.1 8.59 65.36 8.8 65.55 9.04C65.75 9.28 65.89 9.5 66 9.72H66.08V5.36H68.15V17H66.12V15.62H66C65.9 15.84 65.74 16.06 65.54 16.3C65.2864 16.5868 64.9711 16.8123 64.6177 16.9595C64.2644 17.1068 63.8822 17.1719 63.5 17.15ZM64.07 15.47C64.51 15.47 64.87 15.35 65.19 15.11C65.49 14.88 65.73 14.54 65.89 14.11C66.04 13.7 66.12 13.21 66.12 12.64C66.12 12.07 66.04 11.58 65.88 11.16C65.7484 10.7769 65.5087 10.44 65.19 10.19C64.865 9.95506 64.4708 9.8354 64.07 9.85C63.61 9.85 63.23 9.97 62.92 10.2C62.62 10.44 62.39 10.77 62.23 11.2C62.08 11.61 62 12.1 62 12.64C62 13.18 62.08 13.67 62.23 14.1C62.39 14.52 62.63 14.86 62.93 15.1C63.24 15.34 63.63 15.47 64.07 15.47Z" fill="white"/>
<path d="M56.09 17V8.27H58.14V17H56.1H56.09ZM57.12 7.03C56.8 7.03 56.52 6.93 56.28 6.71C56.1684 6.6111 56.0795 6.48938 56.0191 6.35307C55.9587 6.21677 55.9283 6.06907 55.93 5.92C55.93 5.61 56.05 5.35 56.28 5.13C56.52 4.91 56.8 4.8 57.12 4.8C57.45 4.8 57.73 4.91 57.96 5.13C58.2 5.35 58.32 5.61 58.32 5.92C58.32 6.22 58.2 6.49 57.96 6.71C57.73 6.93 57.46 7.03 57.12 7.03Z" fill="white"/>
<path d="M50.66 17.17C49.9015 17.2156 49.1466 17.0346 48.4913 16.65C47.836 16.2653 47.3099 15.6945 46.98 15.01C46.6351 14.279 46.464 13.4781 46.48 12.67C46.48 11.78 46.65 11 46.99 10.32C47.33 9.64 47.81 9.12 48.43 8.73C49.102 8.33587 49.8712 8.13837 50.65 8.16C51.35 8.16 51.98 8.29 52.53 8.56C53.0617 8.80313 53.5168 9.18684 53.8464 9.66971C54.1759 10.1526 54.3674 10.7163 54.4 11.3H52.43C52.364 10.895 52.1673 10.5228 51.87 10.24C51.57 9.96 51.17 9.82 50.67 9.82C50.26 9.82 49.89 9.93 49.57 10.16C49.25 10.38 49 10.7 48.83 11.12C48.65 11.55 48.56 12.05 48.56 12.64C48.56 13.24 48.66 13.74 48.83 14.17C49 14.59 49.24 14.92 49.56 15.15C49.88 15.38 50.25 15.49 50.68 15.49C50.98 15.49 51.25 15.44 51.49 15.32C51.73 15.21 51.94 15.04 52.09 14.82C52.26 14.6 52.37 14.33 52.43 14.02H54.4C54.3725 14.6024 54.1878 15.1664 53.8656 15.6524C53.5434 16.1383 53.0957 16.5279 52.57 16.78C51.9746 17.053 51.3248 17.1864 50.67 17.17H50.66Z" fill="white"/>
<path d="M42.68 13.33V8.27H44.74V17H42.74V15.45H42.65C42.45 15.94 42.13 16.34 41.68 16.65C41.23 16.95 40.68 17.11 40.03 17.11C39.5054 17.1412 38.9835 17.0151 38.531 16.7479C38.0785 16.4806 37.716 16.0844 37.49 15.61C37.2299 15.0535 37.1033 14.444 37.12 13.83V8.27H39.18V13.51C39.18 14.06 39.33 14.51 39.63 14.83C39.93 15.16 40.33 15.32 40.83 15.32C41.1442 15.3154 41.4523 15.2325 41.7265 15.0789C42.0006 14.9252 42.2321 14.7056 42.4 14.44C42.59 14.14 42.68 13.77 42.68 13.33Z" fill="white"/>
<path d="M28.15 17V5.36H30.25V15.23H35.38V17H28.15Z" fill="white"/>
<path d="M14 11C14 9.93913 13.5786 8.92172 12.8284 8.17157C12.0783 7.42142 11.0609 7 10 7C8.93913 7 7.92172 7.42142 7.17157 8.17157C6.42143 8.92172 6 9.93913 6 11C6 13.1217 6.84285 15.1566 8.34315 16.6569C9.84344 18.1571 11.8783 19 14 19C16.1217 19 18.1566 18.1571 19.6569 16.6569C21.1571 15.1566 22 13.1217 22 11C22 7.45 20.45 4.25 18 2.06" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M10 11C10 12.0609 10.4214 13.0783 11.1716 13.8284C11.9217 14.5786 12.9391 15 14 15C15.0609 15 16.0783 14.5786 16.8284 13.8284C17.5786 13.0783 18 12.0609 18 11C18 8.87827 17.1571 6.84344 15.6569 5.34315C14.1566 3.84285 12.1217 3 10 3C7.87827 3 5.84344 3.84285 4.34315 5.34315C2.84285 6.84344 2 8.87827 2 11C2 14.58 3.57 17.8 6.06 20" stroke="#F56565" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M88 13C89.1046 13 90 12.1046 90 11C90 9.89543 89.1046 9 88 9C86.8954 9 86 9.89543 86 11C86 12.1046 86.8954 13 88 13Z" fill="#737374"/>
<g clip-path="url(#clip0_2_7)">
<path d="M105.193 18.0349C104.283 17.2089 104.018 15.4736 104.397 14.2163C105.054 15.009 105.965 15.2601 106.908 15.4018C108.365 15.6205 109.795 15.5387 111.148 14.8777C111.303 14.8021 111.446 14.7014 111.615 14.5995C111.742 14.9652 111.775 15.3344 111.73 15.7102C111.623 16.6254 111.164 17.3323 110.434 17.8682C110.143 18.0825 109.834 18.2742 109.533 18.4762C108.607 19.0974 108.357 19.8258 108.705 20.8852C108.713 20.9112 108.72 20.937 108.739 21C108.266 20.7899 107.921 20.4841 107.658 20.0821C107.38 19.6578 107.248 19.1884 107.241 18.6805C107.238 18.4334 107.238 18.184 107.204 17.9404C107.123 17.3463 106.842 17.0803 106.313 17.065C105.77 17.0493 105.34 17.3826 105.226 17.9076C105.218 17.9478 105.205 17.9876 105.192 18.0344L105.193 18.0349Z" fill="white"/>
<path d="M105.193 18.0349C104.283 17.2089 104.018 15.4736 104.397 14.2163C105.054 15.009 105.965 15.2601 106.908 15.4018C108.365 15.6205 109.795 15.5387 111.148 14.8777C111.303 14.8021 111.446 14.7014 111.615 14.5995C111.742 14.9652 111.775 15.3344 111.73 15.7102C111.623 16.6254 111.164 17.3323 110.434 17.8682C110.143 18.0825 109.834 18.2742 109.533 18.4762C108.607 19.0974 108.357 19.8258 108.705 20.8852C108.713 20.9112 108.72 20.937 108.739 21C108.266 20.7899 107.921 20.4841 107.658 20.0821C107.38 19.6578 107.248 19.1884 107.241 18.6805C107.238 18.4334 107.238 18.184 107.204 17.9404C107.123 17.3463 106.842 17.0803 106.313 17.065C105.77 17.0493 105.34 17.3826 105.226 17.9076C105.218 17.9478 105.205 17.9876 105.192 18.0344L105.193 18.0349Z" fill="url(#paint0_linear_2_7)"/>
<path d="M100 14.0068C100 14.0068 102.694 12.7035 105.396 12.7035L107.433 6.44306C107.51 6.14032 107.732 5.93456 107.984 5.93456C108.235 5.93456 108.458 6.14032 108.534 6.44306L110.571 12.7035C113.771 12.7035 115.968 14.0068 115.968 14.0068C115.968 14.0068 111.391 1.6266 111.382 1.60176C111.251 1.23574 111.029 1 110.73 1H105.238C104.939 1 104.726 1.23574 104.586 1.60176C104.576 1.62614 100 14.0068 100 14.0068Z" fill="white"/>
</g>
<defs>
<linearGradient id="paint0_linear_2_7" x1="104.23" y1="21" x2="112.993" y2="16.8303" gradientUnits="userSpaceOnUse">
<stop stop-color="#D83333"/>
<stop offset="1" stop-color="#F041FF"/>
</linearGradient>
<clipPath id="clip0_2_7">
<rect width="16" height="20" fill="white" transform="translate(100 1)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@@ -0,0 +1,26 @@
<svg width="128" height="32" viewBox="0 0 128 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1_2)">
<path d="M120 0H8C3.58172 0 0 3.58172 0 8V24C0 28.4183 3.58172 32 8 32H120C124.418 32 128 28.4183 128 24V8C128 3.58172 124.418 0 120 0Z" fill="white"/>
<path d="M78.2 22.17C77.4081 22.1897 76.6251 21.9999 75.93 21.62C75.302 21.2576 74.7943 20.7186 74.47 20.07C74.1179 19.3272 73.9466 18.5117 73.97 17.69C73.97 16.79 74.13 16 74.47 15.32C74.8 14.6486 75.3176 14.0872 75.9601 13.7039C76.6026 13.3205 77.3424 13.1316 78.09 13.16C78.63 13.16 79.14 13.25 79.62 13.42C80.1 13.59 80.52 13.86 80.89 14.22C81.26 14.58 81.55 15.03 81.76 15.59C81.98 16.14 82.08 16.8 82.08 17.57V18.2H74.93V16.8H80.11C80.11 16.4 80.02 16.06 79.86 15.75C79.69 15.45 79.46 15.2 79.16 15.02C78.86 14.84 78.52 14.75 78.12 14.75C77.732 14.7412 77.3498 14.8454 77.02 15.05C76.7 15.25 76.45 15.52 76.27 15.85C76.1 16.18 76.01 16.54 76 16.93V18.13C76 18.65 76.1 19.08 76.28 19.44C76.47 19.8 76.73 20.08 77.06 20.27C77.39 20.47 77.78 20.56 78.23 20.56C78.53 20.56 78.8 20.52 79.04 20.43C79.29 20.35 79.5 20.22 79.67 20.05C79.85 19.89 79.99 19.68 80.07 19.43L82 19.65C81.8833 20.1455 81.6424 20.6032 81.3 20.98C80.97 21.35 80.54 21.65 80 21.85C79.48 22.05 78.88 22.16 78.2 22.16V22.17Z" fill="#1B1B1F"/>
<path d="M67.5 22.15C66.8309 22.1645 66.1733 21.9752 65.6143 21.6073C65.0553 21.2394 64.6213 20.7102 64.37 20.09C64.0367 19.3208 63.8763 18.4879 63.9 17.65C63.9 16.68 64.06 15.86 64.38 15.19C64.5513 14.7849 64.8009 14.4177 65.1145 14.1093C65.428 13.8009 65.7994 13.5576 66.2073 13.3931C66.6152 13.2286 67.0516 13.1464 67.4913 13.151C67.9311 13.1556 68.3656 13.247 68.77 13.42C69.1 13.59 69.36 13.8 69.55 14.04C69.75 14.28 69.89 14.5 70 14.72H70.08V10.36H72.15V22H70.12V20.62H70C69.9 20.84 69.74 21.06 69.54 21.3C69.2864 21.5868 68.9711 21.8123 68.6177 21.9595C68.2644 22.1068 67.8822 22.1719 67.5 22.15ZM68.07 20.47C68.51 20.47 68.87 20.35 69.19 20.11C69.49 19.88 69.73 19.54 69.89 19.11C70.04 18.7 70.12 18.21 70.12 17.64C70.12 17.07 70.04 16.58 69.88 16.16C69.7484 15.7769 69.5087 15.44 69.19 15.19C68.865 14.9551 68.4708 14.8354 68.07 14.85C67.61 14.85 67.23 14.97 66.92 15.2C66.62 15.44 66.39 15.77 66.23 16.2C66.08 16.61 66 17.1 66 17.64C66 18.18 66.08 18.67 66.23 19.1C66.39 19.52 66.63 19.86 66.93 20.1C67.24 20.34 67.63 20.47 68.07 20.47Z" fill="#1B1B1F"/>
<path d="M60.09 22V13.27H62.14V22H60.1H60.09ZM61.12 12.03C60.8 12.03 60.52 11.93 60.28 11.71C60.1684 11.6111 60.0795 11.4894 60.0191 11.3531C59.9587 11.2168 59.9283 11.0691 59.93 10.92C59.93 10.61 60.05 10.35 60.28 10.13C60.52 9.91 60.8 9.8 61.12 9.8C61.45 9.8 61.73 9.91 61.96 10.13C62.2 10.35 62.32 10.61 62.32 10.92C62.32 11.22 62.2 11.49 61.96 11.71C61.73 11.93 61.46 12.03 61.12 12.03Z" fill="#1B1B1F"/>
<path d="M54.66 22.17C53.9015 22.2156 53.1466 22.0346 52.4913 21.65C51.836 21.2653 51.3099 20.6945 50.98 20.01C50.6351 19.279 50.464 18.4781 50.48 17.67C50.48 16.78 50.65 16 50.99 15.32C51.33 14.64 51.81 14.12 52.43 13.73C53.102 13.3359 53.8712 13.1384 54.65 13.16C55.35 13.16 55.98 13.29 56.53 13.56C57.0617 13.8031 57.5168 14.1868 57.8464 14.6697C58.1759 15.1526 58.3674 15.7163 58.4 16.3H56.43C56.364 15.895 56.1673 15.5228 55.87 15.24C55.57 14.96 55.17 14.82 54.67 14.82C54.26 14.82 53.89 14.93 53.57 15.16C53.25 15.38 53 15.7 52.83 16.12C52.65 16.55 52.56 17.05 52.56 17.64C52.56 18.24 52.66 18.74 52.83 19.17C53 19.59 53.24 19.92 53.56 20.15C53.88 20.38 54.25 20.49 54.68 20.49C54.98 20.49 55.25 20.44 55.49 20.32C55.73 20.21 55.94 20.04 56.09 19.82C56.26 19.6 56.37 19.33 56.43 19.02H58.4C58.3725 19.6024 58.1878 20.1664 57.8656 20.6524C57.5434 21.1383 57.0957 21.5279 56.57 21.78C55.9746 22.053 55.3248 22.1864 54.67 22.17H54.66Z" fill="#1B1B1F"/>
<path d="M46.68 18.33V13.27H48.74V22H46.74V20.45H46.65C46.45 20.94 46.13 21.34 45.68 21.65C45.23 21.95 44.68 22.11 44.03 22.11C43.5054 22.1412 42.9835 22.0151 42.531 21.7479C42.0785 21.4806 41.716 21.0844 41.49 20.61C41.2299 20.0535 41.1033 19.444 41.12 18.83V13.27H43.18V18.51C43.18 19.06 43.33 19.51 43.63 19.83C43.93 20.16 44.33 20.32 44.83 20.32C45.1442 20.3154 45.4523 20.2325 45.7265 20.0789C46.0006 19.9252 46.2321 19.7056 46.4 19.44C46.59 19.14 46.68 18.77 46.68 18.33Z" fill="#1B1B1F"/>
<path d="M32.15 22V10.36H34.25V20.23H39.38V22H32.15Z" fill="#1B1B1F"/>
<path d="M18 16C18 14.9391 17.5786 13.9217 16.8284 13.1716C16.0783 12.4214 15.0609 12 14 12C12.9391 12 11.9217 12.4214 11.1716 13.1716C10.4214 13.9217 10 14.9391 10 16C10 18.1217 10.8429 20.1566 12.3431 21.6569C13.8434 23.1571 15.8783 24 18 24C20.1217 24 22.1566 23.1571 23.6569 21.6569C25.1571 20.1566 26 18.1217 26 16C26 12.45 24.45 9.25 22 7.06" stroke="#1B1B1F" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M14 16C14 17.0609 14.4214 18.0783 15.1716 18.8284C15.9217 19.5786 16.9391 20 18 20C19.0609 20 20.0783 19.5786 20.8284 18.8284C21.5786 18.0783 22 17.0609 22 16C22 13.8783 21.1571 11.8434 19.6569 10.3431C18.1566 8.84285 16.1217 8 14 8C11.8783 8 9.84344 8.84285 8.34315 10.3431C6.84285 11.8434 6 13.8783 6 16C6 19.58 7.57 22.8 10.06 25" stroke="#F56565" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M92 18C93.1046 18 94 17.1046 94 16C94 14.8954 93.1046 14 92 14C90.8954 14 90 14.8954 90 16C90 17.1046 90.8954 18 92 18Z" fill="#DDDDDD"/>
<g clip-path="url(#clip1_1_2)">
<path d="M108.193 23.0349C107.283 22.2089 107.018 20.4736 107.397 19.2163C108.054 20.009 108.965 20.2601 109.908 20.4018C111.365 20.6205 112.795 20.5387 114.148 19.8777C114.303 19.8021 114.446 19.7014 114.615 19.5995C114.742 19.9652 114.775 20.3344 114.73 20.7102C114.623 21.6254 114.164 22.3323 113.434 22.8682C113.143 23.0825 112.834 23.2742 112.533 23.4762C111.607 24.0974 111.357 24.8258 111.705 25.8852C111.713 25.9112 111.72 25.937 111.739 26C111.266 25.7899 110.921 25.4841 110.658 25.0821C110.38 24.6578 110.248 24.1884 110.241 23.6805C110.238 23.4334 110.238 23.184 110.204 22.9404C110.123 22.3463 109.842 22.0803 109.313 22.065C108.77 22.0493 108.34 22.3826 108.226 22.9076C108.218 22.9478 108.205 22.9876 108.192 23.0344L108.193 23.0349Z" fill="#17191E"/>
<path d="M103 19.0068C103 19.0068 105.694 17.7035 108.396 17.7035L110.433 11.4431C110.51 11.1403 110.732 10.9346 110.984 10.9346C111.235 10.9346 111.458 11.1403 111.534 11.4431L113.571 17.7035C116.771 17.7035 118.968 19.0068 118.968 19.0068C118.968 19.0068 114.391 6.6266 114.382 6.60176C114.251 6.23574 114.029 6 113.73 6H108.238C107.939 6 107.726 6.23574 107.586 6.60176C107.576 6.62614 103 19.0068 103 19.0068Z" fill="#17191E"/>
</g>
</g>
<defs>
<clipPath id="clip0_1_2">
<rect width="128" height="32" fill="white"/>
</clipPath>
<clipPath id="clip1_1_2">
<rect width="16" height="20" fill="white" transform="translate(103 6)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -27,7 +27,7 @@ import iconNode from '../iconNodes/${iconName}.node.json'
import metaData from '../../../../icons/${iconName}.json'
import releaseData from '../releaseMetadata/${iconName}.json'
const { tags, categories, contributors, aliases } = metaData
const { tags, categories, contributors, aliases, deprecated, deprecationReason, toBeRemovedInVersion } = metaData
const iconDetails = {
name: '${iconName}',
@@ -36,6 +36,9 @@ const iconDetails = {
tags,
categories,
aliases,
deprecated,
deprecationReason,
toBeRemovedInVersion,
...releaseData,
}

View File

@@ -1,7 +1,8 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere"
"karsa-mistmere",
"jguddas"
],
"tags": [
"air conditioner",

View File

@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M18 17.5a2.5 2.5 0 1 1-4 2.03V12" />
<path d="M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2" />
<path d="M6 8h12" />
<path d="M18.3 17.7a2.5 2.5 0 0 1-3.16 3.83 2.53 2.53 0 0 1-1.14-2V12" />
<path d="M6.6 15.6A2 2 0 1 0 10 17v-5" />
<path d="M6.6 15.572A2 2 0 1 0 10 17v-5" />
</svg>

Before

Width:  |  Height:  |  Size: 440 B

After

Width:  |  Height:  |  Size: 414 B

View File

@@ -2,7 +2,8 @@
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere",
"ericfennis"
"ericfennis",
"jguddas"
],
"tags": [
"child",

View File

@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M9 12h.01" />
<path d="M15 12h.01" />
<path d="M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5" />
<path d="M19 6.3a9 9 0 0 1 1.8 3.9 2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1" />
<path d="M15 12h.01" />
<path d="M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1" />
<path d="M9 12h.01" />
</svg>

Before

Width:  |  Height:  |  Size: 467 B

After

Width:  |  Height:  |  Size: 474 B

View File

@@ -0,0 +1,30 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"AnnaSasDev",
"joffx",
"ericfennis",
"mittalyashu"
],
"tags": [
"bill",
"currency",
"money",
"payment",
"funds",
"transaction",
"cash",
"finance",
"withdraw",
"expense",
"out",
"payout",
"refund",
"debit",
"spending",
"decrease"
],
"categories": [
"finance"
]
}

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"
>
<path d="M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5" />
<path d="m16 19 3 3 3-3" />
<path d="M18 12h.01" />
<path d="M19 16v6" />
<path d="M6 12h.01" />
<circle cx="12" cy="12" r="2" />
</svg>

After

Width:  |  Height:  |  Size: 421 B

View File

@@ -0,0 +1,30 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"AnnaSasDev",
"joffx",
"ericfennis",
"mittalyashu"
],
"tags": [
"bill",
"currency",
"money",
"payment",
"funds",
"transaction",
"cash",
"finance",
"deposit",
"earnings",
"income",
"in",
"credit",
"prepaid",
"growth",
"increase"
],
"categories": [
"finance"
]
}

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"
>
<path d="M12 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5" />
<path d="M18 12h.01" />
<path d="M19 22v-6" />
<path d="m22 19-3-3-3 3" />
<path d="M6 12h.01" />
<circle cx="12" cy="12" r="2" />
</svg>

After

Width:  |  Height:  |  Size: 422 B

30
icons/banknote-x.json Normal file
View File

@@ -0,0 +1,30 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"AnnaSasDev",
"joffx",
"ericfennis",
"mittalyashu"
],
"tags": [
"bill",
"currency",
"money",
"payment",
"funds",
"transaction",
"cash",
"finance",
"error",
"failed",
"rejected",
"canceled",
"declined",
"lost",
"delete",
"remove"
],
"categories": [
"finance"
]
}

18
icons/banknote-x.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"
>
<path d="M13 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5" />
<path d="m17 17 5 5" />
<path d="M18 12h.01" />
<path d="m22 17-5 5" />
<path d="M6 12h.01" />
<circle cx="12" cy="12" r="2" />
</svg>

After

Width:  |  Height:  |  Size: 419 B

View File

@@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3" />
<path d="m18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5" />
<circle cx="12.5" cy="8.5" r="2.5" />
<path d="M12.5 2a6.5 6.5 0 0 0-6.22 4.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3A6.5 6.5 0 0 0 12.5 2Z" />
<path d="m18.5 6 2.19 4.5a6.48 6.48 0 0 1 .31 2 6.49 6.49 0 0 1-2.6 5.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5" />
</svg>

Before

Width:  |  Height:  |  Size: 508 B

After

Width:  |  Height:  |  Size: 468 B

View File

@@ -1,7 +1,8 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
"danielbayley",
"jguddas"
],
"tags": [
"fire alarm",

View File

@@ -9,10 +9,10 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M18.8 4A6.3 8.7 0 0 1 20 9" />
<path d="M18.518 17.347A7 7 0 0 1 14 19" />
<path d="M18.8 4A11 11 0 0 1 20 9" />
<path d="M9 9h.01" />
<circle cx="9" cy="9" r="7" />
<rect width="10" height="6" x="4" y="16" rx="2" />
<path d="M14 19c3 0 4.6-1.6 4.6-1.6" />
<circle cx="20" cy="16" r="2" />
<circle cx="9" cy="9" r="7" />
<rect x="4" y="16" width="10" height="6" rx="2" />
</svg>

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 439 B

View File

@@ -14,5 +14,8 @@
"explode",
"explosive"
],
"categories": []
"categories": [
"security",
"tools"
]
}

View File

@@ -11,7 +11,7 @@
>
<path d="m19 3 1 1" />
<path d="m20 2-4.5 4.5" />
<path d="M20 8v13a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" />
<path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H14" />
<path d="M20 7.898V21a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20" />
<path d="M4 19.5v-15A2.5 2.5 0 0 1 6.5 2h7.844" />
<circle cx="14" cy="8" r="2" />
</svg>

Before

Width:  |  Height:  |  Size: 405 B

After

Width:  |  Height:  |  Size: 412 B

17
icons/bow-arrow.json Normal file
View File

@@ -0,0 +1,17 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"jamiemlaw"
],
"tags": [
"archer",
"archery",
"game",
"war",
"weapon"
],
"categories": [
"gaming",
"tools"
]
}

17
icons/bow-arrow.svg Normal file
View File

@@ -0,0 +1,17 @@
<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="M17 3h4v4" />
<path d="M18.575 11.082a13 13 0 0 1 1.048 9.027 1.17 1.17 0 0 1-1.914.597L14 17" />
<path d="M7 10 3.29 6.29a1.17 1.17 0 0 1 .6-1.91 13 13 0 0 1 9.03 1.05" />
<path d="M7 14a1.7 1.7 0 0 0-1.207.5l-2.646 2.646A.5.5 0 0 0 3.5 18H5a1 1 0 0 1 1 1v1.5a.5.5 0 0 0 .854.354L9.5 18.207A1.7 1.7 0 0 0 10 17v-2a1 1 0 0 0-1-1z" />
<path d="M9.707 14.293 21 3" />
</svg>

After

Width:  |  Height:  |  Size: 593 B

View File

@@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M16 3h3v18h-3" />
<path d="M8 21H5V3h3" />
<path d="M16 3h2a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-2" />
<path d="M8 21H6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h2" />
</svg>

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 320 B

View File

@@ -3,7 +3,8 @@
"contributors": [
"karsa-mistmere",
"jguddas",
"it-is-not"
"it-is-not",
"UsamaKhan"
],
"tags": [
"mind",

View File

@@ -9,20 +9,19 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 5a3 3 0 1 0-5.997.142 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588 4 4 0 0 0 7.636 2.106 3.2 3.2 0 0 0 .164-.546c.028-.13.306-.13.335 0a3.2 3.2 0 0 0 .163.546 4 4 0 0 0 7.636-2.106 4 4 0 0 0 .556-6.588 4 4 0 0 0-2.526-5.77A3 3 0 1 0 12 5" />
<path d="M17.599 6.5a3 3 0 0 0 .399-1.375" />
<path d="M6.003 5.125A3 3 0 0 0 6.401 6.5" />
<path d="M3.477 10.896a4 4 0 0 1 .585-.396" />
<path d="M19.938 10.5a4 4 0 0 1 .585.396" />
<path d="M6 18a4 4 0 0 1-1.967-.516" />
<path d="M19.967 17.484A4 4 0 0 1 18 18" />
<path d="m10.852 14.772-.383.923" />
<path d="m10.852 9.228-.383-.923" />
<path d="m13.148 14.772.382.924" />
<path d="m13.531 8.305-.383.923" />
<path d="m14.772 10.852.923-.383" />
<path d="m14.772 13.148.923.383" />
<path d="M17.598 6.5A3 3 0 1 0 12 5a3 3 0 0 0-5.63-1.446 3 3 0 0 0-.368 1.571 4 4 0 0 0-2.525 5.771" />
<path d="M17.998 5.125a4 4 0 0 1 2.525 5.771" />
<path d="M19.505 10.294a4 4 0 0 1-1.5 7.706" />
<path d="M4.032 17.483A4 4 0 0 0 11.464 20c.18-.311.892-.311 1.072 0a4 4 0 0 0 7.432-2.516" />
<path d="M4.5 10.291A4 4 0 0 0 6 18" />
<path d="M6.002 5.125a3 3 0 0 0 .4 1.375" />
<path d="m9.228 10.852-.923-.383" />
<path d="m9.228 13.148-.923.383" />
<circle cx="12" cy="12" r="3" />
<path d="m15.7 10.4-.9.4" />
<path d="m9.2 13.2-.9.4" />
<path d="m13.6 15.7-.4-.9" />
<path d="m10.8 9.2-.4-.9" />
<path d="m15.7 13.5-.9-.4" />
<path d="m9.2 10.9-.9-.4" />
<path d="m10.5 15.7.4-.9" />
<path d="m13.1 9.2.4-.9" />
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 944 B

View File

@@ -0,0 +1,35 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere",
"danielbayley"
],
"tags": [
"firewall",
"security",
"bricks",
"mortar",
"cement",
"materials",
"construction",
"builder",
"labourer",
"quantity surveyor",
"blocks",
"stone",
"campfire",
"camping",
"wilderness",
"outdoors",
"lit",
"warmth",
"wood",
"twigs",
"sticks"
],
"categories": [
"security",
"home",
"connectivity"
]
}

19
icons/brick-wall-fire.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="M16 3v2.107" />
<path d="M17 9c1 3 2.5 3.5 3.5 4.5A5 5 0 0 1 22 17a5 5 0 0 1-10 0c0-.3 0-.6.1-.9a2 2 0 1 0 3.3-2C13 11.5 16 9 17 9" />
<path d="M21 8.274V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.938" />
<path d="M3 15h5.253" />
<path d="M3 9h8.228" />
<path d="M8 15v6" />
<path d="M8 3v6" />
</svg>

After

Width:  |  Height:  |  Size: 534 B

44
icons/brush-cleaning.json Normal file
View File

@@ -0,0 +1,44 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere"
],
"tags": [
"cleaning",
"utensil",
"housekeeping",
"tool",
"sweeping",
"scrubbing",
"hygiene",
"maintenance",
"household",
"cleaner",
"chores",
"equipment",
"sanitation",
"bristles",
"handle",
"home care",
"sanitize",
"purify",
"wash",
"disinfect",
"sterilize",
"scrub",
"polish",
"decontaminate",
"wipe",
"spotless",
"remove",
"empty",
"erase",
"purge",
"eliminate"
],
"categories": [
"home",
"tools",
"design"
]
}

Some files were not shown because too many files have changed in this diff Show More