Compare commits

...

737 Commits

Author SHA1 Message Date
Eric Fennis
985fa35a0b Add call for iconNodes 2025-12-10 17:29:31 +01:00
Eric Fennis
8c0e5cf302 Merge branch 'main' of https://github.com/lucide-icons/lucide into version-search 2025-12-10 16:15:19 +01:00
7ender
4fcfb6a4d1 feat(icons): added fishing-hook icon (#3837)
* Added icons/fishing-hook.svg

* Added icons/fishing-hook.json

* Update icons/fishing-hook.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update fishing-hook.svg

upd, Big thanks to  @jguddas, @karsa-mistmere and @jamiemlaw

* Update fishing-hook.json

+ contributors

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-12-10 14:06:51 +01:00
Jamie Law
0f732b411d feat(icons): added hd icon (#2958)
* Add `hd` icon

* Update hd.svg

* Update hd.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-12-10 13:56:10 +01:00
Eric Fennis
ce09c31f08 Merge branch 'main' of https://github.com/lucide-icons/lucide 2025-12-10 13:12:58 +01:00
Eric Fennis
c2b059fb60 ci(release.yml): Remove deprecated token assignment 2025-12-10 13:12:55 +01:00
Peter Uithoven
b3c80d027a feat(icons): added balloon icon (#2519)
* Added icons/balloon.svg

* Added icons/balloon.json

* Updated icons/balloon.svg

* Optimize paths

* Update tags

---------

Co-authored-by: peteruithoven <peter@metabolic.nl>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-12-10 13:07:01 +01:00
Eric Fennis
20f30bb5ea Merge branch 'main' of https://github.com/lucide-icons/lucide 2025-12-10 13:05:38 +01:00
Eric Fennis
c47ae67a3b ci(ci.yml): Apply env variables 2025-12-10 13:05:34 +01:00
Nathan De Pachtere
7866a5a5c6 feat(icons): added circle-pile icon (#3681)
* Added icons/circle-pile.svg

* Added icons/circle-pile.json

* Add tags

* Reduce high
2025-12-10 12:58:51 +01:00
Eric Fennis
92bc88b001 ci(ci.yml): Fix latest tag from steps and remove superfluous steps 2025-12-10 12:58:06 +01:00
Eric Fennis
e75fbcdec4 feat(icons): Add cloud-sync and cloud-backup (#3466)
* Add icons

* Update cloud-backup.json

* Update cloud-sync.json

* Format code

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-12-10 12:49:56 +01:00
Eric Fennis
4cef8283a7 ci(ci.yml): Fix LATEST_TAG assignment 2025-12-10 12:49:24 +01:00
Wiktor Żagiel
330f4b37db feat(icons): add search-error icon (#3292)
* feat(icons): add `search-error` icon

* Update icons/search-error.svg

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

* Update icons/search-error.json

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

* chore(icons): rename `search-error` to `search-alert`

* Fix indentation contributors in search-alert.json

* Format code

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-12-10 11:33:12 +01:00
Sage Fennel
fd31cb44a8 docs(dev): Fix code sample for vanilla JS (#3836)
* Fix code sample for vanilla JS

The .append method of elements takes plain text, not HTML. This updates the code to use .insertAdjacentHTML instead.

* Update createLabCodeExamples.ts

* fix(site): update createCodeExamples.ts vanilla JS code example

* Update createLabCodeExamples.ts

* Update createCodeExamples.ts

* Update createCodeExamples.ts

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-12-10 11:18:57 +01:00
Juan Isidoro García Cifuentes
790d30dbfa feat(icons): added layers-plus icon (#3367)
* Added icons/layers-plus.svg

* Added icons/layers-plus.json

* Update layers-plus.json

fix: updated contributors to reflect actual author

* fix(icon): update layers-plus icon to follow size and spacing guidelines

* fix(icon): adjust layers-plus plus sign alignment and slope

* fix(icon): apply optimized version from reviewer to align on grid and spacing

* chore: add karsa-mistmere as contributor

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-12-10 11:13:25 +01:00
Karsa
e7c075785f fix(icons): changed tickets icon (#3859)
* Updated icons/tickets.svg

* Updated icons/tickets.json

* Updated icons/tickets-plane.svg

* Updated icons/tickets-plane.json
2025-12-10 11:10:26 +01:00
Ian Jones
6d4c91707d fix(icons): Swap thumbs-up thumbs-down paths to fix fill issue (#3873)
* Swap thumbs-up.svg paths

* Swap thumbs-down.svg paths
2025-12-10 11:09:27 +01:00
Jakob Guddas
c0ea92ebe7 fix(icons): changed brush-cleaning icon (#3863)
* Updated icons/brush-cleaning.svg

* Updated icons/brush-cleaning.json
2025-12-10 11:08:55 +01:00
Jakob Guddas
42dc5508dd fix(icons): changed paint-bucket icon (#3865)
* Updated icons/paint-bucket.svg

* Updated icons/paint-bucket.svg
2025-12-10 11:07:50 +01:00
Eric Fennis
4dda432471 chore(repo): Update Node version and overal cleanup (#3861)
* update ci script

* Update ci workflow

* Update node version
2025-12-10 11:06:48 +01:00
Karsa
0775d8647e fix(site): only show search placeholder if there aren't any results 2025-12-10 08:50:17 +01:00
Karsa
83ef8fc98d fix(icons): changed microchip icon (#3018)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/microchip.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-12-09 15:47:57 +01:00
Karsa
5b56ef705d fix(icons): changed memory-stick icon (#3017)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/memory-stick.svg

* Update memory-stick.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-12-09 15:46:35 +01:00
Karsa
dafe529892 fix: fixed linting issues introduced in c4e5730bc4 (#3858) 2025-12-05 15:21:00 +01:00
Ahmed Dghaies
151c5b145c feat(icons): added van icon (#3821)
* Add van icon

* update tags

* edit icon

* edit contributors

* Update icons/van.json

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

---------

Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-12-05 14:35:58 +01:00
Eric Fennis
d6f9043096 style(ci): Format ci.yml 2025-12-05 14:32:32 +01:00
Karsa
b4405f05ab feat(site): add brand stop words to icon search (#3824)
* feat(site): added extended no results placeholder with brand icon stop words

* feat(site): fix grammatical error

* feat: extract brand stopwords & update github action to use these stopwords

* Apply suggestions from code review

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

* feat: only use icon name section for closing brand request issues

* feat: added mcp brand stopword

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-12-05 14:18:46 +01:00
Jakob Guddas
9076da5f1b fix(icons): changed bubbles icon (#3774)
* Updated icons/bubbles.svg

* Updated icons/bubbles.svg

* Updated icons/bubbles.json
2025-12-05 13:46:42 +01:00
Jamie Law
2e7d806282 fix(icons): changed flashlight icons (#3843)
* Update flashlight.svg

Arcified ends and adjusted the tapering

* Update flashlight-off.svg

Update to match `flashlight.svg`

* Update flashlight.json

Added attribution and tags

* Update flashlight-off.json

* Update flashlight.svg

Correctly round bottom corners

* Update flashlight-off.svg
2025-12-05 09:53:31 +01:00
Eric Fennis
c4e5730bc4 fix(workflow): Fix permissions release worklfow 2025-12-05 09:27:34 +01:00
Nathan De Pachtere
02b35e2518 feat(icons): added estimated-weight icon (#3822)
* Added icons/estimated-weight.svg

* Added icons/estimated-weight.json

* Update icons/estimated-weight.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Change name + reshape tilde

* Change name to weight-tilde

* Update weight-tilde.json

removed weight and tilde, since they're part of the name

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karsa <contact@karsa.org>
2025-12-05 09:18:42 +01:00
Jakob Guddas
f183c3ba20 feat(preview-comment): add symmetry preview (#3823) 2025-12-05 09:11:17 +01:00
Eden Yemini
67e9efb801 fix(icons): Shrink square-scissors icons to match optical volume (#3603)
* Update square-scissors to match optical volume

* Update square-bottom-dashed-scissors to match optical volume

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-12-03 13:26:43 +01:00
Jakob Guddas
2e4c9a65be fix(icons): changed thermometer-sun icon (#3773)
* Updated icons/thermometer-sun.svg

* Updated icons/thermometer-sun.json

* Modify SVG paths in thermometer-sun icon
2025-12-03 13:01:26 +01:00
Jamie Law
de4e8d0acd fix(icons): changed plug icon (#3841)
* Updated icons/plug.svg

* Updated icons/plug.json
2025-12-03 12:45:33 +01:00
Ahmed Dghaies
1f113d4274 feat(icons): added scooter icon (#3818)
* Add scooter icon

* edit tags

* edit icon

* edit icon

* deit icon

* edit icon

* edit contributors

* Update scooter.json

---------

Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-11-28 14:42:51 +01:00
Eric Fennis
dffffc7aff fix: Reverts vercel output path 2025-11-27 11:06:47 +01:00
Eric Fennis
f78061b488 ci(workflows): Enable trusted publishing in release (#3808)
* Add permissions for trusted publishing to workflows

* update pnpm

* Update workflow deps

* format code
2025-11-27 10:58:14 +01:00
Eric Fennis
076e0bbcd9 chore(dependencies): Update dependencies (#3809)
* update deps

* Remove ignoredBuiltDependencies

* Fix build errors

* try this

* update config

* add coma

* Try this

* Revert import change

* try this

* add wasm import

* Load wasm

* try this

* Revert nitro version change

* Revert nitro config change
2025-11-27 10:50:19 +01:00
Muhammad Aqib Bashir
33bb95edcd feat(icon): add book-search icon (#3573) (#3580)
* feat(icon): add book-search icon

* fix(icon): fix vertical alignment of `book-search` icon  .

- Fix the vertical alignment of the icon in the 24x24 grid of pixels 
- It had 3 columns on the left side and 1 on the right side, now made 2 on both sides

* fix: remove extra tag "book search"
2025-11-26 09:29:40 +01:00
Jakob Guddas
4c8650a7bf feat(icons): added form icon (#3558)
* Added icons/form.svg

* Added icons/form.json

* Update icons/form.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update icons/form.json

* Updated icons/form.svg

* Updated icons/form.json

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-11-26 09:27:36 +01:00
Jamie Law
ebf400befd fix(icons): changed scale icon (#3800)
* Updated icons/scale.svg

* Updated icons/scale.json
2025-11-26 09:26:04 +01:00
Eric Fennis
0f6dc52a8a Add waves arrow up down (#3463) 2025-11-23 17:45:08 +01:00
Eric Fennis
83d5ccc3e8 chore(metadata): Adjust navigation category (#3461)
* update categories

* Remove navigation from arrows and chevron icons
2025-11-21 14:10:05 +01:00
Jeevan Mahesha
a3886eb829 feat(angular): update peer dependencies for Angular to support version 21.x (#3807) 2025-11-21 10:37:24 +01:00
Epifânio Francisco
86957f0205 fix(docs): correct package name and description for Flutter and Lustre package (#3701) (#3703)
* fix(docs): correct package name and description for Flutter package (#3701)

* Revert "fix(docs): correct package naming in Packages section (#3701)"

This reverts commit c9b738b4af1ffc114bf7e8e2b81754a54b118b97.

* fix: correct package name from lucide-lustre to lucide_lustre and fix typo (lustre → flutter)
2025-11-21 09:30:20 +01:00
Jakob Guddas
465b98df74 fix(icons): changed calendars icon (#3795)
* Added icons/calendars.svg

* Added icons/calendars.json

* Updated icons/calendars.svg

* Updated icons/calendars.svg

* Updated icons/calendars.json

* Updated icons/calendars.svg
2025-11-17 17:19:26 +01:00
Jakob Guddas
d3b2255c0a feat(icons): added calendars icon (#3788)
* Added icons/calendars.svg

* Added icons/calendars.json

* Updated icons/calendars.svg

* Updated icons/calendars.svg

* Updated icons/calendars.json
2025-11-17 10:06:12 +01:00
Jamie Law
a4beac39a3 fix(icons): update anchor icon (#2523)
* Update `anchor` icon

* Update anchor.svg

* Update anchor.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-11-17 10:04:50 +01:00
Jakob Guddas
53311befff fix(icons): changed folder-git-2 icon (#3790)
* Updated icons/folder-git-2.svg

* Updated icons/folder-git-2.json
2025-11-17 09:34:51 +01:00
Jakob Guddas
156b3379e4 fix(icons): changed ampersand icon (#3771)
* Updated icons/ampersand.svg

* Updated icons/ampersand.json
2025-11-17 09:34:10 +01:00
theiereman
8dd82dd592 feat(docs): added lucide-rails third-party package (#3769) 2025-11-17 09:32:52 +01:00
Eric Fennis
80d6f737e0 fix(icons): Rename fingerprint icon to fingerprint-pattern (#3767)
* Rename fingerprint icon

* Fix as well for lucide-react

* Fix lint error
2025-11-17 09:32:09 +01:00
Karsa
a94044cc3a feat(icons): added chess pieces (#1945)
* fix(icons): add more Lucide-ish rounding to sparkle icons

* chore(icons): sharpen points ever so slightly for better visual weight

* chore(icons): update sparkles & moon-star icon as per Discord

* feat(icons): added chess icons

* chore(icons): revert commits from #1937

* chore(icons): revert commits from #1937

* Update icons/chess-rook.svg

* Update icons/chess-rook.svg

* Update icons/chess-rook.json

* fix(icons/chess): finetune queen & adjust bases for better scalability

* fix(icons/chess): decrease rook base width

* fix(icons/chess): decrease knight base width

* fix(icons/chess): fix linting issue with chess-rook.json

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-11-07 10:39:37 +01:00
ocavue
2c46ea9948 fix(lucide-preact): handle className prop (#3751) 2025-11-07 10:07:57 +01:00
Rokas Brazdžionis
190e8372af feat(docs): add keyboard shortcut for search (#3718) 2025-11-07 10:04:40 +01:00
Karsa
d3826ce952 fix(icons): changed ruler-dimension-line icon (#3433)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/ruler-dimension-line.svg

* Updated icons/ruler-dimension-line.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-10-31 10:37:37 +01:00
Domingas P
ee66dd258d feat(icons): added mouse-pointer-2-off icon (#3570)
* Added icons/mouse-pointer-2-off.svg

* Added icons/mouse-pointer-2-off.json

* Update icons/mouse-pointer-2-off.svg

* Update icons/mouse-pointer-2-off.json

* Update icons/mouse-pointer-2-off.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Apply @jguddas alternative 2

* Apply suggestion from @jguddas

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

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-31 10:34:58 +01:00
Usama Khan
265770857f feat(icons): added solar-panel icon (#2780)
* Added icons/solar-panel.svg

* Added icons/solar-panel.json

* Updated icons/solar-panel.svg

* Updated icons/solar-panel.json

* Update solar-panel.svg

* Update solar-panel.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-10-31 10:32:49 +01:00
Karsa
1c20fc66d7 fix(icons/file): arcified folds (#3587)
* fix(icons/file): add rounding to file fold corners & apply this change to other icons with folds.

* fix(icons/file): update file-digit.svg with the correct version

* fix(icons/file): update file-key for better centre of gravity

* fix(icons/file): optimized & formatted icons

* fix(icons/file): increase file-type-corner T size to better match other addons

* feat(docs): increase size of braces & rename file-json to file-braces

* refactor(icons): further increase size of T in file-type-corner.svg

* refactor(icons): upgrade file-digit to match binary

* refactor(icons): upgrade file-check-corner to match other operational icons (plus/minus/x)

* Update file-scan.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-10-31 10:31:07 +01:00
Jakob Guddas
c34c5f2aea feat(icons): added clock-check icon (#2402)
* Added icons/clock-check.svg

* Added icons/clock-check.json

* Updated icons/clock-check.svg

* Updated icons/clock-check.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-10-31 10:21:50 +01:00
liloudreams
6432dddfe0 feat(icons): added helicopter icon (#2760)
* Added icons/helicopter.svg

* Added icons/helicopter.json

* Update helicopter.svg

* Update helicopter.svg

Review gap and stroke violations

* Update icons/helicopter.json

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

* Update icons/helicopter.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Update icons/helicopter.svg

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

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-31 10:18:54 +01:00
Joris Gallot
028fc12657 feat(icons): added git-branch-minus icon (#3586)
* Added icons/git-branch-minus.svg

* Added icons/git-branch-minus.json

* chore: optimise with circles

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

* Update git-branch-minus.json

* Update git-branch.json

* Update git-branch-plus.json

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-10-31 10:15:31 +01:00
Victor Kaugesaar
2e794a296a feat(docs): add new package for Go (#3736) 2025-10-31 09:54:31 +01:00
/Aljoscha
be59e647c1 Replace pnpm install with pnpm add across documentation. (#3735) 2025-10-26 17:01:12 +01:00
felipeajzanetti
e560b8bf3a feat(icons): added gamepad-directional icon (#3693)
* Added icons/gamepad-directional.svg

* Added icons/gamepad-directional.json

* Update icons/gamepad-directional.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Icon update

* Update icons/gamepad-directional.json

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-10-24 20:29:07 +02:00
Eric Fennis
74d6fbc941 Fix default prop (#3730) 2025-10-24 16:44:49 +02:00
Matthes Kaiser
a2a0821c66 docs: add practical introductions to package documentation (#3643) 2025-10-24 14:18:51 +02:00
Lance
b787576f4a feat(docs): add new package for Slint (#3698) 2025-10-24 13:54:24 +02:00
Hieu
375ad12aeb feat(icons): added birdhouse icon (#3378)
* Added icons/birdhouse.svg

* Added icons/birdhouse.json

* Update birdhouse.svg

Edit .svg with the suggested changes

* Update icons/birdhouse.json

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

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-10-24 13:04:53 +02:00
Khalid Alansary
be55088e75 fix(packages/lucide): replace elements inside <template> (#2635) (#3576)
* fix(packages/lucide): replace elements inside `<template>` (#2635)

* Added replaceInsideTemplates option

* Format code

* Simply code and add some documentation

* Fix vercel build

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-10-17 11:46:55 +02:00
dependabot[bot]
32e93c043f chore(deps): bump astro from 5.5.2 to 5.14.4 (#3683)
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 5.5.2 to 5.14.4.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@5.14.4/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-version: 5.14.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-16 13:59:49 +02:00
Karsa
920fa7888b fix(): update brand logo statement link in github action (#3630) 2025-10-16 13:59:35 +02:00
Karsa
95766b6682 feat(icons): added monitor-cloud icon (#3037)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Added icons/monitor-cloud.svg

* Added icons/monitor-cloud.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-10-16 13:55:01 +02:00
Jakob Guddas
db15bb85c0 Updated icons/sword.svg (#3421) 2025-10-16 13:53:00 +02:00
Daniel Bayley
84c210acf5 feat(icons): add VS Code squircle base shape snippet (#3674)
* feat(icons): add VS Code `squircle` base shape snippet

* config: add VS Code snippets schema
2025-10-16 13:48:06 +02:00
Niels
3c7815c5c0 Update index.md (#3673)
removed duplicate text
2025-10-10 15:47:55 +02:00
Jakob Guddas
7bb27142c8 fix(icons): changed receipt-text icon (#3553)
* Updated icons/receipt-text.svg

* Updated icons/receipt-text.json

* Updated icons/receipt-text.svg

* Updated icons/receipt-text.svg

* Updated icons/receipt-text.json
2025-10-06 21:03:54 +02:00
Jamie Law
2811d60184 feat(icons): Add motorbike icon (#3371)
* Add `motorbike` and `dirtbike` icons

* Renamed `dirtbike` to `dirt-bike`

* Deleted `dirt-bike` in order to move it to a separate PR

* Update motorbike.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-10-06 20:58:56 +02:00
dependabot[bot]
730c24ec55 chore(deps): bump devalue from 5.1.1 to 5.3.2 (#3638)
Bumps [devalue](https://github.com/sveltejs/devalue) from 5.1.1 to 5.3.2.
- [Release notes](https://github.com/sveltejs/devalue/releases)
- [Changelog](https://github.com/sveltejs/devalue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/devalue/compare/v5.1.1...v5.3.2)

---
updated-dependencies:
- dependency-name: devalue
  dependency-version: 5.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 20:56:31 +02:00
Karsa
56ebfeb596 Updated icons/building-2.svg (#3509) 2025-10-06 20:55:54 +02:00
Jakob Guddas
905d38186c fix(icons): changed combine icon (#3200)
* Updated icons/combine.svg

* Updated icons/combine.json

* Updated icons/combine.svg

* Updated icons/combine.svg

* Updated icons/replace.svg

* Updated icons/replace.svg

* Updated icons/combine.svg

* Updated icons/replace.svg

* Updated icons/replace-all.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-10-06 20:55:14 +02:00
dependabot[bot]
1cfb3ff70e chore(deps-dev): bump vite from 6.3.5 to 6.3.6 (#3611)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.3.5 to 6.3.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.3.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.6
  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-09-19 10:08:00 +02:00
Jakob Guddas
31cfa79818 fix(icons): arcified square-m icon (#3549)
* Updated icons/square-m.svg

* Updated icons/square-m.json

* Updated icons/square-m.svg

* Updated icons/square-m.json
2025-09-11 13:01:58 +02:00
Jamie Law
d1903220db fix(icons): changed flame icon (#3600)
* Updated icons/flame.svg

* Updated icons/flame.json

* Update icons/flame.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-11 12:59:06 +02:00
Usama Khan
ec567e59fc feat(icons): added ev-charger icon (#2781)
* Added icons/ev-charger.svg

* Added icons/ev-charger.json

* Updated icons/ev-charger.json

* Updated icons/ev-charger.svg

* Update ev-charger.svg

* Update icons/ev-charger.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* Updated icons/fuel.svg

* Updated icons/fuel.json

* Update ev-charger.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-11 11:52:13 +02:00
Eric Fennis
1d6b5d6858 Update snapshot 2025-09-11 09:47:08 +02:00
Pascal Duez
c368d01d92 docs: update lucide-static documentation about raw string imports (#3524) 2025-09-11 09:41:17 +02:00
Daniel Bayley
99427026a3 feat(icons): added house-heart icon (#3239)
* feat(icons): added `house-heart` icon

* Optimise `house-*` icons
2025-09-09 08:36:31 +02:00
vuong quang huy
81a1f6e1dc feat(packages): add new package for flutter (#3536)
* add new package for flutter

* update logo

* fix: correct URL for Total Downloads image in packageData.thirdParty.json
2025-09-05 12:26:54 +02:00
Eric Fennis
7fb4ffc7a7 update sponsors 2025-09-02 08:17:21 +02:00
dependabot[bot]
30529bbeb2 chore(deps): bump astro from 5.5.2 to 5.13.2 (#3564)
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 5.5.2 to 5.13.2.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@5.13.2/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-version: 5.13.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-29 10:20:03 +02:00
Jakob Guddas
279ac9ce13 fix(icons): changed calendar-cog icon (#3583)
* Updated icons/calendar-cog.svg

* Updated icons/calendar-cog.json
2025-08-29 10:19:37 +02:00
Jakob Guddas
2dede9886b Updated icons/id-card-lanyard.json (#3534) 2025-08-29 10:18:57 +02:00
Jakob Guddas
781fc399a2 fix(meta): added tag to ship metadata (#3559)
* Updated icons/ship.svg

* Updated icons/ship.json

* Updated icons/ship.json
2025-08-29 10:09:33 +02:00
Jakob Guddas
087b59d55e fix(icons): changed message-square-quote icon (#3550)
* Updated icons/message-square-quote.svg

* Updated icons/message-square-quote.json
2025-08-29 10:08:17 +02:00
Jakob Guddas
e1f96d8f54 fix(icons): changed panel-top-bottom-dashed icon (#3584)
* Updated icons/panel-top-bottom-dashed.svg

* Updated icons/panel-top-bottom-dashed.json

* Updated icons/panel-left-right-dashed.svg

* Updated icons/panel-left-right-dashed.json
2025-08-29 10:07:43 +02:00
Karsa
7cf38b5b6e fix(icons): changed list/text & derived icons (#3568)
* fix(icons): increase base height of list/text and derived icons for more consistent optical volume

* refactor(icons): upgrade list-chevrons-down-up
feat(icons): add list-chevrons-up-down

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-08-29 10:05:16 +02:00
Jamie Law
9c441bd4ff fix(icons): Optimise bug icons (#3574)
* Optimise `bug` icons

* Remove unnecessary connecting line
2025-08-29 09:53:32 +02:00
Jamie Law
507a86a890 chore(metadata): Added tags to messages-square (#3529)
* Discussion - GitHub's discussions section uses this type of icon
* Interview - e.g. a category of content, alongside "article", "video", "podcast"
* Debate - in a similar vein to "interview"
2025-08-29 09:51:56 +02:00
Karsa
8d4d9cd6d5 fix(icons): changed church icon (#2971)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/church.svg

* Update church.svg

* Update church.svg

* Update icons/church.svg

* Update church.svg

* Update church.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-08-29 09:51:25 +02:00
Jakob Guddas
341be34b1f feat(preview-comment): put x-ray at top if there are more than 7 changed icons to prevent them from being cut of (#3589) 2025-08-29 09:48:45 +02:00
Julian Kelly
d52c369b99 feat(icons): added list-chevrons-down-up icon (#3492)
* Added icons/list-chevrons-down-up.svg

* Added icons/list-chevrons-down-up.json

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-08-26 13:20:48 +02:00
Karsa
a7a1973d3f feat(docs): add MDN Web Docs & Nuxt to showcase (#3590) 2025-08-25 14:56:00 +02:00
Irvine Acosta
b6dfcef41b feat(icons): added 'panel-dashed' variants + update tags on existing icons (#3500)
* feat(icons): add panel-{top-bottom,left-right,all-sides}-dashed; update tags on existing panel icons

* removed the all-sides variant

* added bleed to keyword list
2025-08-22 10:27:22 +02:00
Jakob Guddas
1c5a9dafc1 feat(dpi-preview): add previous version for easier comparison (#3532)
* feat(dpi-preview): add previous version for easier comparison

* feat(preview comment): add link to lucide studio to x-ray images (#3552)
2025-08-22 10:26:16 +02:00
Karsa
546bb1f391 Updated icons/building.svg (#3510) 2025-08-22 10:23:40 +02:00
Jakob Guddas
64c1a55e01 Updated icons/cog.svg (#3548) 2025-08-22 10:22:52 +02:00
Jakob Guddas
0e3ac6beb9 fix(icons): changed wallpaper icon (#3566)
* Updated icons/wallpaper.svg

* Updated icons/wallpaper.json

* Update icons/wallpaper.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-22 10:22:14 +02:00
Jakob Guddas
c7c0e2bead fix(icons): optimized chrome icon & renamed to chromium (#3572)
* Updated icons/chrome.svg

* fix(icons): renamed chrome to chromium due to https://github.com/lucide-icons/lucide/issues/3571

* fix(icons/chromium): added missing EOL to json

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-08-22 10:03:47 +02:00
Karsa
85dba80322 feat(packages/lucide): added support for providing a custom root element (#3543)
* feat(packages/lucide): added support for providing a custom root element

* feat(packages/lucide): ran prettier & renamed from root ⇒ context
2025-08-18 15:25:08 +02:00
Jakob Guddas
f8a1a76b83 feat(icons): added rose icon (#1972)
* Added icons/rose.svg

* Added icons/rose.json

* Updated icons/rose.svg

* Updated icons/rose.json

* Updated icons/rose.svg

* Updated icons/rose.json

* Updated icons/rose.svg

* Updated icons/rose.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-08-18 15:15:57 +02:00
Karsa
bd50af7afb fix(icons): changed camera icon (#3539)
* Updated icons/camera.svg

* Updated icons/camera.json

* Updated icons/camera-off.svg

* Apply suggestion from @github-actions[bot]

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-08-18 15:13:21 +02:00
Karsa
cfabc9f608 docs(site): added official statement on brand logos in Lucide (#3541)
* docs(): added official statement on brand logos in Lucide

* docs(): fix accidental typo from adding link

* docs(): migrating some stuff to a more accessible plain language format

* Update .github/ISSUE_TEMPLATE/01_icon_request.yml

* Update .github/ISSUE_TEMPLATE/01_icon_request.yml

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

* Update README.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update .github/pull_request_template.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-18 15:11:06 +02:00
Karsa
09f98127c6 fix(icons): changed umbrella icon (#3490)
* Updated icons/umbrella.svg

* Updated icons/umbrella-off.svg

* Updated icons/umbrella.svg

* Updated icons/umbrella-off.svg
2025-08-18 15:09:45 +02:00
Jakob Guddas
867c0581af fix(license): add full text of Feather license (#3530)
* fix(license): add full text of Feather license

* Update LICENSE

* Update LICENSE
2025-08-09 05:54:10 +02:00
Eric Fennis
987edb14f8 ci(release.yml): Disable lucide-vue release (Deprecated) 2025-08-08 13:41:34 +02:00
Karsa
9db4dc7e1c feat(icons): added brick-wall-shield icon (#3476)
* Added icons/brick-wall-shield.svg

* Added icons/brick-wall-shield.json
2025-08-08 10:28:41 +02:00
Jacob Padilla
2150ce75ce feat(icons): added kayak icon (#3054)
* kayak svg and json schema

* made kayak icon 1px smaller on all sides

* added jguddas as contributor

* fixed gap in kayak paddle

* indentation
2025-08-08 10:14:20 +02:00
Jakob Guddas
106e37c3ce fix: deprecate rail-symbol (#2862) 2025-08-08 10:12:40 +02:00
dependabot[bot]
528ffd6fa5 chore(deps): bump astro from 5.5.2 to 5.12.8 (#3523)
Bumps [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) from 5.5.2 to 5.12.8.
- [Release notes](https://github.com/withastro/astro/releases)
- [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md)
- [Commits](https://github.com/withastro/astro/commits/astro@5.12.8/packages/astro)

---
updated-dependencies:
- dependency-name: astro
  dependency-version: 5.12.8
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-08 09:50:44 +02:00
LieOnLion
3b92fae633 fix(icons): changed mic-off icon (#2823)
* Updated icons/mic-off.svg

* Updated icons/mic-off.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-08-08 09:38:22 +02:00
Karsa
fcf42bf754 Updated icons/store.svg (#3501) 2025-08-08 09:29:49 +02:00
Karsa
0b6149c02d fix(icons): changed apple icon (#3505)
* Updated icons/apple.svg

* Updated icons/apple.json

* Update apple.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-08-08 09:26:35 +02:00
Karsa
bc9a8de419 feat(icons): added circle-star icon (#3507)
* Added icons/circle-star.svg

* Added icons/circle-star.json

* Added icons/square-star.svg

* Added icons/square-star.json

* Update square-star.json

* Update circle-star.json
2025-08-07 12:22:36 +02:00
Jakob Guddas
26ab33a832 fix: fixed array length error in diff endpoint (#3498) 2025-08-07 11:29:21 +02:00
Karsa
ac4c3581c4 fix(site): fix icon style customizer (#3511) 2025-08-07 11:26:07 +02:00
Karsa
1ddba6da04 fix(icons): changed school icon (#2968)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/school.svg

* Update school.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-08-05 17:19:48 +02:00
Karsa
8754c9b6fd fix(icons): changed spade icon (#3502)
* Updated icons/spade.svg

* Updated icons/spade.json
2025-08-05 14:31:40 +02:00
Jakob Guddas
e9febe4fab docs: add rule against war/violence related imagery (#3506)
* docs: add rule against war/violence related imagery

* Update 01_icon_request.yml
2025-08-05 10:29:23 +02:00
Jamie Law
570f7d7e76 chore(metadata): Add tags to x icon (#3341)
Added 'ex' and 'cross' as tags
2025-08-01 13:15:17 +02:00
Karsa
6d43b9feb3 feat(icons): added turntable icon (#3429)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Added icons/turntable.svg

* Added icons/turntable.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-08-01 12:30:47 +02:00
Jakob Guddas
16166f838b feat(lucide-static): include aliases in icons directory (#3368) 2025-08-01 12:21:31 +02:00
Jakob Guddas
425bcc3f3d fix(icons): arcified cake-slice icon (#3345)
* Updated icons/cake-slice.svg

* Updated icons/cake-slice.json
2025-08-01 12:19:13 +02:00
Jakob Guddas
982af91724 fix(icons): changed a-arrow-* icons (#3474)
* Updated icons/a-arrow-up.svg

* Updated icons/a-arrow-down.svg
2025-08-01 12:09:22 +02:00
Eric Fennis
a3ec4428f1 fix(lucide-vue-next): Support for kebabCase props (#3477)
* Fix kebabCase Vue props

* format code

* Fix tests

* Format code
2025-08-01 11:39:49 +02:00
Abdelrahman
673e76831d fix: add extensions to imports (#2950)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-08-01 11:39:36 +02:00
Karsa
b4291576b7 fix(icons): changed hospital icon (#2969)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/hospital.svg

* Update hospital.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-31 13:54:05 +02:00
Karsa
95f5ecacad fix(icons): arcified message icons & fixed optical volume (#3473)
* fix(icons): arcify message icons & fix optical volume

* fix(icons): increase optical volume of messages-square
2025-07-31 12:57:36 +02:00
Karsa
ef5c1b9bdd feat(icons): added hand-fist, renamed grab to hand-grab (#1843) 2025-07-31 12:44:26 +02:00
Eric Fennis
b01715ebe8 chore(docs): Update vitepress deps (#3470)
* Update vitepress

* Format code

* Update deps

* Fix build

* Update lockfile
2025-07-31 11:45:59 +02:00
Karsa
05dd5fcfde fix(icons): changed tiny heart icons (#3471)
* Updated icons/file-heart.svg

* Updated icons/folder-heart.svg

* Updated icons/calendar-heart.svg

* Updated icons/scan-heart.svg

* Updated icons/book-heart.svg

* Updated icons/book-heart.json

* Updated icons/hand-heart.svg

* Updated icons/hand-heart.json

* Updated icons/message-circle-heart.svg

* Updated icons/message-circle-heart.json

* fix(icons): revert changes made to message-circle-heart in favour of https://github.com/lucide-icons/lucide/pull/3473
2025-07-31 10:40:17 +02:00
Jakob Guddas
e71198d9b3 chore: icon alias improvements (#2861)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-30 16:52:50 +02:00
Jakob Guddas
57714e36ea feat(SvgPreview): add features from lucide studio (#3365)
* feat(SvgPreview): add features from lucide studio

* Update docs/.vitepress/lib/SvgPreview/index.tsx

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-30 16:20:24 +02:00
Epifânio Francisco
358c9c1e80 fix(docs): update prop name from absolute-stroke-width to absoluteStrokeWidth in vue-next guide (#3322)
- Changed kebab-case to camelCase for consistency with Vue prop naming conventions
- Updated props table in lucide-vue-next documentation
2025-07-30 15:56:48 +02:00
Alex
64ddff76c5 fix: properly select icons dir for tags & error if no metadata found (#3411)
Fixes #3359
Throwing an error in readAllMetadata now to ensure this error can't happen again in the future.
The error was caused by this script being moved to a different dir, but the relative url not being updated, causing no icons to be found.
2025-07-30 11:59:46 +02:00
Jakob Guddas
31a9cdcbcc ci: add "telegram" to close-issue-with-banned-phrases (#3475) 2025-07-30 09:04:52 +02:00
Karsa
69319ee2f0 feat(icons): arcified moon icons (#3380) 2025-07-29 20:50:39 +02:00
Karsa
7beb3ee666 fix(icons): changed gavel icon (#3465)
* Updated icons/gavel.svg

* Updated icons/gavel.json

* Update icons/gavel.json

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-29 19:16:31 +02:00
Eric Fennis
396d6d42ce ci(suggest-tags): Switch to github.event.pull_request.head.sha 2025-07-29 16:19:30 +02:00
Eric Fennis
37a60eefb2 ci: Switch to $GITHUB_SHA 2025-07-29 16:11:08 +02:00
Jakob Guddas
c2c46b21ed fix(icons): changed mails, tags, files, file-stack, book-copy and folders icon (#2935)
* Updated icons/folders.svg

* Updated icons/folders.svg

* Updated icons/folders.svg

* Updated icons/folders.svg

* Updated icons/files.svg

* Updated icons/files.json

* Updated icons/mails.svg

* Updated icons/mails.json

* Updated icons/tags.svg

* Updated icons/tags.json

* Updated icons/files.svg

* Updated icons/file-stack.svg

* Updated icons/file-stack.json

* Updated icons/files.json

* Updated icons/images.svg

* Updated icons/square-stack.svg

* Updated icons/square-stack.json

* Updated icons/square-stack.svg

* Updated icons/files.svg

* Update icons/square-stack.json

* Update icons/square-stack.svg

* Updated icons/book-copy.svg

* Updated icons/tags.svg

* Updated icons/tags.svg

* Update icons/mails.svg

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

* Update icons/folders.svg

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

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
2025-07-29 09:37:58 +02:00
Karsa
0a0c8aa7e7 fix(icons): changed settings icon (#3467)
* Updated icons/settings.svg

* Updated icons/settings.json

* Updated icons/settings.svg

* Update settings.svg
2025-07-29 09:35:23 +02:00
Usama Khan
dc14e6ea8e feat(icons): added closed-caption icon (#2910)
* Added icons/closed-caption.svg

* Added icons/closed-caption.json

* Update closed-caption.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-29 09:28:40 +02:00
Jamie Law
1f67ef5307 fix(icons): Rounded and optically-centred flag-triangle-* icons (#3438)
* Rounded and optically-centred `flag-triangle-*` icons

* Increase size of flag
2025-07-29 09:23:43 +02:00
Jakob Guddas
ff6f9a09ad Updated icons/folder-symlink.svg (#2558) 2025-07-29 09:22:54 +02:00
Jakob Guddas
585b65f28f fix(icons): added rounding to heart-* icons (#3061)
* Updated icons/heart-handshake.svg

* Updated icons/heart-handshake.json

* Updated icons/heart-handshake.svg

* Updated icons/heart-handshake.svg

* Updated icons/heart-handshake.svg

* Updated icons/heart-handshake.svg

* Updated icons/heart-handshake.svg

* Updated icons/heart-handshake.svg

* Updated icons/heart.svg

* Updated icons/heart.json

* Updated icons/heart-pulse.svg

* Updated icons/heart-pulse.json

* Updated icons/heart-crack.svg

* Updated icons/heart-crack.json

* Updated icons/heart-off.svg

* Updated icons/heart-off.json

* Updated icons/heart-crack.svg

* Updated icons/heart-handshake.svg

* Updated icons/heart-minus.svg

* Updated icons/heart-minus.json

* Update icons/heart-minus.json

* Update icons/heart-minus.json

* Update icons/heart-minus.json

* Apply suggestions from code review

* Updated icons/heart-minus.svg

* Updated icons/heart-minus.svg

* Updated icons/heart-off.svg

* Updated icons/heart-plus.svg

* Updated icons/heart-plus.json

* Updated icons/heart-plus.json

* Update icons/heart-handshake.svg

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

* Update icons/heart-handshake.svg

* Update icons/heart-crack.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
2025-07-29 07:31:19 +02:00
Victor Soteras
405feea8f6 fix(icons): Changed a-large-small icon (#3396)
* fix(icons): Changed a-large-small icon

* fix(icons): Changed case-sensitive icon

* fix(icons): Changed case-lower icon

* fix(icons): Changed case-upper icon

* Apply suggestions from code review

* Update .gitignore

* Update icons/a-large-small.json

* Update icons/case-upper.svg

* Update icons/case-upper.svg

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-28 17:08:39 +02:00
Karsa
5931a4a227 fix(icons): changed sailboat icon (#3460)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/sailboat.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-28 15:59:58 +02:00
Zlendy
d3bafc2848 fix(docs): Icon Component Example for Svelte 5 does not compile (#3416) 2025-07-28 15:58:31 +02:00
Karsa
a6f4a08bda fix(icons): changed wrench icon (#3459)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/wrench.svg

* Updated icons/wrench.json

* Updated icons/pickaxe.svg

* Updated icons/gavel.svg

* Updated icons/hammer.svg

* Updated icons/hammer.json

* Updated icons/pickaxe.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-28 15:57:03 +02:00
Jamie Law
5a93aff903 feat(icons): added handbag icon (#3298)
* Added icons/handbag.svg

* Added icons/handbag.json

* Update handbag.json

Added extra tags

* Fix trailing comma

* Update icons/handbag.svg

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

* Update handbag.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
2025-07-28 15:56:37 +02:00
Bean Duong
e6c50d543b feat(icons): added clipboard-clock icon (#3427)
* Added icons/clipboard-clock.svg

* Added icons/clipboard-clock.json

* Flip clock side

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

* Add contributors

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

* Extend use cases

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

* Update icons/clipboard-clock.json

* Remove duplicated tag

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

---------

Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-28 15:51:52 +02:00
Karsa
0d7c70cab6 fix(icons): changed user-star icon (#3464)
* Updated icons/user-star.svg

* Updated icons/user-star.json

* Update user-star.json
2025-07-28 15:51:29 +02:00
Martin Vítek
379d1b1002 feat(icons): added user-star icon (#3331)
* Added icons/user-star.svg

* Added icons/user-star.json

* enlarge star in user-star icon

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-28 15:07:27 +02:00
Mariano Franzese
7d6998941d feat(icons): added map-minus icon (#3259)
* Added icons/map-minus.svg

* Added icons/map-minus.json

* Update icons/map-minus.svg

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

* Update icons/map-minus.json

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

* Update icons/map-minus.json

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

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-28 14:59:25 +02:00
Eric Fennis
667bb8034d fix(icons): Rename location-edit to map-pin-pencil (#3462)
* Rename `location-edit` to `map-pin-pencil`

* Updated "aliases" object
2025-07-28 14:51:16 +02:00
Karsa
fd9c489d7a fix(icons): changed castle icon (#2972)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/castle.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-28 13:57:04 +02:00
Karsa
acb0e37ac2 fix(icons): changed shovel icon (#3458)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/shovel.svg

* Updated icons/shovel.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-28 13:46:09 +02:00
Karsa
6c25cbee67 feat(icons): added hat-glasses icon (#3431)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Added icons/hat-glasses.svg

* Added icons/hat-glasses.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-28 10:41:43 +02:00
Jamie Law
08121af31e fix(icons): arcify arrow-big- icons (#3356)
* fix(icons): arcify `arrow-big-` icons

* give correct attribution

* shorten stems of `arrow-big-*-dash` icons
2025-07-28 10:30:59 +02:00
Karsa
2d484469cd fix(icons): changed sparkles icon (#3426)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/sparkle.svg

* Updated icons/sparkles.svg

* Updated icons/sparkles.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-28 10:24:37 +02:00
Karsa
f66d167ead fix(icons): arcified playback icons (#3425)
* fix(icons): arcified playback icons

* fix(icons): fix file-play name & file-video-2 => file-video-camera

* fix(icons): add `stop` tags to square

* fix(icons): fix lines on skip icons

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-07-28 10:17:44 +02:00
Jamie Law
c63e5a456e fix(icons): changed sprout icon (#3430)
* Updated icons/sprout.svg

* Updated icons/sprout.json

* Add a bend to the sprout stalk

* Add rounding to the leaf tip
2025-07-28 10:11:49 +02:00
Karsa
aac12f991a fix(icons): changed croissant icon (#3428)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/croissant.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-28 10:11:12 +02:00
Jamie Law
3844a4b346 Refine refresh-ccw-dot to match other refresh- icons (#3437)
Also update attributions to include contributors to `refresh-ccw`, ignoring optimisations
2025-07-28 10:10:41 +02:00
Karsa
98b43826a4 fix(icons): changed gem icon (#3442)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/gem.svg

* Updated icons/gem.json

* Update gem.svg

* Update gem.svg

* Update gem.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-28 10:10:14 +02:00
Jakob Guddas
e8194cbabe fix(icons): changed lasso icon (#3454)
* Updated icons/lasso.svg

* Updated icons/lasso.json
2025-07-28 09:57:12 +02:00
Kyle Angelo Galendez
17bbbe1cbb feat(icons): added spotlight icon (#3450)
* Added icons/spotlight.svg

* Added icons/spotlight.json
2025-07-28 09:56:11 +02:00
Jakob Guddas
c698121170 Updated icons/monitor-dot.svg (#3452) 2025-07-28 09:01:20 +02:00
Luis David Lopera
7a380a8177 feat(icons): added wifi-sync icon (#3132) 2025-07-26 21:04:49 +02:00
Karsa
55623e1611 fix(icons): changed magnet icon (#3435)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/magnet.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-22 18:47:49 +02:00
Karsa
803d237fef fix(icons): fixed ban icon (#3434)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/ban.svg

* Updated icons/ban.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-22 18:35:40 +02:00
Jakob Guddas
151bd33cd7 fix(icons): changed pen-line and pencil-line icon (#2663)
* Updated icons/pencil-line.svg

* Updated icons/pencil-line.json

* Updated icons/pen-line.svg

* Updated icons/pen-line.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-21 18:01:47 +02:00
Karsa
b3b8cfd59c fix(icons): changed trash icon (#3394)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/trash-2.svg

* Updated icons/trash.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-07-07 09:12:51 +02:00
Jakob Guddas
996fc68c7e fix(icons): changed podcast icon (#3385)
* Updated icons/podcast.svg

* Updated icons/podcast.json

* Update icons/podcast.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-04 17:34:00 +02:00
Eric Fennis
69e99093b8 ci(suggest-tags): Fix types import 2025-07-04 17:32:32 +02:00
Eric Fennis
030c7b9cb9 Merge branch 'main' of https://github.com/lucide-icons/lucide 2025-07-04 17:27:11 +02:00
Eric Fennis
6f384680b4 ci(suggest-tags): Fix failing job 2025-07-04 17:27:07 +02:00
Jakob Guddas
e810b7273f fix(icons): changed cable icon (#3374)
* Updated icons/cable.svg

* Update cable.svg

* Update cable.svg

* Updated icons/cable.svg

* Updated icons/cable.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-07-04 17:12:42 +02:00
Jamie Law
599c517188 fix(icons): changed brain icon (#3381)
* Updated icons/brain.svg

* Updated icons/brain.json
2025-07-04 17:06:45 +02:00
Jamie Law
95830a0d88 Add Turkish lira icons (#2873)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-30 21:59:19 +02:00
Eric Fennis
5f0c19afaa ci(suggest-tags): Allow to always run 2025-06-30 21:50:58 +02:00
Eric Fennis
37135af384 ci(suggest-tags): Switch to pull_request_target with suggest tags 2025-06-30 21:49:06 +02:00
Jakob Guddas
0fdc2413f6 Updated icons/circle-parking-off.svg (#3343) 2025-06-30 20:35:00 +02:00
Eric Fennis
d565b951d7 ci(suggest-tags): Fix tags suggestions 2025-06-30 20:25:12 +02:00
Itrulia
3e7d748827 docs(site): small changes for DynamicIcon (#3355)
* docs(lucide-react): small changes for DynamicIcon

Changed the sentence structure slightly for DynamicIcon to be easier to understand.

* Update lucide-react.md
2025-06-27 17:13:44 +02:00
Eric Fennis
0e54626bdb ci(icons): Add ChatGPT tags suggestions on icon PRs (#3372)
* Add gpt tags

* Add github actions flow

* Add link so people can use the chat

* Fix workflow

* Add openai dep

* Add actions core

* Try gh pr review in actions

* Try with octokit

* Remove changed files part

* Try with createReview function

* Try this

* fix broken json file

* Turn on review by gh action

* Try this

* Update icons/trash.json

* Update the runner

* Remove added tags

* Add more checks
2025-06-27 17:11:00 +02:00
Alex Naskidashvili
110d8cce27 feat(icons): added tool-case icon (#3333)
* Added icons/tool-case.svg

* Added icons/tool-case.json

* Update tool-case.svg

slightly alter the icon SVG code to match with the "archive" icon

* Update tool-case.svg

* Optimized version of tool-case.svg

* Update icons/tool-case.json

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

* Update tool-case.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-06-27 16:51:29 +02:00
Jamie Law
9db00bfe3c fix(icons): changed flag icon (#3370)
* Updated icons/flag.svg

* Updated icons/flag.json

* Update flag-off.svg

Applied same arcification to `flag-off`

* Update flag-off.json

Update attribute and add tags to `flag-off`
2025-06-27 12:11:16 +02:00
Zishan Kadri
e21d0e2dd6 fix(icons): changed sun-moon icon (#3328)
* Updated icons/sun-moon.svg

* Updated icons/sun-moon.json

* Updated icons/sun-moon.svg

* Updated icons/sun-moon.svg

* Update icons/sun-moon.json

Fix tag listing format to match original code style

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

* Updated icons/sun-moon.svg

* Updated icons/sun-moon.svg

* Updated icons/sun-moon.json

* Updated icons/sun-moon.svg

* Updated icons/sun-moon.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-06-27 11:39:31 +02:00
Jakob Guddas
483a594622 fix(icons): arcified shrub icon (#2292)
* Updated icons/shrub.svg

* Updated icons/shrub.json

* Updated icons/shrub.svg

* Updated icons/shrub.svg

* Updated icons/shrub.svg

* Updated icons/shrub.svg

* Updated icons/shrub.svg

* Updated icons/shrub.svg

* Updated icons/shrub.svg

* Update icons/shrub.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-27 11:39:04 +02:00
Jamie Law
2136843515 fix(icons): Changed megaphone icon (#2448)
* Lucidify megaphone.svg

Rounded the corners and increased the gap inside the handle

* Update megaphone.json

* Add bullhorn.json

* Add bullhorn.svg

* Lucidify megaphone-off.svg

* Update megaphone-off.json

* Add bullhorn-off.svg

* Add bullhorn-off.json

* Delete icons/megaphone-off.svg

* Delete icons/megaphone-off.json

* Delete icons/megaphone.svg

* Delete icons/megaphone.json

* Rename `bullhorn` to `megaphone`

* Update icons/megaphone-off.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-06-27 11:36:48 +02:00
Kyle Angelo Galendez
ad842796dc feat(icons): added vector-square icon (#2531)
* Rename box-select.svg to square-dashed.svg

* Update and rename box-select.json to square-dashed.json

* Add aliases

* Added icons/vector-square.svg

* Added icons/vector-square.json

* Update vector-square.svg

* Add contributor

* Update icons/vector-square.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-27 11:35:27 +02:00
Jamie Law
f6a7eadd99 fix(icons): Updates to clock-related icons (#2538)
* Update base `clock`-icons

Replace `<polyline/>`s with `<path/>`s, and adjust the angles of the 2-, 4-, 8- and 10 o'clock hour hands to better match the 1-, 5-, 7- and 11 o'clock hands

* Update clocks with symbols

Update `clock-arrow-down`, `clock-arrow-up` and `clock-alert` to match the hand angle of `clock`

Also align the exclamation mark of `clock-alert` to the pixel grid

* Update small clock faces

Make the clock faces in `calendar-clock`, `file-clock`, `folder-clock` and `watch` consistent with each other, and resolve some two-pixel-gap violations.

* Align the tips of all hours hands on large clocks to the grid

* Add self-attribution where appropriate

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-27 11:34:16 +02:00
Jamie Law
f51a01a7d0 Updated icons/ligature.svg (#3369) 2025-06-27 11:27:03 +02:00
Jakob Guddas
30ed887ad1 fix(icons): changed dessert icon (#3362)
* Updated icons/dessert.svg

* Updated icons/dessert.json
2025-06-27 10:08:12 +02:00
Karsa
a87ac013f7 docs(packages/lucide-static): update docs for better clarity (#3225)
* docs(packages/lucide-static): update docs for better clarity

* docs(packages/lucide-static): fix node.js heading level
2025-06-24 13:18:07 +02:00
Jakob Guddas
87a67cc314 feat(icons): added bottle-wine icon (#3265)
* Added icons/bottle-wine.svg

* Added icons/bottle-wine.json

* Updated icons/bottle-wine.svg

* Updated icons/bottle-wine.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-24 13:03:03 +02:00
Kyle Angelo Galendez
e418be64a1 feat(icons): add line-squiggle icon (#2393)
* Added icons/wavy-line.svg

* Added icons/wavy-line.json

* Updated icons/wavy-line.json

* Updated icons/wavy-line.json

* Rename wavy-line.json to line-curvy.json

* Rename wavy-line.svg to line-curvy.svg

* Rename line-curvy.json to line-swirly.json

* Rename line-curvy.svg to line-swirly.svg

* Rename line-swirly.json to line-squiggle.json

* Rename line-swirly.svg to line-squiggle.svg

* Align the icon in the center

* Update icon visually

* Circle the loop of the icon

* Add contributor

* Add `"annotate"` as tag

After seeing Google Chromebook the same icon, it says 'annotate'. I add it here as a tag.

* Update line-squiggle.json

* Update line-squiggle.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-21 08:50:54 +02:00
Jakob Guddas
0ca76a1de1 Updated icons/shopping-bag.svg (#2483)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-21 08:48:24 +02:00
Jakob Guddas
be81f20a6b docs(design-guide): added bad examples for 2px rule (#2879) 2025-06-21 08:47:28 +02:00
Aram Soneson
41d32b8f40 feat(icons): added squircle-dashed icon (#3262)
* Added icons/squircle-dashed.svg

* Added icons/squircle-dashed.json

* Update squircle-dashed.svg
2025-06-21 08:47:07 +02:00
Muhammad Tayyab Sheikh
c543914fb0 fix(icons): ensure shaft overlaps arrowhead in circle-arrow-left and circle-arrow-right (#3269)
Reordered SVG paths so the shaft renders after the arrowhead, eliminating visual gaps due to stroke rendering.

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-21 08:32:36 +02:00
Vladimir Kirilenko
40d9e44b03 feat(icons): added georgian-lari icon (#3323)
* Added icons/georgian-lari.svg

* Added icons/georgian-lari.json
2025-06-21 08:31:53 +02:00
Karsa
5821c62880 feat(icons): added spool icon (#2926)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Added icons/spool.svg

* Added icons/spool.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-06-20 22:27:20 +02:00
Jakob Guddas
d15973e7ef fix(icons): changed blocks icon (#3267)
* Updated icons/blocks.svg

* Updated icons/blocks.json

* Updated icons/blocks.svg

* Updated icons/blocks.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-19 22:26:53 +02:00
Eric Fennis
475439bca9 fix(docs): Add ts ext to files missing files 2025-06-19 16:46:10 +02:00
Eric Fennis
13fc99f80d fix(docs): Add TS extention to index file 2025-06-19 16:39:23 +02:00
Eric Fennis
6a49a51164 fix(docs): Fix site build 2025-06-19 16:31:36 +02:00
Eric Fennis
ba5a701faf ci(lint): Fix failing gh actions 2025-06-19 16:26:57 +02:00
shopped
9e74dbb617 feat(icons): added drone icon (#3247)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
2025-06-19 08:54:03 +02:00
Eric Fennis
3e644fda2d chore(scripts): Refactor scripts to typescript (#3316)
* Adjust typescript types

* adjust types

* fix types in all helper files

* Fix types

* Migrate js files to ts files

* Refactor to TS files

* Rename extentions

* Adjust imports

* Fix builds

* Update lockfile

* Fix last typescript migration

* Fix entry path @lucide/outline-svg

* Fix types

* add checkout step

* format files

* Format files
2025-06-18 15:47:24 +02:00
Jakob Guddas
7517894f2d fix(icons): renamed *-help and *-question icons to *-question-mark (#2540)
* fix(icons): renamed `*-help` icons

* fix(icons): renamed `*-question` icons

* Add EOF

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-18 10:01:41 +02:00
Jamie Law
5e363f48af Updated egg and egg-off icons (#3299)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-18 09:27:59 +02:00
Karsa
537040bf81 feat(icons): adds barrel icon (#1955)
* feat(icons): adds barrel icon

* feat(icons): add maps category to barrel

* feat(icons): add brewery tags to barrel

* feat(icons): updates barrel design with 90deg rotated version, added jamiemlaw as a contributor

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2025-06-18 09:19:20 +02:00
Luis David Lopera
308e738e0e feat(icons): added wifi-cog icon (#3133)
* Added icons/wifi-cog.svg

* Added icons/wifi-cog.json
2025-06-16 22:14:00 +02:00
Epifânio Francisco
e16e8b2783 fix: remove flex-direction CSS causing absolute stroke width toggle positioning issue (#3308) (#3317)
- Remove 'flex-direction: row-reverse' CSS rule for #absolute-stroke-width
- Fixes toggle moving out of bounds and being pseudo active

Closes #3308
2025-06-16 22:10:56 +02:00
Epifânio Francisco
e7f03df844 perf(docs): optimize IconsOverview initial render - 50% faster load times (#3282)
- Reduce initial icon render from 1600 to 120-200 icons
- Implement dynamic initialGridItems calculation based on viewport
- Use slice() instead of splice() to avoid array mutation
- Fix NoResults condition to use searchResults.length
- Load time improved from (50-60%+ improvement)
2025-06-16 22:08:44 +02:00
Pranav Nedungadi
8aed9b826d fix: some typos (#3319)
Signed-off-by: Pranav <pranav10121@gmail.com>
2025-06-14 11:58:54 +02:00
Jakob Guddas
e332d8b7ce fix(icons): changed radio icon (#3293)
* Updated icons/radio.svg

* Updated icons/radio.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-13 09:24:03 +02:00
Jamie Law
92aeac569f Updated icons/mic.svg (#3301)
Co-authored-by: Karsa <contact@karsa.org>
2025-06-13 09:22:50 +02:00
Jamie Law
53c16e191b Updated icons/pocket.svg (#3304) 2025-06-13 09:19:16 +02:00
Jamie Law
4791674365 Updated icons/stamp.svg (#3310) 2025-06-13 09:18:58 +02:00
Zefir
8527049827 feat(icons): added rectangle-circle icon (#3245)
* Added icons/rectangle-circle.svg

* Added icons/rectangle-circle.json

* reduce rectangle radius to 1px

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

* added jguddas to rectangle-circle contributors

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-06-13 09:12:16 +02:00
Jamie Law
8205ef68ed Updated icons/radiation.svg (#3303) 2025-06-11 14:55:06 +02:00
Jakob Guddas
f5c708adf2 Updated icons/house-plus.svg (#3238) 2025-06-10 20:08:48 +02:00
Domas Markevičius
d42539d2b4 feat(icons): added book-alert icon (#3249)
* Added icons/book-alert.json

* Added icons/book-alert.svg

* Updated icons/book-alert.svg

Indentation fix

* Updated icons/book-alert

* Updated icons/book-alert.svg

* Updated icons/book-alert.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-10 20:04:31 +02:00
Epifânio Francisco
3614b6b46e fix: absoluteStrokeWidth not resetting with Reset button (#3261)
- Fix Switch component to properly handle v-model binding
- Add absoluteStrokeWidth to customizingActive computed property
- Ensure absoluteStrokeWidth resets correctly in both Home and Sidebar customizers

Resolves issue where absoluteStrokeWidth toggle remained enabled
after clicking Reset button, causing confusion with bold icons.

Fixes #2984

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-10 19:50:23 +02:00
Jakob Guddas
86443054e2 fix(icons): changed settings-2 icon (#2974)
* Updated icons/settings-2.svg

* Updated icons/settings-2.json
2025-06-10 19:48:39 +02:00
Jamie Law
cc09c2640f Update bandage.json (#3300)
Added `patch` as a tag to `bandage` icon
2025-06-10 19:32:30 +02:00
Jakob Guddas
394399bfb8 fix(pull-request-icon-preview): pinned and --forced svgson installation 5.3.1 (#3289) 2025-06-10 19:32:06 +02:00
Jakob Guddas
af1b0e033e fix(icons): changed trophy icon (#2475)
* Updated icons/trophy.svg

* Updated icons/trophy.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-06 10:53:30 +02:00
Eric Fennis
bdb5f6c137 feat(icons): Add sim card icon from lab (#3275)
* Add sim card from lab

* Update icons/card-sim.svg

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

* Update card-sim.json

---------

Co-authored-by: Karsa <contact@karsa.org>
2025-06-04 09:56:26 +02:00
Kuba Ratajczyk
d42a21610f feat(icons): added grid-3x2 icon (#3216)
* Added icons/grid-3x2.svg

* Added icons/grid-3x2.json

* Update grid-3x2.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-06-03 23:13:23 +02:00
Jakob Guddas
f5be7a9862 Updated icons/file-badge.svg (#2934) 2025-06-03 19:24:29 +02:00
Eric Fennis
52d408e6d0 Fixing vercel build 2025-06-02 21:06:33 +02:00
Jeevan
f69c760598 feat(angular): update peer dependencies for Angular to support version 20.x (#3273) 2025-06-01 08:22:28 +02:00
Nagesh Panchal
22a43cbdeb feat(icon): add id-card-lanyard icon (#2898)
* feat(icon): add id-card-with-lanyard icon

* Optimized svg

* Optimization and minor changes

* Renamed icon
2025-05-23 14:02:02 +02:00
Lennard Scheibel
1ca70df074 Add cloud-check icon (#2612) 2025-05-23 13:03:34 +02:00
Jakob Guddas
5514709fb3 fix(icons): changed eraser icon (#3076)
* Updated icons/eraser.svg

* Updated icons/eraser.json

* Updated icons/eraser.json

* Updated icons/eraser.svg

* Updated icons/eraser.svg

* Updated icons/eraser.svg
2025-05-23 13:03:21 +02:00
Jakob Guddas
34a8280ba8 fix(icons): changed paperclip icon (#2956)
* Updated icons/paperclip.svg

* Updated icons/paperclip.json

* Updated icons/paperclip.svg

* Updated icons/paperclip.svg

* Updated icons/paperclip.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-23 13:02:05 +02:00
Jakob Guddas
f814c94672 fix(icons): changed battery-* icons (#3083)
* Updated icons/battery-full.svg

* Updated icons/battery-full.json

* Updated icons/battery.svg

* Updated icons/battery.json

* Updated icons/battery-charging.svg

* Updated icons/battery-charging.json

* Updated icons/battery-plus.svg

* Updated icons/battery-warning.svg

* Updated icons/battery-warning.json

* Updated icons/battery-medium.svg

* Updated icons/battery-medium.json

* Updated icons/battery-low.svg

* Updated icons/battery-low.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-23 12:35:36 +02:00
Jakob Guddas
e1cfbe14be fix(icons): changed list-collapse icon (#3081)
* Updated icons/list-collapse.svg

* Updated icons/list-collapse.json
2025-05-23 12:35:03 +02:00
Jakob Guddas
a549fd65ef fix(icons): changed square-check-big icon (#3156)
* Updated icons/square-check-big.svg

* Updated icons/square-check-big.json

* Updated icons/square-check-big.svg
2025-05-23 12:34:25 +02:00
dependabot[bot]
239bbd9a9a build(deps-dev): bump vite from 6.0.7 to 6.1.6 (#3236)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.0.7 to 6.1.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.1.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.1.6/packages/vite)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-23 12:32:16 +02:00
Brizen Britt
85b6de6684 docs(docs): added testing website locally instructions (#3124)
* added testing website

* added build command

* resolve suggestions
2025-05-23 12:11:20 +02:00
dependabot[bot]
19fa01b5fc build(deps-dev): bump vite from 6.3.2 to 6.3.4 (#3181)
* build(deps-dev): bump vite from 6.3.2 to 6.3.4

Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.3.2 to 6.3.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.4/packages/vite)

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

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

* Update vitest as well

---------

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-05-16 14:25:07 +02:00
LieOnLion
e3e6dd9ccc feat(icons): added circle-pound-sterling icon (#2822)
* Added icons/circle-pound-sterling.svg

* Added icons/circle-pound-sterling.json

* Update icons/circle-pound-sterling.json

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

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-16 14:06:04 +02:00
Juan Pablo
ba77aa6a76 feat(icons): added square-dashed-top-solid icon (#3204)
* Added icons/square-dashed-top-solid.svg

* Added icons/square-dashed-top-solid.json
2025-05-16 13:55:55 +02:00
Abdalrhman Almarakeby
42f36a9da3 chore(cspell): remove duplicate 'pilcrow' from custom-words.txt (#3193) 2025-05-16 13:54:19 +02:00
Karsa
9abed5ee16 fix(icons): changed landmark icon (#2967)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/landmark.svg

* Updated icons/landmark.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-05-16 13:54:02 +02:00
Karsa
e6246ed5c6 fix(icons): changed warehouse icon (#2966)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/warehouse.svg

* Updated icons/warehouse.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-05-16 13:53:41 +02:00
Karsa
877b467d96 fix(icons): changed university icon (#2965)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/university.svg

* Updated icons/university.json

* Update university.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-05-16 13:53:16 +02:00
Karsa
781620d669 fix(icons): changed factory icon (#2970)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/factory.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-05-16 13:52:50 +02:00
Jan Vincent Liwanag
3ad1f07ffc fix(lucide-react-native): support react 19 (#2951) (#3126)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-16 13:38:02 +02:00
Karsa
47880403d3 fix(icons): changed satellite icon (#3180)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/satellite.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-05-16 12:55:42 +02:00
Jakob Guddas
89d204a35d fix(icons): changed square-code icon (#3173)
* Updated icons/square-code.svg

* Updated icons/square-code.json
2025-05-16 10:52:30 +02:00
Jakob Guddas
bdcd417c1c fix(icons): changed chevrons-left-right-ellipsis icon (#3189)
* Updated icons/chevrons-left-right-ellipsis.svg

* Updated icons/chevrons-left-right-ellipsis.json

* Updated icons/chevrons-left-right-ellipsis.json
2025-05-16 10:50:02 +02:00
Jakob Guddas
4c7738fea1 fix(icons): changed axis-3d icon (#3199)
* Updated icons/axis-3d.svg

* Updated icons/axis-3d.json
2025-05-16 10:48:40 +02:00
Jakob Guddas
12e7cfd7f7 Updated icons/clock-6.svg (#3209) 2025-05-16 10:48:03 +02:00
Jamie Law
09841dd721 Optimise a number of icons using <line> and <polyline> (#3168)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-16 10:47:35 +02:00
Yuta Osawa
8ae65a8fb1 feat(icons): added check-line icon (#2890)
* Added icons/check-line.svg

* Added icons/check-line.json

* Inherit contributors from check icon

* Fix order of properties

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-12 15:07:49 +02:00
Jakob Guddas
fda32bee52 fix(icons): changed brackets icon (#3172)
* Updated icons/brackets.svg

* Updated icons/brackets.svg

* Updated icons/brackets.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-09 10:34:07 +02:00
Alexandre
e913eab8bb feat(icons): added gpu icon (#2955)
* gpu icon added

* updated tags

* svg minification

* fix square view

* update contributors

* Update icons/gpu.json

* Update icons/gpu.json

* fix coma in gpu.json

* Format gpu.json

---------

Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-05-09 10:29:59 +02:00
Jakob Guddas
2408b8bb8f Revert "fix(dev): resets Absolute Stroke Width (#3005)" (#3197)
This reverts commit dcdc0b8bb3.
2025-05-09 10:10:15 +02:00
Karsa
8b257abaf6 fix(icons): changed axe icon (#3201)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Updated icons/axe.svg

---------

Co-authored-by: Karsa <karsa@karsa.org>
2025-05-09 10:08:49 +02:00
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
Eric Fennis
4acd574de2 Add version filter 2025-04-11 17:01:58 +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
Eric Fennis
97f214934d refactor(scripts): Formatting in readAllMetadata 2025-02-19 14:32:10 +01:00
Eric Fennis
34dfc63ce2 refactor: Optimize readAllMetadata function to use Promise.all for concurrent metadata reading 2025-02-19 13:55:31 +01:00
Eric Fennis
b46927e510 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
2025-02-19 11:33:08 +01:00
Eric Fennis
1828a392c8 fix: Add await to checkIconsAndCategories script 2025-02-19 11:19:53 +01:00
dependabot[bot]
3ab6c373a0 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>
2025-02-14 08:53:09 +01:00
dependabot[bot]
ba2c4b526f 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>
2025-02-12 09:41:52 +01:00
dependabot[bot]
bde3f01e0b 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>
2025-02-12 09:41:40 +01:00
Eric Fennis
50630b3aaf ci: Improve build speeds (#2778)
* Revert sync to async functions

* Replace more sync fs functions

* Format files

* Fix build svelte package
2025-02-10 14:13:52 +01:00
Jamie Law
e28426a871 feat(icons): Add gender icons (#2607)
* Add gender icons

* Rename `nonbinary.*` to `non-binary.*`

* Update icon categories

* Remove `neuter` icon

Pending additional use cases or significant demand

* Add more gender-related tags

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-02-07 15:45:34 +01:00
Eric Fennis
eb158561d3 fix(lucide): Support for iconNodes from other libs like Lab (#2752)
* Add support for iconNodes

* formatting
2025-02-07 15:44:54 +01:00
realguse
410ae434fa docs(readme): improve packages table (#2755) 2025-02-07 15:31:21 +01:00
Ikko Eltociear Ashimine
0801b89e4d chore: fix typo (#2777)
* chore: update replaceElement.spec.js

retuns -> returns

* chore: update replaceElement.spec.js.snap

retuns -> returns
2025-02-07 15:29:29 +01:00
Eric Fennis
a1d17eedc9 fix: Redirect aliases site (#2769)
* Fix redirects site

* Remove console.log
2025-02-06 15:39:07 +01:00
Eric Fennis
7481dd0a3f format(license): add missing semicolon in license script 2025-01-24 16:54:10 +01:00
Eric Fennis
f9e93824f1 format package.svg 2025-01-24 14:34:07 +01:00
Abdalrhman Almarakeby
4ba4cf2f35 feat(cog-icon): update tags to add more relevant keywords (#2748) 2025-01-24 14:32:55 +01:00
Eric Fennis
6b29716aa9 Hide add if script is blocked (#2750) 2025-01-24 14:28:54 +01:00
Jakob Guddas
97bbe1d6b2 fix(icons): changed expand icon (#2677)
* Updated icons/expand.svg

* Updated icons/expand.json
2025-01-23 16:54:06 +01:00
Abdalrhman Almarakeby
608da04bdf fix(bolt-icon): correct "contruction" typo in tags to "construction" (#2749) 2025-01-23 16:25:28 +01:00
ケイラ
961404d5cc replace keyof ReactSVG with SVGElementType (#2668)
* replace `keyof ReactSVG` with `SVGElementType`

* define `SVGElementType` locally

* 🧹

* update comments

* Format types.ts

* Update types.ts

* Update types.ts

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-01-18 16:35:52 +01:00
Sebastian Aarnio
f3100b8af1 fix(icons): update package.svg to be consistent with other package-derived icons (#2706) 2025-01-17 16:31:05 +01:00
Footages
0df4e2991c feat(icons): added battery-plus icon (#2693)
* Added icons/battery-plus.svg

* Added icons/battery-plus.json

* Updated icons/battery-plus.svg

* Updated icons/battery-plus.json

* Update battery-plus.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-01-17 12:10:28 +01:00
Sean
2b8242fa14 feat(icons): added map-plus icon (#2697)
* Added icons/map-plus.svg

* Added icons/map-plus.json
2025-01-17 12:09:02 +01:00
Lettnald
27c667556b Make sure license ends up in SvelteKit bundle (#2728) 2025-01-17 09:13:47 +01:00
Eric Fennis
31c3fefc17 fix(lucide-react) Adds type module in package.json (#2731)
* Adds type module in package.json

* fix typo
2025-01-13 10:58:15 +01:00
Yoh
389fed8770 feat(icons): adds triangle-dashed icon (#2652)
* feat(icons): adds triangle-dashed icon

* Format triangle-dashed.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-01-10 14:36:22 +01:00
Eric Fennis
58c2e108c3 feat(lucide-react): Add DynamicIcon component (#2686)
* Adding the DynamicIcon component

* Fix imports

* Add docs

* Formatting

* Fix use client in output rollup

* revert changes

* Fix formatting

* Revert changes in icons directory

* Revert time command

* update exports
2025-01-10 14:35:28 +01:00
Akshay Memane
d5fe5a0ef4 feat(icons): Add house-wifi icon (#2723)
* feat(icons): Add home-wifi icon

* updated icon

* updated icon as per guidelines

* updated icon name

* updated contributors
2025-01-10 11:52:43 +01:00
Axel
db30ab89f4 Added city tag to building-2.json (#2698)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2025-01-06 14:14:46 +01:00
Julien Zapata Duque
fa7120cbe0 fix(site): use lab icon name in vue and svelte examples (#2715) 2025-01-06 14:12:20 +01:00
Eric Fennis
419d47019c fix(scripts): Fix auto formatting script (#2712)
* Fix ./scripts/generateNextJSAliases.mjs

* Fix generateChangeIconsMarkup scripts
2025-01-06 10:42:53 +01:00
Jakob Guddas
655111e4aa fix(icons): changed rat icon (#2692)
* Updated icons/rat.svg

* Updated icons/rat.svg

* Updated icons/rat.svg
2025-01-02 17:24:58 +01:00
Karsa
ea0ac2f92b feat(icons): upgrade snowflake icons to match real life (#2610)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-12-20 10:36:02 +01:00
Akseli Palmer
1a5ee439ef Fixed typo in License section of Docs (#2699)
The phrase "personally use" is grammatically incorrect. The correct term is "personal use" because "use" is a noun in this context, and "personal" is the adjective that modifies it.
2024-12-20 10:24:44 +01:00
realguse
5947ca82d5 chore(metadata): add more tags to trophy icon (#2664)
* feat: add more tags to `trophy` icon

* chore: add contributor

* revert: add contributor

Refs: cd99369
2024-12-19 22:43:36 +01:00
dependabot[bot]
edf46adc9e build(deps): bump vite from 4.4.9 to 5.1.8 (#2685)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.4.9 to 5.1.8.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.1.8/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.8/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: indirect
...

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>
2024-12-19 10:44:47 +01:00
Rodrigo Mesquita
94782f53c1 Fix heading on guide index (#2670)
* Fix heading on guide index

Fixes the heading level of a section on the index page of the guide.

* Update docs/guide/index.md

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-12-11 10:45:55 +01:00
Kyle Angelo Galendez
79bbfa958e chore(metadata): add more tags to rotate-ccw icon metadata (#2658)
* feat(icons): add more tags

This close #2602

* Update icons/rotate-ccw.json

Add suggested by @realguse

* Add contributor

* Removing non-icon-contributors
2024-12-11 10:36:51 +01:00
Rik Smale
970fc3d4be fix(lucide-react): support React 19 (#2666) 2024-12-11 09:54:28 +01:00
Jakob Guddas
f12b0de177 feat(icons): added waves-ladder icon (#2529)
* Added icons/ladder-over-wave.svg

* Added icons/ladder-over-wave.json

* Rename ladder-over-wave.json to waves-ladder.json

* Rename ladder-over-wave.svg to waves-ladder.svg

* Update icons/waves-ladder.json

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

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-12-05 13:18:26 +01:00
Jakob Guddas
67cbce66e9 Updated icons/book-dashed.svg (#2399)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-12-05 12:56:32 +01:00
Jakob Guddas
b927275150 feat(icons): added scan-heart icon (#2385)
* Added icons/scan-heart.svg

* Added icons/scan-heart.json

* Updated icons/scan-heart.json

* Updated icons/scan-heart.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-12-05 12:56:02 +01:00
Deniz Abdurrahmani
ea89735f67 feat(icons): added list-filter-plus icon (#2645)
* Added icons/list-filter-plus.svg

* Added icons/list-filter-plus.json

* Move plus to the top line

* Optimize top line and plus gap

* Grid alignment and gap fixes

* Fix gap violation on middle line

* Optimize gap between plus and middle line

* Fix pixel perfect

* Add category `layout` to metadata
2024-12-05 09:51:03 +01:00
Karsa
53c61c0f48 fix(icons/bell): Lucide-ify bell icons (#2656) 2024-12-05 09:23:27 +01:00
Jakob Guddas
4213367a37 feat(icons): added droplet-off icon (#2641)
* Added icons/droplet-off.svg

* Added icons/droplet-off.json

* Update icons/droplet-off.json
2024-12-04 10:06:49 +01:00
Tom Gotsman
bc22d17fa9 docs(showcase): Add reflex to showcase (#2619)
* Add reflex to showcase

* flip colors as were wrong way around

* moved to used in section

---------

Co-authored-by: Tom Gotsman <tomgotsman@Toms-MacBook-Pro.local>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-12-04 09:56:25 +01:00
nuclearcodecat
7773135308 Update lucide-static.md (#2651) 2024-12-04 09:48:15 +01:00
Jamie Law
4f740348cd fix(icons): Update flask icons (#2659)
* Update flask icons

* Reduce liquid level
2024-12-04 09:47:00 +01:00
Eric Fennis
ca50dd8bc8 chore(metadata): Cleanup categories and some renaming (#2592)
* Delete and rename categories

* Adjust icon categories

* Update categories

* Update metadata

* Update categories/math.json

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

---------

Co-authored-by: Karsa <contact@karsa.org>
2024-12-04 09:39:26 +01:00
Jakob Guddas
6b19d52ab0 fix(icons): changed picture-in-picture icon (#2481)
* Updated icons/picture-in-picture.svg

* Updated icons/picture-in-picture.json

* Updated icons/picture-in-picture.svg

* Updated icons/picture-in-picture.svg

* Updated icons/picture-in-picture.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-12-03 12:45:15 +01:00
Jakob Guddas
7fc3467761 fix(icons): changed paperclip icon (#2482)
* Updated icons/paperclip.svg

* Updated icons/paperclip.json

* Updated icons/paperclip.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-12-03 12:44:52 +01:00
Jakob Guddas
ee575f6ae9 fix(icons): combined layers and layers-3 icon (#2596)
* Updated icons/layers.svg

* Updated icons/layers.json

* chore: removed layers-3 icon

* Update tools/build-icons/utils/deprecationReasonTemplate.mjs

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-12-03 11:36:22 +01:00
Eric Fennis
212b488dae Fix empy icon page (#2650) 2024-11-29 19:02:31 +01:00
Sunshio
4f038d5fe8 feat(docs): add Bun.sh support to documentation (#2642) 2024-11-29 09:11:30 +01:00
Jakob Guddas
5ca6bc3385 feat(icons): added image-upscale icon (#2462)
* Added icons/image-upscale.svg

* Added icons/image-upscale.json

* Updated icons/image-upscale.svg

* Updated icons/image-upscale.svg

* Updated icons/image-upscale.svg

* Update icons/image-upscale.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-11-27 10:48:27 +01:00
Jakob Guddas
15e4b6b69d fix(icons): changed ship icon (#2548)
* Updated icons/ship.svg

* Updated icons/ship.json
2024-11-26 14:35:47 +01:00
Jakob Guddas
407b55f57c fix(icons): made the venetian-mask icon a bit bigger and change the eye whole shape to a single line to not violate the 2px gap rule (#1950)
* Updated icons/venetian-mask.svg

* Updated icons/venetian-mask.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-11-26 09:53:50 +01:00
Karsa
6fc7297199 feat(docs): add icon showcase to icon page (#2229)
* feat(docs): add icon showcase to icon page

* feat(docs): add pretty name to button

* fix(docs): adjust color for icon counter

* Revert icons changes

* Revert meta data changes

* Revert grid changes

* Fix build

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-11-26 09:52:39 +01:00
Jakob Guddas
c21df35283 fix(metadata): added window related tags to grid-2x2 icon metadata file (#2628)
* Updated icons/grid-2x2.svg

* Updated icons/grid-2x2.json
2024-11-26 08:25:42 +01:00
Jakob Guddas
775359260c fix(icons): changed shuffle icon (#2478)
* Updated icons/shuffle.svg

* Updated icons/shuffle.json
2024-11-25 20:23:29 +01:00
Kyle Angelo Galendez
eaeef9ae37 feat(icons): added calendar-sync icon (#2590)
* Rename box-select.svg to square-dashed.svg

* Update and rename box-select.json to square-dashed.json

* Add aliases

* Added icons/calendar-sync.svg

* Added icons/calendar-sync.json

* Delete icons/square-dashed.json

* Delete icons/square-dashed.svg

* Optimize calendar-sync.svg

* Move arrows 0.5px down

* Update icons/calendar-sync.svg

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

* Maintain icon symmetry

* Remove files category from meta data

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-11-25 19:56:54 +01:00
dependabot[bot]
636f966a98 build(deps-dev): bump vite in /packages/lucide-react (#2484)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.13 to 5.1.8.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.1.8/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.1.8/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>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-11-25 19:52:07 +01:00
Eric Fennis
1d5c725b58 Fix path image backer 2024-11-25 12:03:56 +01:00
Karsa
d9a011994a feat(readme): add pdfme as an awesome backer (#2639) 2024-11-25 12:01:29 +01:00
Eric Fennis
c6c645ca7f docs(readme): Update readme files (#2634)
* Update readme files

* Update readme files

* Fix typos react native readme

* Add back headings
2024-11-25 12:01:13 +01:00
Colin Williams
91391eea7b feat(angular): add support for angular 19 (#2637) (#2638) 2024-11-25 07:35:08 +01:00
Jakob Guddas
49070b4d1f Updated icons/scale-3d.svg (#2627) 2024-11-22 10:23:49 +01:00
Nicolas Boyer
ae43473aa6 Added documentation about Svelte 5 (#2621)
Svelte 5 specifics including removing the "ComponentType" typescript type as components are now static. 
Also merged some imports into one-liners as we don't need to import each icon in a single line.
2024-11-22 10:07:48 +01:00
Jakob Guddas
392bc961aa chore: add bluesky to brand filter (#2617) 2024-11-17 12:50:59 +01:00
Eric Fennis
f238fe1b18 replace extension build config (#2615) 2024-11-16 09:43:23 +01:00
Ethan Hazel
4d91fbb588 feat(icons): Add toilet icon (#2141)
* Added tiolet icon

* fixed typo lol

* fixed formatting with SVG

* fixed typo on tags for Toilet

* Updated icon to add more arcs by jguddas

* Updated toilet json to work with linter

* revert teamData.json

* fix(teamData): Reverted accidental changes from Prettier

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
2024-11-15 18:45:21 +01:00
dependabot[bot]
d939a7005d build(deps): bump rollup from 2.79.1 to 3.29.5 (#2613)
Bumps [rollup](https://github.com/rollup/rollup) from 2.79.1 to 3.29.5.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.79.1...v3.29.5)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-15 13:59:22 +01:00
齋藤 恵介
2c55c2ab93 feat(icons): added equal-approximately icon (#2594)
* Added icons/equal-approximately.svg

* Added icons/equal-approximately.json
2024-11-15 13:57:25 +01:00
Lennard Scheibel
cb60e31162 Add cloud-alert icon (#2611) 2024-11-15 13:55:56 +01:00
Eric Fennis
09cebe178d feat(lucide-svelte): Aliased imports for direct imports (#2584)
* Add way to import aliased icons directly

* Format files

* Fix tests

* Format files
2024-11-15 13:51:58 +01:00
Jakob Guddas
0f3fd12f16 fix(icons): update drill icon (#1919)
* Updated icons/drill.svg

* Updated icons/drill.svg

* Updated icons/drill.json

* Updated icons/drill.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-11-15 12:45:41 +01:00
Jakob Guddas
4b0d17ad24 feat(icons): added laptop-minimal-check icon (#2563)
* Added icons/laptop-minimal-check.svg

* Added icons/laptop-minimal-check.json

* Update laptop-minimal-check.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-11-15 12:23:26 +01:00
Epifânio Francisco
30fe706dd6 fix: #2566 expand card beyond max-width limit by adjusting CSS (#2605) 2024-11-15 12:20:37 +01:00
Jakob Guddas
d6178fa471 Updated icons/vegan.svg (#2556) 2024-11-15 11:59:27 +01:00
Jakob Guddas
855cb4985d fix(icons): changed heading-4 icon (#2546)
* Updated icons/heading-4.svg

* Updated icons/heading-4.json
2024-11-15 11:58:19 +01:00
Jakob Guddas
9f99ea510f fix(icons): changed hard-hat icon (#2559)
* Updated icons/hard-hat.svg

* Updated icons/hard-hat.json

* Updated icons/hard-hat.json
2024-11-15 11:57:00 +01:00
Jakob Guddas
e2ee0c77e7 fix(icons): changed cross icon (#2578)
* Updated icons/cross.svg

* Updated icons/cross.json

* Updated icons/cross.json
2024-11-15 11:56:14 +01:00
Jakob Guddas
d041d5c2d2 fix(icons): arcified school icon (#2598)
* Updated icons/school.svg

* Updated icons/school.json

* Updated icons/school.svg
2024-11-15 11:54:54 +01:00
Jamie Law
8700418260 Optimise puzzle icon (#2603)
Redraw some bezier curves as arcs
2024-11-15 11:32:25 +01:00
Arthur Green
30077f913f docs: update lucide-svelte.md (#2609) 2024-11-15 11:31:15 +01:00
Jamie Law
bc09d5f283 fix(icons): changed bath icon (#2512)
* Update bath.svg

Replaced `<line/>` elements with `<path/>`s and refined the curve of the shower head to use fewer path segments and have a larger radius

* Update bath.json

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-11-15 11:30:38 +01:00
Karsa
88c757f540 fix(icons): Fix rounding to hand-platter icon (#2326)
* feat(icons): add rounding to hand-platter icon

* Update hand-platter.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-11-11 11:45:36 +01:00
Jakob Guddas
f93beca595 Updated icons/glass-water.svg (#2579) 2024-11-08 16:49:34 +01:00
Eric Fennis
b1777430b9 feat(lucide-react, lucide-preact, lucide-react-native, lucide-solid, lucide-vue-next): Adjustable icon naming imports (#2328)
* Add override alias import entry files lucide-react

* Make it work

* Setup files for packages

* Revert icon changes

* Remove solid support and add docs

* Adjust docs

* format files

* Fix lucide-vue-next build

* Fix builds

* Fix lucide-svelte

* Add vscode settings option
2024-11-08 16:47:53 +01:00
Eric Fennis
d30698cb38 ci(pull-request): Fix generate comments for empty changes (#2593) 2024-11-08 16:00:23 +01:00
Jamie Law
d2f7a0931d feat(icons): added air-pressure icon (#2554)
* Add `air-pressure` icon

And slightly modified the `wind` icon to match

* Rename `air-pressure` to `wind-arrow-down`

And update the JSON file with contributors to the original `wind` icon and add `pressure` as a tag
2024-11-08 09:53:10 +01:00
Jakob Guddas
98bbcc4b06 fix(icons): changed slice icon (#2500)
* Updated icons/slice.svg

* Updated icons/slice.json
2024-11-08 09:40:38 +01:00
Jan
c253cb821b update code example for lucide-svelte direct import (#2589)
* update code example for lucide-svelte direct import

* use single quotes
2024-11-08 08:45:19 +01:00
Jakob Guddas
484dc38b0a Updated icons/undo-dot.svg (#2557) 2024-11-05 08:33:56 +01:00
dependabot[bot]
11b95f883a build(deps-dev): bump rollup from 3.27.0 to 3.29.5 (#2571)
Bumps [rollup](https://github.com/rollup/rollup) from 3.27.0 to 3.29.5.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v3.27.0...v3.29.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-31 10:23:32 +01:00
Eric Fennis
b8cd54f1b2 chore: Update dependencies (#2570)
* Update dependencies

* Revert dep change site

* Update lockfile

* Fix indentation
2024-10-30 13:31:28 +01:00
Jakob Guddas
98b3b6fae7 fix(icons): changed file-music icon (#2536)
* Updated icons/file-music.svg

* Updated icons/file-music.json
2024-10-30 10:12:25 +01:00
Mofiro Jean
3ca465ee11 (docs) update lucide angular guide for standalone components (#2569) 2024-10-30 09:32:47 +01:00
Jamie Law
dcd19cedc9 fix(icons): changed pizza icon (#2476)
* Lucidified pizza.svg

Rounded the corners of the pizza slice and spaced out the pepperoni to address the two-pixel-gap rule

* Update pizza.json

* Update pizza.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-10-28 14:41:30 +01:00
Jakob Guddas
8cea9feecc fix(icons): added rounding to star icon (#1987)
* Updated icons/star.svg

* Updated icons/star.json

* Updated icons/star.svg

* Updated icons/star-half.svg

* Updated icons/star-half.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-10-28 14:30:02 +01:00
Willem Dinkelspiel
e80d98040f Add Lustre Lucide third party package (#2543)
* add lucide lustre to third party packages

* add lustre logo
2024-10-28 13:54:13 +01:00
Eric Fennis
a1641a372b fix(shared): Add trim to mergeClasses (#2522)
* Add trim to merge classes

* Add trim to merge classes

* Adds extra utils check

* Update packages/shared/src/utils.ts

Co-authored-by: Max Malm <benjick@dumfan.net>

---------

Co-authored-by: Max Malm <benjick@dumfan.net>
2024-10-28 13:53:42 +01:00
Peter Uithoven
757bf0fb85 feat(icons): added calendar-1 icon (#2520)
* Added icons/calendar-single.svg

* Added icons/calendar-single.json

* Adjust calendar position

Adjust calendar position based on original

* Update name

* Add tag 1

* Optimize 1 path

* Add first tag

---------

Co-authored-by: peteruithoven <peter@metabolic.nl>
2024-10-15 04:11:47 +02:00
Ishaan
dd3aed1ecd Update icon-design-guide.md (#2530) 2024-10-13 23:39:41 +02:00
Jamie Law
4d98681f05 refactor(icons): optimised some align-, indent- and list-icons (#2528)
* Update `align`- icons

* Update `indent`- icons

* Update `list`- icons
2024-10-11 20:29:36 +02:00
Jakob Guddas
bde9e1cb6b Updated icons/component.svg (#2474) 2024-10-08 11:10:02 +02:00
Jakob Guddas
a5e07c28bd fix(icons): changed package icon (#2499)
* Updated icons/package.svg

* Updated icons/package.svg

* Updated icons/package.json
2024-10-08 10:44:49 +02:00
Jamie Law
2a68b12cbe fix(icons): Updated sandwich icon (#2494)
* Updated `sandwich` icon

Rounded the top-front corners, and better aligned the top-most corner of the bread, and the corner of the filling to the grid

* Update sandwich.svg

Nudge filling to the left to maintain a two-pixel gap

* Widen the sandwich
2024-10-08 10:41:30 +02:00
Jakob Guddas
493382b4fd fix(icons): changed parking-meter icon (#2505)
* Updated icons/parking-meter.svg

* Updated icons/parking-meter.json
2024-10-08 10:37:01 +02:00
Karsa
6588971ead fix(site): use the same camel/pascal same conversion as when releasing packages (#2509) 2024-10-08 10:36:35 +02:00
Jamie Law
13cea45e8b refactor(icons): optimised some move- icons (#2513)
* Update move.svg

Replace `<polyline/>`s with `<path/>`s

* Update move-vertical.svg

* Update move-horizontal.svg

* Update move-diagonal.svg

* Update move-diagonal-2.svg
2024-10-08 10:34:11 +02:00
dependabot[bot]
5dfcfc8d1a build(deps): bump rollup from 4.21.0 to 4.22.4 (#2521)
Bumps [rollup](https://github.com/rollup/rollup) from 4.21.0 to 4.22.4.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.21.0...v4.22.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-08 10:29:31 +02:00
Mohit Nagaraj
db24b1d517 fix(app): #2412 Fix tooltip being cut off (#2514) 2024-10-08 10:29:03 +02:00
Jakob Guddas
e1202b545e tests(shared): added mergeClasses tests (#2503) 2024-10-08 10:24:16 +02:00
Jakob Guddas
2e1a5cf6ea feat(icons): added volleyball icon (#1980)
* chore: pull `volleyball` icon from lab branch

* Updated icons/volleyball.svg

* Updated icons/volleyball.json
2024-10-08 10:19:54 +02:00
Karsa
f49ecd73a5 feat(icons): add eye-closed icon (#2349)
* feat(icons): add eye-closed icon

* feat(icons): update tags on eye-off as well

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-10-08 10:17:49 +02:00
Dipanshu Rawat
a72cbc2d49 add(site): Eric Fennis's twitter link (#2511)
* add: Eric Fennis's twitter link

* ref: twitter domain
2024-10-04 07:59:34 +02:00
Pedro Henrique Windisch
d4976890e5 fix: missing deprecation warning for LinkedIn logo (#2466)
Co-authored-by: Karsa <contact@karsa.org>
2024-10-02 14:49:53 +02:00
Jakob Guddas
8c8d1d3338 fix(categories): fixed charts icon name (#2504) 2024-10-02 09:36:31 +02:00
Kyle Angelo Galendez
542507f835 fix(icons): rename box-select to square-dashed (#2506)
* Rename box-select.svg to square-dashed.svg

* Update and rename box-select.json to square-dashed.json

* Add aliases
2024-10-01 22:13:41 +02:00
Isaac
c6a4908ed0 Add missing space between Svelte and Preact (#2489) 2024-09-25 07:52:27 +02:00
Jakob Guddas
b6e71c6c7a feat(icons): added file-user icon (#2457)
* Added icons/file-user.svg

* Added icons/file-user.json
2024-09-25 07:21:56 +02:00
Jakob Guddas
7de43440ee feat(icons): added message-square-lock icon (#2430)
* Added icons/message-square-lock.svg

* Added icons/message-square-lock.json

* Updated icons/message-square-lock.json
2024-09-20 23:26:47 +02:00
Jakob Guddas
c8d5260d54 feat(icons): added briefcase-conveyor-belt icon (#2431)
* Added icons/briefcase-conveyor-belt.svg

* Added icons/briefcase-conveyor-belt.json
2024-09-20 23:26:05 +02:00
Jakob Guddas
0c912bd7ff fix(icons): changed loader-pinwheel icon (#2470)
* Updated icons/loader-pinwheel.svg

* Updated icons/loader-pinwheel.json
2024-09-20 23:18:06 +02:00
Jakob Guddas
3f24597a65 Updated icons/circle-stop.svg (#2479) 2024-09-20 23:08:18 +02:00
Jakob Guddas
590d59ac5f fix(icons): changed octagon-pause icon (#2485)
* Updated icons/octagon-pause.svg

* Updated icons/octagon-pause.json
2024-09-20 23:03:31 +02:00
Jakob Guddas
85d427d846 feat: added .github/workflows/close-issue-with-banned-phrases.yml (#2460)
* feat: added .github/workflows/close-issue-with-banned-phrases.yml

* feat: added link to search

* chore: improved comment
2024-09-19 09:20:22 +02:00
Jakob Guddas
478a624162 Updated icons/messages-square.svg (#2429)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-09-13 09:07:13 +02:00
Jakob Guddas
f0afdd4614 feat(icons): added clock-alert icon (#2401)
* Added icons/clock-alert.svg

* Added icons/clock-alert.json
2024-09-12 14:22:36 +02:00
Need-an-AwP
38e7431189 add headphone-off svg & json in icon folder (#2445)
* add headphone-off svg & json in icon folder

* edit contributor in json & adjust icon

* adjust icon

* contributors changed

* icon adjust

* adjust path

* detail adjustment

* Apply suggestions from code review

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

* delete files of categories in headphone-off's json

* prettier format json

---------

Co-authored-by: Karsa <contact@karsa.org>
2024-09-12 10:21:34 +02:00
Jakob Guddas
19dd912381 fix(icons): arcified caravan icon (#2423)
* Updated icons/caravan.svg

* Updated icons/caravan.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-09-06 13:13:34 +02:00
Jakob Guddas
f70d5f5169 fix(pr-comment): added missing details open tag (#2425) 2024-09-06 12:45:07 +02:00
Jakob Guddas
30e0d55b4a fix(pr-comment): changed diff path url (#2426) 2024-09-06 12:44:38 +02:00
Jakob Guddas
36a5a8b9ac fix(icons): arcified book-open-* icon (#2358)
* Updated icons/book-open.svg

* Updated icons/book-open-check.svg

* Updated icons/book-open-check.svg

* Updated icons/book-open-text.svg
2024-09-06 09:58:11 +02:00
Jakob Guddas
e20e7a43ba feat(icons): added grid-2x2-plus icon (#2362)
* Added icons/grid-2x2-plus.svg

* Added icons/grid-2x2-plus.json
2024-09-06 09:40:16 +02:00
Eric Fennis
e8ab1bc15b chore: Update PNPM (#2376)
* update-workflows

* Update pnpm

* update lockfile

* Update pnpm lock file

* Revert icon changes
2024-09-06 09:30:23 +02:00
Jakob Guddas
ef090c7dd4 fix(icons): changed combine icon (#2424)
* Updated icons/combine.svg

* Updated icons/combine.json
2024-09-06 09:14:33 +02:00
Karsa
65e49e2684 fix(docs): fixes yarn workspace guide link (#2435) 2024-09-06 09:13:46 +02:00
Jakob Guddas
0ca2099113 feat(icons): added octagon-minus icon (#2408)
* Added icons/octagon-minus.svg

* Added icons/octagon-minus.json

* Updated icons/octagon-minus.json
2024-09-01 21:08:00 +02:00
Jakob Guddas
9c99fd809c feat(pr-comment): moved diff into separate section (#2421)
* feat(pr-comment): moved diff into separate section

* Update docs/.vitepress/lib/SvgPreview/Diff.tsx
2024-09-01 21:04:36 +02:00
dependabot[bot]
cd0d4e1f8a build(deps-dev): bump svelte from 4.1.2 to 4.2.19 (#2419)
Bumps [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte) from 4.1.2 to 4.2.19.
- [Release notes](https://github.com/sveltejs/svelte/releases)
- [Changelog](https://github.com/sveltejs/svelte/blob/svelte@4.2.19/packages/svelte/CHANGELOG.md)
- [Commits](https://github.com/sveltejs/svelte/commits/svelte@4.2.19/packages/svelte)

---
updated-dependencies:
- dependency-name: svelte
  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>
2024-09-01 21:04:25 +02:00
Jakob Guddas
e1668804c9 Updated icons/battery-warning.svg (#2422) 2024-09-01 21:04:08 +02:00
Karsa
efcede62e7 fix(icons): lucide-ize send icons (#2346)
* fix(): Lucide-ize send icons

* Update send.svg

* fix(icons): update contributors

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-08-31 13:16:40 +02:00
Jakob Guddas
3c3f548ec1 fix(icons): changed backpack icon (#2406)
* Updated icons/backpack.svg

* Updated icons/backpack.json
2024-08-25 18:21:49 +02:00
Jakob Guddas
0160bbe539 fix(icons): changed milestone icon (#2281)
* Updated icons/milestone.svg

* Updated icons/milestone.json

* Updated icons/milestone.svg

* Updated icons/milestone.json

* Updated icons/milestone.json

* Updated icons/milestone.json

* Updated icons/milestone.svg

* Update icons/milestone.svg

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

* Updated icons/signpost.svg

* Updated icons/signpost.json

* Updated icons/milestone.svg

---------

Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-08-23 11:31:30 +02:00
Karsa
7837a04438 fix(icons): fix volume icons, add volume-off (#2378) 2024-08-23 11:26:01 +02:00
Alexandru Portan
944e428630 feat(icons): added trending-up-down icon (#2372)
* Added icons/chart-arrows.svg

* Added icons/chart-arrows.json

* Update chart-arrows.svg

- removed the chart part

* Update and rename chart-arrows.json to trending-up-down.json

- updated name
- updated tags
- changed category

* Rename chart-arrows.svg to trending-up-down.svg

- changed name to trending-up-down.svg

* Update icons/trending-up-down.json

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

* Update icons/trending-up-down.json

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

* Update icons/trending-up-down.svg

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

---------

Co-authored-by: Karsa <contact@karsa.org>
2024-08-23 11:10:52 +02:00
Eric Fennis
aa4b1f06b4 fix(lucide-solid): compilation issues when starting up Vite Dev server (#2375)
* Adjust build for lucide solid

* Adjust documentation

* Revert package manager update

* Fix lint errors
2024-08-23 11:08:47 +02:00
Eric Fennis
b1087d3da0 fix(icons): Remove duplicated alias from chart-gantt 2024-08-23 10:38:49 +02:00
Eric Fennis
fd8d69a129 chore(site): Update vitepress to 1.3.1 (#2377)
* Update vitepress

* Update nitro

* Try this

* Revert nitropack update
2024-08-23 10:28:37 +02:00
Jakob Guddas
379df75eda style: added text-wrap balance to TeamMemberCard.vue (#2381) 2024-08-23 10:28:21 +02:00
Jakob Guddas
25707c7c47 fix(icons): changed contact-* icon (#2391)
* Updated icons/contact.svg

* Updated icons/contact.json

* Updated icons/contact-round.svg

* Updated icons/contact-round.json
2024-08-23 10:27:32 +02:00
Jakob Guddas
cbb4ed985c feat(icons): added chart-gantt icon (#2392)
* Added icons/chart-gantt.svg

* Added icons/chart-gantt.json

* Updated icons/chart-gantt.json

* Updated icons/chart-gantt.svg
2024-08-23 10:26:15 +02:00
Sameer Poswal
d7d1074a60 changed the value of major grid lines from 5 to 6 (#2382) 2024-08-23 10:25:39 +02:00
Viktor Andersson
79c2333b7f Add the sustainability catagory to some existing icons (#2384) 2024-08-21 09:26:07 +02:00
Karsa
e3f78d73d8 fix(icons): fix stethoscope guideline violations (#2379) 2024-08-21 09:25:31 +02:00
hiepxanh
e391973a70 feat(docs): add standalone example for angular (#2383) 2024-08-21 09:23:33 +02:00
Jakob Guddas
5a2e3a20ee fix(icons): changed message-square-dashed icon (#2374)
* Updated icons/message-square-dashed.svg

* Updated icons/message-square-dashed.json
2024-08-16 15:32:49 +02:00
Jakob Guddas
6e65118cd3 feat(icons): added tickets-plane icon (#2196)
* Added icons/plane-tickets.svg

* Added icons/plane-tickets.json

* Update icons/plane-tickets.json

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

* Add missing coma

* Rename plane-tickets.json to tickets-plane.json

* Rename plane-tickets.svg to tickets-plane.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-08-16 10:26:26 +02:00
Jakob Guddas
10c3662ff1 fix(icons): changed folder-search icon (#2354)
* Updated icons/folder-search.svg

* Updated icons/folder-search.json
2024-08-14 17:24:30 +02:00
Jakob Guddas
c7c6b479fc feat(icons): added tickets icon (#2335)
* Added icons/tickets.svg

* Added icons/tickets.json
2024-08-09 11:05:51 +02:00
Karsa
442e477a9a feat(icons): added binoculars icon (#2207)
* feat(icons): added binoculars icon

* feat(icons): add categories

* feat(icons): tweak horizontal line gaps

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
2024-08-09 11:03:47 +02:00
Eric Fennis
777166c06d feat(icons): Add ethernet-port and chevrons-left-right-ellipsis icons (#2120)
* feat(icons): Add ethernet icon

* Fixes hidden dots

* Update icons/ethernet-port.svg

* Rename wired connection icon

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-08-08 16:29:12 +02:00
Jakob Guddas
8be94e7f86 fix(icons): changed cigarette-* icons (#2282)
* Updated icons/cigarette.svg

* Updated icons/cigarette.json

* Updated icons/cigarette-off.svg

* Updated icons/cigarette-off.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-08-08 16:28:45 +02:00
Karsa
07dd0bfdb1 feat(icons): add bandage icon (#2341) 2024-08-08 16:27:48 +02:00
Karsa
3271972d97 fix(icons): add table-of-contents icon (#2348)
* fix(icons): add table-of-contents icon

* fix(icons): add ToC to custom words list

* fix(icons): fix formatting
2024-08-08 16:27:39 +02:00
Karsa
915e8b5b6d fix(icons): add rounding to mouse pointer icons (#2350) 2024-08-08 16:27:28 +02:00
Jay
6c32e47bea chore: fixed footer typo (#2360) 2024-08-08 16:26:59 +02:00
Jay
d4d90f0d4e chore(icons): add tag to ellipsis icons (#2357)
* chore(icons): add tag to ellipsis

* chore(icons): add tag to rectangle-ellipsis

* chore(icons): add tag to circle-ellipsis

* chore(icons): add tag to ellipsis-vertical

* chore(): add some further tags. no pun indended.

* chore(): ran prettier

---------

Co-authored-by: Karsa <contact@karsa.org>
2024-08-03 14:16:48 +02:00
Karsa
3cf67355b4 feat(icons): add map-pin-house icon (#2337) 2024-08-02 12:39:04 +02:00
Jakob Guddas
66bc180c84 refactor(icons): changed replace and replace-all icon (#2333)
* Updated icons/replace-all.svg

* Updated icons/replace.svg
2024-08-02 12:11:29 +02:00
Karsa
3c6a8c5118 feat(icons): added amphora icon (#1926)
* feat(icons): Added amphora icon

* fix(icons): Update amphora to make handles less cramped

* fix(icons): manual optimization

* feat(icons): replace amphora w/ teardrop shape

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-08-02 11:39:07 +02:00
Jakob Guddas
8a088af570 fix(icons): arcified skull icon (#2197)
* Updated icons/skull.svg

* Update icons/skull.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-08-02 11:33:40 +02:00
Karsa
cf5d6fc887 feat(icons): adds microchip icon (#1982)
* feat(icons): adds microchip icon

* feat(icons): fix missing icon

* feat(icons): update microchip with new design

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
2024-08-02 11:17:05 +02:00
Pedro Antoninho
6052c88831 fix(lucide-react): support recommended react 19 prerelease (#2336) 2024-08-02 11:15:17 +02:00
Jakob Guddas
6272f4fd1f fix(icons): update pentagon icon (#1918)
* Updated icons/pentagon.svg

* Updated icons/pentagon.json

* Update icons/pentagon.svg

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

---------

Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-08-02 11:14:46 +02:00
Jakob Guddas
89070bfa44 fix(icons): changed circle-check-big icon (#2330)
* Updated icons/circle-check-big.svg

* Updated icons/circle-check-big.json
2024-08-02 10:53:16 +02:00
Karsa
4cae01a2f5 fix(icons): update cloud download icon and close gaps (#2355) 2024-08-02 09:53:29 +02:00
Jakob Guddas
c2cc325f40 fix(icons): changed square-check-big icon (#2331)
* Updated icons/square-check-big.svg

* Updated icons/square-check-big.json
2024-08-02 09:49:17 +02:00
Karsa
3143b24dff fix(icons): add omega icon (#2347) 2024-08-02 09:46:06 +02:00
Jakob Guddas
f0625d085e fix(icons): changed calendar-search icon (#2351)
* Updated icons/calendar-search.svg

* Updated icons/calendar-search.json

* Updated icons/calendar-search.svg
2024-08-02 09:40:02 +02:00
Jakob Guddas
beddaa7cbb fix(icons): changed cloud-upload icon (#2352)
* Updated icons/cloud-upload.svg

* Updated icons/cloud-upload.json
2024-08-02 09:39:02 +02:00
Moritz
158212c130 feat(icons): added circle-fading-arrow-up icon (#2287)
* add circle fading up icon

* add more metadata

* Rename circle-fading-up.json to circle-fading-arrow-up.json

* Rename circle-fading-up.svg to circle-fading-arrow-up.svg

* remove categories

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

* remove comma

* added development category

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-08-01 15:30:25 +02:00
Jakob Guddas
1d5edc507d Add id-card (#1296)
* Add `id-card`

* Update id-card.svg

* Update id-card.svg

* Update id-card.json

* Update id-card.svg

* Update id-card.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
2024-07-31 18:34:18 +02:00
Jakob Guddas
6f44a5d624 Updated icons/chart-column-increasing.svg (#2334) 2024-07-28 10:02:23 +02:00
Karsa
1c12bae0f5 feat(icons): arcified map-pin icons & added map-pin icon variants (#2301) 2024-07-25 16:17:54 +02:00
Jakob Guddas
fdcb73cb7a feat(icons): added square-square icon (#2241)
* Added icons/square-square.svg

* Added icons/square-square.json
2024-07-25 16:15:01 +02:00
Karsa
f2f685bd65 meta(icons): adds extra tags to utensils icons (#2192)
* fix(icons): adds extra tags to utensils icons

* feat(icons): add aliases to utensils

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-22 09:44:25 +02:00
Karsa
18d18361e8 feat(icons): fix chart naming scheme, lucide-ize appearance, et cetera (#2219)
* feat(icons): fix chart naming scheme, lucide-ize appearance, add some extra variants that were implied but missing

* feat(icons): fix missing SVG code

* feat(icons): fix linting issue

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-22 09:43:12 +02:00
Andreas Sas
45c3c00d1d feat(icons): added dam icon (#2233)
* Added icons/dam.svg

* Added icons/dam.json

* Update icons/dam.json

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

* Update icons/dam.json

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

* Update icons/dam.svg

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

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-07-22 09:31:59 +02:00
Jakob Guddas
45bc8c08da fix(icons): closed gaps in dog icon (#2249)
* Updated icons/dog.svg

* Updated icons/dog.json

* Updated icons/dog.svg
2024-07-22 09:31:30 +02:00
Jakob Guddas
6676cdd513 fix(icons): changed key-square icon (#2277)
* Updated icons/key-square.svg

* Updated icons/key-square.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-22 09:29:38 +02:00
Karsa
eb93f112bd feat(icons): also replace element on changes to other properties, do not use icon from changes, but from current state (#2316) 2024-07-22 09:29:16 +02:00
Benji Grant
54a58881da feat(icons): add letter-text icon (#2252)
* feat(icons): add drop-cap icon

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

* fix(icons): round the top of the `drop-cap` icon

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

* fix(icons): Fix `drop-cap` icon

* fix(icons): rename `drop-cap` icon to `letter-text`

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-20 19:52:04 +02:00
Jakob Guddas
568d0b2fa3 feat: added green positive addition to gh-icon route (#2322)
* feat: added green positive addition to gh-icon route

* Update docs/.vitepress/api/gh-icon/[...data].get.ts
2024-07-20 19:42:52 +02:00
Jakob Guddas
2d1be858c8 fix(icons): removed plug-zap-2 (#2129)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-19 13:00:27 +02:00
Jerome Cabugwason
fa6ddf923f feat(icons): added philippine-peso icon (#2231)
* Added icons/philippine-peso.svg

* Added icons/philippine-peso.json

* Updated icons/philippine-peso.svg

* Updated icons/philippine-peso.svg

* Update philippine-peso.json

added author

* Update philippine-peso.json

reordered author

* Update icons/philippine-peso.svg

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

* Updated icons/philippine-peso.svg

* Updated icons/philippine-peso.json

* Updated icons/philippine-peso.svg

* Updated icons/philippine-peso.svg

* add contributor in `philippine-peso.json`

* Updated icons/philippine-peso.svg

* Update icons/philippine-peso.svg

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

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-07-19 11:06:24 +02:00
Jakob Guddas
658b94e65a fix(icons): arcified ribbon icon (#2271)
* Updated icons/ribbon.svg

* Updated icons/ribbon.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-19 11:06:01 +02:00
Jakob Guddas
137ab5c885 refactor(icons): changed calendar-minus icon (#2265)
* Updated icons/calendar-minus.svg

* Updated icons/calendar-minus.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-19 10:52:02 +02:00
Karsa
83284d842a feat(icons): clarification on naming overlapping elements (#2304) 2024-07-19 10:42:49 +02:00
Karsa
8993b0b174 feat(icons): add rounding to eye icons (#2317)
* feat(icons): add rounding to eye icons

* Update icons/eye-off.svg

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

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-07-19 10:40:42 +02:00
Jakob Guddas
1b2b66f1f3 refactor(icons): changed image-plus icon (#2321)
* Updated icons/image-plus.svg

* Updated icons/image-plus.json

* Updated icons/image-plus.json
2024-07-19 10:38:27 +02:00
Jakob Guddas
0186afc0e6 fix(icons): changed drafting-compass icon (#2266)
* Updated icons/drafting-compass.svg

* Updated icons/drafting-compass.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-12 09:04:40 +02:00
Karsa
36c68bd901 feat(icons): added monitor-cog icon (#2310)
* [github] Added issue template forms

* [github] yaml => yml

* Syntax fixes

* Further syntax fixes

* Sort issue templates

* Update 02_bug_report.yml

* Added icons/monitor-cog.svg

* Added icons/monitor-cog.json

---------

Co-authored-by: Karsa <karsa@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-12 09:04:27 +02:00
Jakob Guddas
e8abed3fa7 Updated icons/church.svg (#2273)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-09 21:31:58 +02:00
Naiyer Asif
b4af645560 docs(contrib): add guide to design icons with Affinity Designer (#2262)
* docs(contrib): add guide to design icons with Affinity Designer

* feat(contrib): add Affinity Designer guide to contribution guidelines
2024-07-09 21:25:16 +02:00
Eric Fennis
8f65b7e6f4 build: Update deps lucide-svelte and lucide-static 2024-07-09 21:23:43 +02:00
Jakob Guddas
3c3e3508ec fix(icons): arcified delete icon (#2279)
* Updated icons/delete.svg

* Updated icons/delete.svg

* Updated icons/delete.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-09 20:40:08 +02:00
Karsa
01e5fd74e6 feat(icons): added type-outline icon (#2206)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-07-09 20:02:31 +02:00
Karsa
7c62c7c662 feat(icons): added clock/calendar-arrow-up/down icons (#2307)
* feat(icons): added clock/calendar-arrow-up/down icons

* feat(icons): add some extra tags to sort icons
2024-07-09 15:50:42 +02:00
Karsa
e92d5e2d40 feat(icons): added user-pen and user-round-pen (#2303) 2024-07-09 14:48:03 +02:00
Janghyeon
3975020fd2 fix: Correct GitHub link in the footer (#2306) 2024-07-09 14:45:40 +02:00
Jakob Guddas
43dfe362b6 feat(icons): added folder-code icon (#2276)
* Added icons/folder-code.svg

* Added icons/folder-code.json
2024-07-09 10:05:31 +02:00
David Boclé
58524b25ee fix(site): Fix svelte code examples (#2298) 2024-07-08 15:54:25 +02:00
Guan-Bo Yang
34805df73f feat(icons): added list-check icon (#2291)
* Added icons/list-check.svg

* Added icons/list-check.json

* Update icons/list-check.json

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

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-08 15:52:37 +02:00
Virt
7cb867782d feat(icons): add wifi strength icons (#2157) 2024-07-08 09:35:26 +02:00
Vexkiddy
63deb3e4f9 feat(icons): added scan-qr-code icon (#2247)
* Created 'scan-qrcode'

* Rename scan-qrcode to scan-qrcode.svg

* added scan-qrcode.json

* Update icons/scan-qrcode.svg

* Rename scan-qrcode.json to scan-qr-code.json

* Rename scan-qrcode.svg to scan-qr-code.svg

* Update icons/scan-qr-code.json

* Update icons/scan-qr-code.json

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

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-07 22:12:54 +02:00
Jakob Guddas
4dcc340301 fix(icons): arcified octagon-* icons (#2280)
* Updated icons/octagon.svg

* Updated icons/octagon.json

* Updated icons/octagon-alert.svg

* Updated icons/octagon-alert.json

* Updated icons/octagon-pause.svg

* Updated icons/octagon-x.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-07 22:00:03 +02:00
Jakob Guddas
8bd401fa8c fix(icons): arcified book-* icons (#2274)
* Updated icons/book.svg

* Updated icons/book-a.svg

* Updated icons/book-audio.svg

* Updated icons/book-check.svg

* Updated icons/book-copy.svg

* Updated icons/book-marked.svg

* Updated icons/book-text.svg

* Updated icons/book-type.svg

* Updated icons/book-headphones.svg

* Updated icons/book-heart.svg

* Updated icons/book-dashed.svg

* Updated icons/book-dashed.json

* Updated icons/book-down.svg

* Updated icons/book-image.svg

* Updated icons/book-image.json

* Updated icons/book-key.svg

* Updated icons/book-lock.svg

* Updated icons/book-minus.svg

* Updated icons/book-plus.svg

* Updated icons/book-up.svg

* Added icons/book-up-double-arrow.svg

* Added icons/book-up-double-arrow.json

* Delete icons/book-up-double-arrow.json

* Delete icons/book-up-double-arrow.svg

* Update book-up-2.svg

* Updated icons/book-user.svg

* Updated icons/book-x.svg

* Updated icons/book-copy.svg

* Updated icons/book-copy.json

* Update book-dashed.json

* Updated icons/book-copy.svg

* Updated icons/book-copy.json

* Updated icons/key-square.svg

* Updated icons/key-square.json

* Updated icons/key-square.svg

* Updated icons/key-square.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-07 21:59:44 +02:00
Jakob Guddas
338fc70f6d fix(icons): fixed *-power icons (#2285)
* Updated icons/square-power.svg

* Updated icons/square-power.json

* Updated icons/circle-power.svg

* Updated icons/circle-power.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-07 21:58:15 +02:00
Jakob Guddas
7ca1fabc12 fix(icons): changed key-round icon (#2278)
* Updated icons/key-round.svg

* Updated icons/key-round.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-07 21:57:17 +02:00
Eric Fennis
0d2c6c457e refactor(scripts): Fix linting errors 2024-07-07 21:32:32 +02:00
Karsa
2539470978 chore(icons): improve pixel perfection and curvature of signature (#2293)
* chore(icons): improve pixel perfection and curvature of signature

* chore(icons): restore original curve so that the icon remains less altered
2024-07-07 21:24:50 +02:00
Karsa
12b412aa87 fix(tools): rename shuffle => shuffleArray (#2284) 2024-07-03 22:52:32 +02:00
Jakob Guddas
c8b00be37e feat(icons): added printer-check icon (#2258)
* Added icons/printer-check.svg

* Added icons/printer-check.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-07-01 21:55:47 +02:00
Eric Fennis
291b11fbd1 ci(linter): Fix path default attrs 2024-07-01 21:51:48 +02:00
Eric Fennis
4635141dfa chore: Update lockfile 2024-07-01 21:33:32 +02:00
Eric Fennis
c761ec7b5e ci(pull-request): Fix workflows attempt #7 2024-07-01 21:28:11 +02:00
Eric Fennis
bbd877a3ba ci(pull-request): Fix workflows attempt #6 2024-07-01 18:04:31 +02:00
Eric Fennis
e830fb16e0 ci(pull-request): Fix workflows attempt #5 2024-07-01 17:33:21 +02:00
Eric Fennis
7625cab264 ci(pull-request): Fix workflows attempt #4 2024-07-01 17:30:08 +02:00
Eric Fennis
7726b7e7ff ci(pull-request): Fix workflows attempt #3 2024-07-01 17:23:47 +02:00
Eric Fennis
bca0eeaf09 ci(pull-request): Fix workflows attempt #2 2024-07-01 17:20:58 +02:00
Eric Fennis
8125a21a7e ci(pull-request): Fix GH workflow 2024-07-01 17:15:54 +02:00
Eric Fennis
077242cfa0 refactor(scripts): Cleaning up scripts (#2092)
* cleanup scripts

* Move helpers to package

* Fixes scripts

* Fix scripts

* Formatting

* Fix helpers import paths

* Remove lucide-figma

* Rename helpers package

* Fix build

* formatting

* Adjust main build-icons file

* Add export casing

* Adds `exportModuleNameCasing` fro lab project

* format files

* Bump package version @lucide/build-icons

* Revert changes in icons

* Revert changes in PR yml

* Fix lint issues

* Fix site build

* fix lint errors

* Attempt fix linting

* Fix lint errors
2024-06-28 11:24:37 +02:00
Eric Fennis
ce79418c66 fix lab code examples (#2263) 2024-06-28 10:25:27 +02:00
Andreas Sas
80350b2cb1 feat(icons): added logs icon (#2257)
* Added icons/logs.svg

* Added icons/logs.json
2024-06-28 10:23:27 +02:00
Jakob Guddas
172f397019 fix(icons): optimized cloud-moon-rain icon (#2250)
* Updated icons/cloud-moon-rain.svg

* Updated icons/cloud-moon-rain.svg
2024-06-28 10:11:28 +02:00
Andreas Sas
a463d8a5c7 feat(icons): added save-off icon (#2260)
* Added icons/save-off.svg

* Added icons/save-off.json
2024-06-28 08:53:58 +02:00
Andreas Sas
fbd5225aad feat(icons): added signature icon (#2248)
* Added icons/signature.svg

* Added icons/signature.json

* Update icons/signature.json

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

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-06-26 10:31:44 +02:00
Eric Fennis
acd4a879f2 Add support for react 19 (#2254) 2024-06-26 09:19:41 +02:00
Eric Fennis
e11fa135a0 docs(icons): External Lucide icons like from lab on lucide.dev (#2194)
* Add section title

* Add external libs list in sidebar

* Make external lib work

* Adds external lib to detail view

* fix lint issues

* Update to https
2024-06-25 09:56:55 +02:00
Jakob Guddas
f980863f6c fix(icons): changed cloud-moon icon (#2251)
* Updated icons/cloud-moon.svg

* Updated icons/cloud-moon.svg
2024-06-25 09:52:32 +02:00
Jakob Guddas
07230a442f fix: changed home category icon from home to house (#2243) 2024-06-22 22:19:55 +02:00
Jakob Guddas
a34919f0af fix: fixed check uniqueness of aliases action (#2242) 2024-06-22 22:19:43 +02:00
Jakob Guddas
f4d451de80 fix(icons): redesigned house icon (#2116)
* Updated icons/home.svg

* Updated icons/home.json

* Updated icons/home.svg

* Updated icons/home.svg

* Updated icons/home.json

* Updated icons/home.svg

* Updated icons/home.json

* Updated icons/home.json

* fix(icons): renamed home to house

* feat(icons): update tags

---------

Co-authored-by: Karsa <contact@karsa.org>
2024-06-21 12:52:28 +02:00
Jakob Guddas
1e887bc30f feat(icons): added house-plug icon (#2123)
* Added icons/home-plug.svg

* Added icons/home-plug.json

* Update icons/home-plug.json

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

* Updated icons/home-plug.json

* fix(icons): renamed home-plug to house-plug

* fix(icons): remove alias

* feat(icons): update tags

---------

Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-06-21 12:51:55 +02:00
Karsa
1442b9a35b feat(icons): added house-plus icon (#2221)
* feat(icons): add house-plus icon

* feat(icons): update categories

* feat(icons): add jguddas to house-plus as co-author
2024-06-21 12:50:20 +02:00
Jakob Guddas
41fd856578 feat(ci): check uniqueness of aliases (#2223) 2024-06-21 12:30:05 +02:00
Eric Fennis
621b60b19d fix(site): Aliases redirect (#2235)
* fix: Aliases redirect

* Fix lint errors

* Apply feedback
2024-06-20 16:13:38 +02:00
Karsa
b77e372f3e feat(icons): add additional rounding to sofa and armchair icons (#2228) 2024-06-20 09:51:49 +02:00
Karsa
d4891a7307 feat(docs): added accessibility guide (#2122)
* feat(docs): added a11y guide

* feat(docs): add further resources

* feat(docs): add more resources & note on aria label usage

* feat(docs): update illustration button labels

* feat(docs): fix misaligned overlay in icon button alttext illustration

* fix(docs): deprecate the use of aria label on illustrations and elaborate on not using it.

* feat(docs/a11y): added code examples & rephrased aria-label resource

* feat(docs/a11y): fix typos

* Update docs/guide/advanced/accessibility.md

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

* Apply suggestions from code review

Reformat headers, add RadixUI example.

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

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-06-17 16:12:24 +02:00
Jakob Guddas
199987276b feat(icons): redesigned mic-vocal icon (#2198)
* Updated icons/mic-vocal.svg

* Updated icons/mic-vocal.json
2024-06-14 12:48:41 +02:00
Jakob Guddas
5647b34594 feat: narrowed type for categories in icon.schema.json (#2126) 2024-06-14 12:47:46 +02:00
Jakob Guddas
439e463430 fix(icons): arcified guitar icon (#2133)
* Updated icons/guitar.svg

* Updated icons/guitar.json

* Updated icons/guitar.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-06-14 12:24:51 +02:00
Jakob Guddas
22921304a7 Updated icons/pin-off.svg (#2211) 2024-06-14 12:16:06 +02:00
Jakob Guddas
220abb1510 Updated icons/pin.svg (#2210) 2024-06-14 12:15:29 +02:00
Jakob Guddas
91ce9221e8 fix(icons): rebuild quote icon (#2212)
* Updated icons/quote.svg

* Updated icons/quote.json

* Updated icons/quote.svg

* Update icons/quote.svg

* Updated icons/quote.json
2024-06-14 12:12:17 +02:00
Garrett Pauls
904d74fe4a fix(lucide-svelte): update IconProps to include all properties of Icon component (#2182)
* fix(lucide-svelte): update IconProps to include all properties of Icon component

* fix(lucide-svelte): removed custom Icon type that conflicted with Icon component type

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-06-12 10:49:21 +02:00
Jakob Guddas
f507644488 fix(icons): added round corner to file-archive icon (#2132)
* Updated icons/file-archive.svg

* Updated icons/file-archive.json
2024-06-10 16:25:08 +02:00
Karsa
501b65a7a1 fix(icons): remove edit-2 alias from pen-off (#2209)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-06-10 16:14:36 +02:00
Jakob Guddas
14862fb0dc fix(icons): changed file-cog icon to match other -cog icons (#2184)
* Updated icons/file-cog.svg

* Updated icons/file-cog.json
2024-06-10 16:07:33 +02:00
Karsa
2963369c8d feat(icons): add pen-off pencil-off, update pen icons w/ rounding (#2186) 2024-06-10 16:04:12 +02:00
Karsa
1e20d5087a fix(icons): fixes/removes zero long path segments (#2205)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-06-10 13:16:03 +02:00
Karsa
4b312b369f fix(scripts): fixes writeIconRelatedIcons.mjs (#2190)
* fix(scripts): fixes writeIconRelatedIcons.mjs

* fix(scripts): fixes linting

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
2024-06-07 10:10:17 +02:00
Karsa
afbef743de fix(site): fixes open collective logo in light mode (#2189)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-06-06 19:54:50 +02:00
Alexandre Philibert
864fdeca84 feat(icons): added calendar-cog icon (#2176)
* feat(icons): added calendar-cog icon

* feat(icons): cleanup calendar-cog icon

* feat(icons): fix indentation of calendar-cog icon

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-06-06 16:27:01 +02:00
Karsa
541add925c fix(icons): fixes duplicate tv-2 alias (#2188)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-06-06 16:26:09 +02:00
Karsa
2e7df30267 fix(icons): fix mismatched lines in dna & dna-off (#2187)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-06-06 15:08:32 +02:00
Viktor
0a578c8803 meta(icons): Added "liquid" tag to Droplet icon (#2152)
Co-authored-by: Karsa <contact@karsa.org>
2024-06-06 13:17:22 +02:00
Karsa
b227caee98 feat(icons): added tv-minimal-play (#2128)
* feat(icons): add tv-minimal-play icon, rename tv-2 to tv-minimal

* feat(icons/tv-minimal-play): add more tags

* feat(icons): add deprecation reason to tv-2 alias

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-06-06 13:16:25 +02:00
Jakob Guddas
72b74fbdb4 fix(icons): added round corners to signpost icon (#2002)
* Updated icons/signpost.svg

* Updated icons/signpost.svg

* Updated icons/signpost.json
2024-06-06 11:08:10 +02:00
Jakob Guddas
01d36ad363 fix(icons): added rounding to sigma icon (#2149)
* Updated icons/sigma.svg

* Update icons/sigma.svg

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

---------

Co-authored-by: Karsa <contact@karsa.org>
2024-06-06 11:06:56 +02:00
Karsa
548cb9cdf5 feat(icons): added biceps-flexed icon (#2127) 2024-06-06 11:06:19 +02:00
Jakob Guddas
79430da42e fix(icons): arcified tractor icon (#2112)
* Updated icons/tractor.svg

* Updated icons/tractor.json

* Updated icons/tractor.svg

* Updated icons/tractor.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-06-06 11:02:31 +02:00
Karsa
0620843f4c fix(icons): added rounding to paintbrush (#2147)
* fix(icons): arcified paintbrush

* Update icons/paintbrush.svg

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

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-06-06 10:59:42 +02:00
Quill Zhou
34d063302a Add copy component name (#2169) 2024-06-05 23:22:19 +02:00
Jakub Różbicki
0abc3389db Update circle-slash.svg (#2183)
Having <line> after <circle> allows to set `fill` as a background and line would still be visible
2024-06-05 21:43:33 +02:00
Jakob Guddas
ebb8ec66af fix(icons): added rounding radical icon (#2150)
* Updated icons/radical.svg

* Updated icons/radical.svg

* Updated icons/radical.json
2024-06-02 12:05:05 +02:00
Jakob Guddas
f55ced97a5 fix(icons): added rounding to compass icon (#2143)
* Updated icons/compass.svg

* Updated icons/compass.json
2024-06-02 10:41:30 +02:00
Karsa
8458345535 feat(icons): added pill-bottle icon (#2174)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-06-02 10:39:11 +02:00
Karsa
66d6c2fe4b feat(icons): added lectern icon (#2171)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-05-30 12:56:40 +02:00
Karsa
053808685c feat(icons): added section icon (#2172)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-05-30 12:03:14 +02:00
Sayakie
4f2a6b70d8 fix license typos (#2161) 2024-05-24 12:06:03 +02:00
Karsa
d8004e471a feat(angular): add support for ng 18 (#2167)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-05-24 12:04:15 +02:00
Karsa
e2b46eac8e feat(icons): add deprecationReason and alias deprecation feature (#1960)
* feat(icons): add deprecationReason and alias deprecation feature

* chore(tools): run prettier. again.

* fix(scripts): overall alias as object support

* fix(icon.schema.json): add dependentRequired on deprecated properties

* fix(icon.schema.json): remove unicode for now

* fix(icon.schema.json): use const true for deprecated

* fix(build): convert deprecation reason to enum

* fix(build): fix linting of icon.schema.json

* fix(build): renamed gracePeriod => toBeRemovedInVersion

* fix(build): fix aliases map in related icons generation

* fix(build): deprecate aliases using numbers

* feat(icon-schema): separate deprecation reason enumerations, extract removal notice

* fix(icon-schema): fix linting

* Update tools/build-icons/utils/deprecationReasonTemplate.mjs

* fix(icons): add deprecation reason to some more icons

* fix(docs): fix linting issue

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
Co-authored-by: Jakob Guddas <github@jguddas.de>
2024-05-22 13:08:34 +02:00
Karsa
1b3173b17b fix(icons): arcified and renamed paintbrush-2 (#2146)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-05-21 15:34:42 +02:00
Eric Fennis
d5f4275055 fix(lucide-svelte): Remove export mergeClasses in svelte Icon (#2119)
* Remove export svelte icon

* formatting
2024-05-21 15:31:05 +02:00
Jakob Guddas
6abae7cc14 fix(icons): arcified key icon (#2067)
* Updated icons/key.svg

* Updated icons/key.json

* Update icons/key.svg

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

* Add space before close key.svg

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-05-21 15:29:20 +02:00
Eric Fennis
f32ffcd2a2 fix(docs): Fix data api 2024-05-14 23:31:11 +02:00
Karsa
824bb897cf feat(figma): add data API endpoint for new plugin (#2018)
* feat(figma): add data API endpoint with every metadata needed by new Figma plugin

* chore(docs/api): extract data as static const

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
2024-05-14 22:44:52 +02:00
Jakob Guddas
2843a76e28 docs(site): changed my name in the team section (#2142) 2024-05-13 08:23:53 +02:00
Jakob Guddas
155ff3319a fix: resolved broken icons as code details section issue (#2144) 2024-05-13 08:23:23 +02:00
Karsa
34dddb811b fix(icons): fix incorrect category name for diamond-plus/minus (#2125)
Co-authored-by: Karsa <karsa@sztaki.hu>
2024-05-03 17:15:48 +02:00
Daniel Bayley
5fead67bf3 Sort out loader/cursor icons (#1331)
* Add `loader-pinwheel` icon

* Optimise `loader` icon

* Improve `loader` metadata

* Add `loader-circle-big` variant

* Rename `loader-2` to `loader-circle`

* Improve `more-horizontal` metadata

* Add `mouse-pointer-ban` icon

* Improve `mouse-pointer` icons metadata

* Improve metadata

* Revert rename of `loader-2` to `loader-circle`

* Revert "Improve `more-horizontal` metadata"

This reverts commit 41fa676b15.

* Formatting

* Format pinwheel and remove loader-circle-big

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-05-03 10:31:21 +02:00
Karsa
48dc9372db fix(icons): add more Lucide-ish rounding to sparkle icons (#1937)
* fix(icons): add more Lucide-ish rounding to sparkle icons

* chore(icons): sharpen points ever so slightly for better visual weight

* chore(icons): linting fix

* chore(icons): update sparkles & moon-star icon as per Discord

---------

Co-authored-by: Karsa <karsa@sztaki.hu>
2024-05-03 10:27:46 +02:00
Karsa
747446fc76 fix(docs): fix uppercase import in lucide-static docs (#2118) 2024-05-03 08:34:04 +02:00
Jakob Guddas
5862ea735e fix(icons): arcified award icon (#2113)
* Updated icons/award.svg

* Update icons/award.svg

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

---------

Co-authored-by: Karsa <contact@karsa.org>
2024-05-02 11:44:15 +02:00
Rob van Bakel
3a8a349771 fix: Prevent internal router from handling external links (#2107) 2024-04-28 11:22:07 +02:00
Eric Fennis
70bc2245c7 fix(lucide-svelte): Revert shared package for lucide-svelte (#2109)
* fix(lucide-svelte): Revert shared package for `lucide-svelte`

* Update lockfile
2024-04-28 11:05:58 +02:00
Eric Fennis
89f6b6357d fix: Revert moving createIcons to separate file 2024-04-26 19:39:48 +02:00
Jakob Guddas
354af456d3 fix(icons): added rounding to alarm-smoke icon (#2059)
* Updated icons/alarm-smoke.svg

* Updated icons/alarm-smoke.svg

* Updated icons/alarm-smoke.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2024-04-26 18:45:50 +02:00
Eric Fennis
e50582e93e feat(icon-component): Creating icons with iconNodes (#1997)
* Add useIconComponent, lucide-react

* Add concept useIconComponent

* add useIconComponents to packages

* Add icon component

* Add icon component

* Add tests for react packages

* Reset changes in icons

* Add types

* Add support for Icon components in Lucide Vue Next

* update tests

* Update tests

* Enable Svelte component

* Fix lucide-react-native tests

* Update Solid package

* update snapshots

* Add docs

* add docs

* Update tests

* Formatting

* Formatting

* Update package lock

* Remove `useIconComponent`

* Update guides

* Update exports preact and solid package

* Formatting

* Format createIcons.ts

* Add lucide lab repo link in docs
2024-04-26 17:59:04 +02:00
Eric Fennis
65deefa53c ci: Revert pnpm in pull-request.yml 2024-04-26 16:25:44 +02:00
Kyle Angelo Galendez
54ef137b49 feat(icons): added grid-2x2-x icon (#2085)
* Added icons/grid-2x2-x.svg

* Added icons/grid-2x2-x.json

* Archify grid-2x2-x.svg
2024-04-26 15:41:08 +02:00
Kyle Angelo Galendez
d4df542117 feat(icons): added grid-2x2-check icon (#2084)
* Added icons/grid-2x2-check.svg

* Added icons/grid-2x2-check.json

* Updated icons/grid-2x2-check.json

* Arcify grid-2x2-check.svg

* Unarcify the check
2024-04-26 15:40:50 +02:00
Jakob Guddas
8c1e56a7bf fix(icons): arcify activity icon (#2058)
* Updated icons/activity.svg

* Updated icons/activity.svg

* Updated icons/activity.json

* Updated icons/activity.svg

* Updated icons/activity.svg

* Update icons/activity.svg

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

---------

Co-authored-by: Karsa <contact@karsa.org>
2024-04-26 10:59:23 +02:00
Jakob Guddas
dff2172173 Updated icons/printer.svg (#2066) 2024-04-26 10:42:33 +02:00
Kyle Angelo Galendez
e8ccd3df7e Add more OS (#2101)
This includes ChromeOS, iOS, and Android to ensure the report is concise as possible.
2024-04-26 10:40:29 +02:00
Kyle Angelo Galendez
b593355537 Add more OS (#2100)
This includes ChromeOS, iOS, and Android to ensure the report is concise as possible.
2024-04-26 10:40:08 +02:00
2295 changed files with 51442 additions and 57605 deletions

View File

@@ -8,9 +8,10 @@ squircle
strikethrough
touchpad
ungroup
pilcrow
toc
# Brands
codepen
codesandbox
dribbble
x.com

View File

@@ -1,4 +1,4 @@
const DEFAULT_ATTRS = require('./scripts/render/default-attrs.json');
const DEFAULT_ATTRS = require('./tools/build-icons/render/default-attrs.json');
module.exports = {
root: true,
@@ -15,7 +15,9 @@ module.exports = {
'no-use-before-define': 'off',
'import/no-extraneous-dependencies': [
'error',
{ devDependencies: ['**/*.test.js', '**/*.spec.js', './scripts/**'] },
{
devDependencies: ['**/*.test.js', '**/*.spec.js', '**/scripts/**'],
},
],
'import/extensions': [
'error',

View File

@@ -7,8 +7,10 @@ body:
value: |
Before submitting an icon request check if it has already been requested. If there is an open request, please add a 👍.
**Important note**: No new brand logos are allowed, see https://github.com/lucide-icons/lucide/issues/670.
Existing brand icons will also be phased out. For brand icons, consider using https://simpleicons.org, which offers purpose-built SVGs that are also on a 24×24px grid.
> [!CAUTION]
> New brand logos are **not** allowed, see our official statement: https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md.
>
> Existing brand icons are being phased out. Consider using https://simpleicons.org, which offers purpose-built SVGs that are also on a 24×24px grid.
- type: input
id: name
attributes:
@@ -41,9 +43,9 @@ body:
required: true
- label: I have searched existing icons to make sure it does not already exist and I didn't find any.
required: true
- label: I am not requesting a brand logo and the art is not protected by copyright.
- label: I am not requesting a brand logo and the art is not protected by copyright, see more at https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md
required: true
- label: I am not requesting an icon that includes religious, political imagery or hate symbols.
- label: I am not requesting an icon that includes religious, war/violence related, political imagery or hate symbols.
required: true
- label: I have provided appropriate use cases for the icon(s) requested.
required: true

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
@@ -69,6 +70,9 @@ body:
- label: Windows
- label: Linux
- label: macOS
- label: ChromeOS
- label: iOS
- label: Android
- label: Other/not relevant
- type: textarea
id: description

View File

@@ -30,6 +30,9 @@ body:
- label: Windows
- label: Linux
- label: macOS
- label: ChromeOS
- label: iOS
- label: Android
- label: Other/not relevant
- type: textarea
id: description

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 -->
@@ -23,10 +25,12 @@
### Concept <!-- ONLY for new icons -->
<!-- All of these requirements must be fulfilled. -->
<!-- IMPORTANT! Please read our official statement on brand logos in Lucide: -->
<!-- https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md -->
- [ ] I have provided valid use cases for each icon.
- [ ] I have not added any a brand or logo icon.
- [ ] I have [not added any brand or logo icon](https://github.com/lucide-icons/lucide/blob/main/BRAND_LOGOS_STATEMENT.md).
- [ ] I have not used any hate symbols.
- [ ] I have not included any religious or political imagery.
- [ ] I have not included any religious, war/violence related or political imagery.
### Author, credits & license<!-- ONLY for new icons. -->
<!-- Please choose one of the following, and put an "x" next to it. -->

View File

@@ -7,22 +7,24 @@ on:
paths:
- icons/**/*.svg
permissions:
id-token: write # Required for OIDC
contents: write
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: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -34,25 +36,19 @@ jobs:
id: latest-tag
run: echo "LATEST_TAG=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_OUTPUT
- name: Log latest tag
run: echo '${{ steps.latest-tag.outputs.LATEST_TAG }}'
- name: Check if we can patch
run: .github/workflows/version-up.sh --minor
run: pnpm semver $LATEST_TAG -i minor
env:
LATEST_TAG: ${{ steps.latest-tag.outputs.LATEST_TAG }}
- name: Create new version
id: new-version
run: echo "NEW_VERSION=$(.github/workflows/version-up.sh --minor)" >> $GITHUB_OUTPUT
- name: Create change log
id: change-log
run: |
CHANGE_LOG=$(pnpm run generate:changelog --old-tag=${{ steps.latest-tag.outputs.LATEST_TAG }})
CHANGE_LOG=$(tail -n +5 <<< $CHANGE_LOG)
echo $CHANGE_LOG
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64)
echo "CHANGE_LOG<<$EOF" >> $GITHUB_OUTPUT
echo "$CHANGE_LOG" >> $GITHUB_OUTPUT
echo "$EOF" >> $GITHUB_OUTPUT
run: echo "NEW_VERSION=$(pnpm semver $LATEST_TAG -i minor)" >> $GITHUB_OUTPUT
env:
GITHUB_API_KEY: ${{ secrets.GITHUB_TOKEN }}
LATEST_TAG: ${{ steps.latest-tag.outputs.LATEST_TAG }}
- name: Check output
run: |
@@ -63,8 +59,8 @@ 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
start-release:
if: github.repository == 'lucide-icons/lucide'

View File

@@ -0,0 +1,48 @@
name: Close Icon Requests with Brand Terms
on:
issues:
types: [opened]
jobs:
block_phrases:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Load stopwords from JSON & check issue title & body
if: contains(github.event.issue.labels.*.name, '🙌 icon request')
run: |
ISSUE_TITLE=$(jq -r '.issue.title' "$GITHUB_EVENT_PATH")
ISSUE_BODY=$(jq -r '.issue.body // ""' "$GITHUB_EVENT_PATH")
ICON_NAME_SECTION=$(printf '%s\n' "$ISSUE_BODY" | awk '/### Icon name/{flag=1; next} /^### /{flag=0} flag')
jq -r 'to_entries[] | "\(.key) \(.value)"' brand-stopwords.json | while read -r KEY VALUE; do
SAFE_KEY=$(printf '%s\n' "$KEY" | sed 's/[][\.^$*]/\\&/g')
SAFE_VALUE=$(printf '%s\n' "$VALUE" | sed 's/[][\.^$*]/\\&/g')
if echo "$ISSUE_TITLE" | grep -iqE "$SAFE_KEY|$SAFE_VALUE" || \
{ [ -n "$ICON_NAME_SECTION" ] && echo "$ICON_NAME_SECTION" | grep -iqE "$SAFE_KEY|$SAFE_VALUE"; }; then
gh issue close ${{ github.event.issue.number }} \
--reason "not_planned" \
--comment "It looks like this request is about **${VALUE}**, which is a brand logo.
Lucide **does not accept** brand logos, and we do not plan to add them in the future. This is due to a combination of **legal restrictions**, **design consistency concerns**, and **practical maintenance reasons**.
[Click here to read our official statement about brand logos in Lucide.](./BRAND_LOGOS_STATEMENT.md)
You can [search for similar issues.](https://github.com/lucide-icons/lucide/issues?q=is%3Aissue+${VALUE})
Were always happy to help on [Discord](https://discord.gg/EH6nSts)."
gh issue lock ${{ github.event.issue.number }} --reason spam
exit 0
fi
done
env:
GH_TOKEN: ${{ github.token }}

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

@@ -9,4 +9,5 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/labeler@v5

View File

@@ -1,22 +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: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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

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

@@ -0,0 +1,39 @@
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@v6
- uses: actions/setup-node@v6
with:
node-version-file: 'package.json'
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v46
with:
files: icons/*
- name: Generate annotations
run: node ./scripts/lintFilenames.mts
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@v6
- 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

@@ -11,14 +11,12 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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,14 +27,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- uses: actions/setup-node@v3.8.1
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -1,46 +1,42 @@
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:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v6
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version: 18
node-version-file: 'package.json'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm --filter lucide-vue build
run: pnpm --filter @lucide/astro build
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 8
- uses: actions/setup-node@v3.8.1
with:
node-version: 18
node-version-file: 'package.json'
cache: 'pnpm'
- name: Install dependencies
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
@@ -11,14 +10,12 @@ jobs:
lucide-font:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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,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

@@ -4,6 +4,7 @@ on:
pull_request:
paths:
- packages/lucide-preact/**
- packages/shared/**
- tools/build-icons/**
- tools/rollup-plugins/**
- pnpm-lock.yaml
@@ -12,14 +13,12 @@ jobs:
lucide-preact:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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

@@ -4,22 +4,37 @@ on:
pull_request:
paths:
- packages/lucide-react-native/**
- packages/shared/**
- tools/build-icons/**
- tools/rollup-plugins/**
- pnpm-lock.yaml
jobs:
lucide-react-native:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -4,6 +4,7 @@ on:
pull_request:
paths:
- packages/lucide-react/**
- packages/shared/**
- tools/build-icons/**
- tools/rollup-plugins/**
- scripts/generateNextJSAliases.mjs
@@ -13,14 +14,12 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -31,14 +30,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- uses: actions/setup-node@v3.8.1
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

24
.github/workflows/lucide-shared.yml vendored Normal file
View File

@@ -0,0 +1,24 @@
name: Lucide Shared Checks
on:
pull_request:
paths:
- packages/shared/**
- pnpm-lock.yaml
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Test
run: pnpm --filter lucide-react test

View File

@@ -4,6 +4,7 @@ on:
pull_request:
paths:
- packages/lucide-solid/**
- packages/shared/**
- tools/build-icons/**
- tools/rollup-plugins/**
- pnpm-lock.yaml
@@ -12,14 +13,12 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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,14 +29,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- uses: actions/setup-node@v3.8.1
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -11,14 +11,12 @@ jobs:
lucide-static:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
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@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
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

@@ -4,6 +4,7 @@ on:
pull_request:
paths:
- packages/lucide-svelte/**
- packages/shared/**
- tools/build-icons/**
- tools/rollup-plugins/**
- pnpm-lock.yaml
@@ -12,14 +13,12 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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,14 +29,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- uses: actions/setup-node@v3.8.1
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -4,6 +4,7 @@ on:
pull_request:
paths:
- packages/lucide-vue-next/**
- packages/shared/**
- tools/build-icons/**
- tools/rollup-plugins/**
- pnpm-lock.yaml
@@ -12,14 +13,12 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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,14 +29,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- uses: actions/setup-node@v3.8.1
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -12,14 +12,12 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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,14 +28,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- uses: actions/setup-node@v3.8.1
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile

View File

@@ -0,0 +1,46 @@
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@v6
- uses: actions/setup-node@v6
with:
node-version-file: 'package.json'
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v46
with:
files: icons/*.svg
- uses: actions/setup-node@v6
- name: Install svgson for code preview (safer and faster than installing all deps)
run: npm install svgson@5.3.1 --force
- name: Save PR number
run: |
mkdir -p ./pr
echo ${{ github.event.number }} > ./pr/NR
- name: Generate comment markup
run: node ./scripts/generateChangedIconsCommentMarkup.mts >> ./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

@@ -0,0 +1,37 @@
name: Pull request tags suggestions
on:
pull_request_target:
paths:
- 'icons/*.json'
jobs:
pull-request-tags-suggestions:
name: Pull Request Tags Suggestions
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
# We checkout the main branch of main repository for security reasons.
# This is to prevent the workflow from running on a forked repository.
- uses: actions/checkout@v6
with:
repository: lucide-icons/lucide
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Generate comment markup
run: node ./scripts/suggestTags.mts
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
PULL_REQUEST_NUMBER: ${{ github.event.number }}
COMMIT_SHA: ${{ github.event.pull_request.head.sha }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,115 +0,0 @@
name: Add Changed Icons comment
on:
pull_request_target:
paths:
- 'icons/*.svg'
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
- uses: pnpm/action-setup@v2
- name: Install simple-git (safer and faster than installing all deps)
run: pnpm 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
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
- uses: pnpm/action-setup@v2
- name: Install svgson for code preview (safer and faster than installing all deps)
run: pnpm 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

@@ -18,9 +18,13 @@ on:
description: Version
required: true
permissions:
id-token: write # Required for OIDC
contents: write
jobs:
pre-release:
if: github.repository == 'lucide-icons/lucide' && contains('["ericfennis", "karsa-mistmere"]', github.actor)
if: github.repository == 'lucide-icons/lucide' && contains('["ericfennis", "karsa-mistmere", "jguddas"]', github.actor)
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.get_version.outputs.VERSION }}
@@ -38,6 +42,9 @@ jobs:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
needs: pre-release
permissions:
id-token: write # Required for OIDC
contents: read
strategy:
fail-fast: false
matrix:
@@ -46,29 +53,25 @@ jobs:
'lucide',
'lucide-react',
'lucide-react-native',
'lucide-vue',
'lucide-vue-next',
'lucide-angular',
'lucide-preact',
'lucide-solid',
'lucide-svelte',
'@lucide/astro',
'@lucide/svelte',
]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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: Set Auth Token
run: npm config set //registry.npmjs.org/:_authToken ${{ inputs.NPM_TOKEN || secrets.NPM_TOKEN }}
- name: Set new version
run: pnpm --filter ${{ matrix.package }} version --new-version ${{ needs.pre-release.outputs.VERSION }} --no-git-tag-version
@@ -79,29 +82,30 @@ 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 # Required for OIDC
contents: read
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: actions/download-artifact@v4
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- 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: Set Auth Token
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
- name: Set new version
run: pnpm --filter lucide-static version --new-version ${{ needs.pre-release.outputs.VERSION }} --no-git-tag-version
@@ -113,20 +117,20 @@ 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'
runs-on: ubuntu-latest
needs: pre-release
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: actions/checkout@v6
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'pnpm'
node-version-file: 'package.json'
- name: Install dependencies
run: pnpm install --frozen-lockfile
@@ -138,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
@@ -147,17 +151,19 @@ jobs:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
needs: [pre-release, lucide-font]
permissions:
id-token: write # Required for OIDC
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
- uses: actions/checkout@v6
- 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: |

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

@@ -0,0 +1,33 @@
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@v6
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

@@ -1,284 +0,0 @@
#!/usr/bin/env bash
## Copyright (C) 2017, Oleksandr Kucherenko
## Last revisit: 2017-09-29
## get highest version tag for all branches
function highest_tag(){
local TAG=$(git describe --tags `git rev-list --tags --max-count=1`)
echo "$TAG"
}
## extract current branch name
function current_branch(){
## expected: heads/{branch_name}
## expected: {branch_name}
local BRANCH=$(git rev-parse --abbrev-ref HEAD | cut -d"/" -f2)
echo "$BRANCH"
}
## get latest/head commit hash number
function head_hash(){
local COMMIT_HASH=$(git rev-parse --verify HEAD)
echo "$COMMIT_HASH"
}
## extract tag commit hash code, tag name provided by argument
function tag_hash(){
local TAG_HASH=$(git log -1 --format=format:"%H" $1 2>/dev/null | tail -n1)
echo "$TAG_HASH"
}
## get latest revision number
function latest_revision(){
local REV=$(git rev-list --count HEAD 2>/dev/null)
echo "$REV"
}
## parse last found tag, extract it PARTS
function parse_last(){
local position=$(($1-1))
# two parts found only
local SUBS=( ${PARTS[$position]//-/ } )
#echo ${SUBS[@]}, size: ${#SUBS}
# found NUMBER
PARTS[$position]=${SUBS[0]}
#echo ${PARTS[@]}
# found SUFFIX
if [[ ${#SUBS} -ge 1 ]]; then
PARTS[4]=${SUBS[1],,} #lowercase
#echo ${PARTS[@]}, ${SUBS[@]}
fi
}
## increment REVISION part, don't touch STAGE
function increment_revision(){
PARTS[3]=$(( PARTS[3] + 1 ))
IS_DIRTY=1
}
## increment PATCH part, reset all other lower PARTS, don't touch STAGE
function increment_patch(){
PARTS[2]=$(( PARTS[2] + 1 ))
PARTS[3]=0
IS_DIRTY=1
}
## increment MINOR part, reset all other lower PARTS, don't touch STAGE
function increment_minor(){
PARTS[1]=$(( PARTS[1] + 1 ))
PARTS[2]=0
PARTS[3]=0
IS_DIRTY=1
}
## increment MAJOR part, reset all other lower PARTS, don't touch STAGE
function incremet_major(){
PARTS[0]="v$(( PARTS[0] + 1 ))"
PARTS[1]=0
PARTS[2]=0
PARTS[3]=0
IS_DIRTY=1
}
## increment the number only of last found PART: REVISION --> PATCH --> MINOR. don't touch STAGE
function increment_last_found(){
if [[ "${#PARTS[3]}" == 0 || "${PARTS[3]}" == "0" ]]; then
if [[ "${#PARTS[2]}" == 0 || "${PARTS[2]}" == "0" ]]; then
increment_minor
else
increment_patch
fi
else
increment_revision
fi
# stage part is not EMPTY
if [[ "${#PARTS[4]}" != 0 ]]; then
IS_SHIFT=1
fi
}
## compose version from PARTS
function compose(){
MAJOR="${PARTS[0]}"
MINOR=".${PARTS[1]}"
PATCH=".${PARTS[2]}"
REVISION=".${PARTS[3]}"
SUFFIX="-${PARTS[4]}"
if [[ "${#PATCH}" == 1 ]]; then # if empty {PATCH}
PATCH=""
fi
if [[ "${#REVISION}" == 1 ]]; then # if empty {REVISION}
REVISION=""
fi
if [[ "${PARTS[3]}" == "0" ]]; then # if revision is ZERO
REVISION=""
fi
# shrink patch and revision
if [[ -z "${REVISION// }" ]]; then
if [[ "${PARTS[2]}" == "0" ]]; then
PATCH=".0"
fi
else # revision is not EMPTY
if [[ "${#PATCH}" == 0 ]]; then
PATCH=".0"
fi
fi
# remove suffix if we don't have a alpha/beta/rc
if [[ "${#SUFFIX}" == 1 ]]; then
SUFFIX=""
fi
echo "${MAJOR}${MINOR}${PATCH}${REVISION}${SUFFIX}" #full format
}
# initial version used for repository without tags
INIT_VERSION=0.0.0.0-alpha
# do GIT data extracting
TAG=$(highest_tag)
REVISION=$(latest_revision)
BRANCH=$(current_branch)
TAG_HASH=$(tag_hash $TAG)
HEAD_HASH=$(head_hash)
# if tag and branch commit hashes are different, than print info about that
#echo $HEAD_HASH vs $TAG_HASH
if [[ "$@" == "" ]]; then
if [[ "$TAG_HASH" == "$HEAD_HASH" ]]; then
echo "Tag $TAG and HEAD are aligned. We will stay on the TAG version."
echo ""
NO_ARGS_VALUE='--stay'
else
PATTERN="^[0-9]+.[0-9]+(.[0-9]+)*(-(alpha|beta|rc))*$"
if [[ "$BRANCH" =~ $PATTERN ]]; then
echo "Detected version branch '$BRANCH'. We will auto-increment the last version PART."
echo ""
NO_ARGS_VALUE='--default'
else
echo "Detected branch name '$BRANCH' than does not match version pattern. We will increase MINOR."
echo ""
NO_ARGS_VALUE='--minor'
fi
fi
fi
#
# {MAJOR}.{MINOR}[.{PATCH}[.{REVISION}][-(.*)]
#
# Suffix: alpha, beta, rc
# No Suffix --> {NEW_VERSION}-alpha
# alpha --> beta
# beta --> rc
# rc --> {VERSION}
#
PARTS=( ${TAG//./ } )
parse_last ${#PARTS[@]} # array size as argument
#echo ${PARTS[@]}
# if no parameters than emulate --default parameter
if [[ "$@" == "" ]]; then
set -- $NO_ARGS_VALUE
fi
# parse input parameters
for i in "$@"
do
key="$i"
case $key in
-a|--alpha) # switched to ALPHA
PARTS[4]="alpha"
IS_SHIFT=1
;;
-b|--beta) # switched to BETA
PARTS[4]="beta"
IS_SHIFT=1
;;
-c|--release-candidate) # switched to RC
PARTS[4]="rc"
IS_SHIFT=1
;;
-r|--release) # switched to RELEASE
PARTS[4]=""
IS_SHIFT=1
;;
-p|--patch) # increment of PATCH
increment_patch
;;
-e|--revision) # increment of REVISION
increment_revision
;;
-g|--git-revision) # use git revision number as a revision part§
PARTS[3]=$(( REVISION ))
IS_DIRTY=1
;;
-i|--minor) # increment of MINOR by default
increment_minor
;;
--default) # stay on the same stage, but increment only last found PART of version code
increment_last_found
;;
-m|--major) # increment of MAJOR
incremet_major
;;
-s|--stay) # extract version info
IS_DIRTY=1
NO_APPLY_MSG=1
;;
-t|--tag-only) # extract version info
TAG_ONLY=1
;;
--apply)
DO_APPLY=1
;;
-h|--help)
help
;;
esac
shift
done
# detected shift, but no increment
if [[ "$IS_SHIFT" == "1" ]]; then
# temporary disable stage shift
stage=${PARTS[4]}
PARTS[4]=''
# detect first run on repository, INIT_VERSION was used
if [[ "$(compose)" == "0.0" ]]; then
increment_minor
fi
PARTS[4]=$stage
fi
# no increment applied yet and no shift of state, do minor increase
if [[ "$IS_DIRTY$IS_SHIFT" == "" ]]; then
increment_minor
fi
compose
# is proposed tag in conflict with any other TAG
PROPOSED_HASH=$(tag_hash $(compose))
if [[ "${#PROPOSED_HASH}" -gt 0 && "$NO_APPLY_MSG" == "" ]]; then
echo -e "\033[31mERROR:\033[0m "
echo -e "\033[31mERROR:\033[0m Found conflict with existing tag \033[32m$(compose)\033[0m / $PROPOSED_HASH"
echo -e "\033[31mERROR:\033[0m Only manual resolving is possible now."
echo -e "\033[31mERROR:\033[0m "
echo -e "\033[31mERROR:\033[0m To Resolve try to add --revision or --patch modifier."
echo -e "\033[31mERROR:\033[0m "
echo ""
exit 1
fi

10
.gitignore vendored
View File

@@ -4,6 +4,7 @@
.obsidian
.now
.idea
.env
node_modules
dist
build
@@ -16,11 +17,17 @@ outlined
packages/**/src/icons/*.js
packages/**/src/icons/*.ts
packages/**/src/icons/*.tsx
packages/**/src/aliases/*.ts
packages/**/src/aliases.ts
!packages/**/src/aliases/index.ts
packages/**/src/dynamicIconImports.ts
packages/**/DynamicIcon.d.ts
packages/**/dynamicIconImports.js
packages/**/dynamicIconImports.d.ts
packages/**/dynamicIconImports.js.map
packages/**/dynamic.d.ts
packages/**/dynamic.mjs.map
packages/**/dynamic.mjs
packages/**/LICENSE
categories.json
tags.json
@@ -34,7 +41,10 @@ docs/.vitepress/data/iconNodes
docs/.vitepress/data/iconMetaData.ts
docs/.vitepress/data/releaseMetaData.json
docs/.vitepress/data/releaseMetaData
docs/.vitepress/data/categoriesData.json
docs/.vitepress/data/iconDetails
docs/.vitepress/data/relatedIcons.json
docs/.vitepress/data/brandStopwords.json
docs/.vercel
docs/.nitro
.gitignore

1
.npmrc
View File

@@ -1 +0,0 @@
auto-install-peers=true

View File

@@ -2,6 +2,10 @@ pnpm-lock.yaml
# docs examples
docs/**/examples/
docs/.vitepress/.temp
docs/.vitepress/cache
docs/.vitepress/data
docs/.nitro
# lucide-angular
packages/lucide-angular/.angular/cache

View File

@@ -1,4 +1,5 @@
{
"$schema": "https://raw.githubusercontent.com/Yash-Singh1/vscode-snippets-json-schema/main/schema.json",
"Lucide SVG": {
"scope": "xml",
"description": "Base SVG with Lucide attributes.",
@@ -51,6 +52,16 @@
],
"body": "<circle cx=\"${2:12}\" cy=\"${3:$2}\" r=\"${1|10,2,.5\" fill=\"currentColor|}\" />"
},
"Squircle": {
"scope": "xml",
"description": "SVG `path` with Lucide defaults.",
"prefix": [
"squircle",
"path",
"<path"
],
"body": "<path d=\"M12 3c7.2 0 9 1.8 9 9s-1.8 9-9 9-9-1.8-9-9 1.8-9 9-9\" />"
},
"Ellipse": {
"scope": "xml",
"description": "SVG `ellipse`.",

71
BRAND_LOGOS_STATEMENT.md Normal file
View File

@@ -0,0 +1,71 @@
# Our Official Stance on Including Brand Logos in Lucide
## TL;DR
Lucide **does not accept** brand logos, and we do not plan to add them in the future.
This is due to a combination of **legal restrictions**, **design consistency concerns**, and **practical maintenance reasons**.
If you need brand logos, we recommend [Simple Icons](https://simpleicons.org/), which provides an extensive, legally safer collection of brand marks.
---
## 1. Historical Context
This is not a new debate — other icon sets have gone through the same discussion:
- **Material Design Icons** [deprecated all brand icons](https://github.com/Templarian/MaterialDesign/issues/6602) because they didn't fit the style, didn't work well in one color, and often looked out of place in a 24×24px grid.
- **Feather Icons** [came to the same conclusion](https://github.com/feathericons/feather/issues/763): brand logos have their own style, and forcing them into another inevitably leads to aesthetic compromises.
- **Lucide** learned from these examples — we'd rather focus on making a consistent set of non-brand icons that all work together.
## 2. Legal Considerations
Most brand logos:
- Are **protected by trademark or copyright**.
- Have **strict rules** for how they can be used (colors, spacing, proportions, etc.).
- **Don't allow modification** — but we'd have to change them to fit Lucide's style.
This means adding them could:
1. Break copyright or trademark law.
2. Make both you and the Lucide project legally responsible.
3. Force us to review every new request one by one for legal issues — something we simply can't do.
> **Note:** Simple Icons avoids this by keeping logos exactly as the brand provides them — though even they sometimes face [legal challenges](https://github.com/simple-icons/simple-icons/issues/11236).
## 3. Design & Consistency
Lucide is all about **visual consistency**.
Adding brand logos would:
- Break [our own design rules](https://lucide.dev/guide/design/icon-design-guide#icon-design-principles) for shapes, proportions, and stroke.
- Mix two fundamentally different categories of graphics (pictograms vs. corporate logos).
- Create a library where a subset of icons will always look "out of place".
If the logos are not in Lucide's style, why include them in Lucide at all? Better to use them from a dedicated brand icon source.
## 4. Maintenance Burden
Even with our current **"no brand icon requests"** policy, people still request them regularly.
Having any brand icons in the set:
- Makes people think we might add more in the future.
- Leads to repeated requests and the same conversations over and over.
- Wastes maintainer time redirecting people to the same explanation.
Removing them entirely solves this problem.
## 5. Recommended Alternatives
If you need brand icons, try:
- [Simple Icons](https://simpleicons.org/): offers a huge range of brands, in consistent SVG format, using a 24×24 viewBox, the same as ours.
- Official brand asset pages: most major companies provide downloadable SVGs.
You can use these alongside Lucide without bloating our core library.
## Final Words
Lucide is an **icon** set, not a **logo** set.
Logos belong in dedicated logo resources.
We're focusing on what Lucide does best: providing a clean, cohesive, and legally safe collection of open-source icons.

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,24 +27,30 @@ Please make sure you follow the icon guidelines, that should be followed to keep
Read it here: [ICON_GUIDELINES](https://lucide.dev/docs/icon-design-guide).
### Editor guides
#### Lucide Studio
For formatting and adjusting SVG icons, [@jguddas](https://github.com/jguddas) made a great tool called [Lucide Studio](https://studio.lucide.dev/). It is a web-based SVG editor that allows you to edit and adjust icons in the Lucide style. You can use it to create new icons or modify existing ones.
#### Editor guides
Here you can find instructions on how to implement the guidelines with different vector graphics editors:
#### [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)
### Submitting Multiple Icons
##### [Affinity Designer Guide](https://lucide.dev/guide/design/affinity-designer-guide)
If you want submit multiple icons, please separate the icons and group them. That makes reviewing the icons easier and keep the thread clean and scoped.
So don't submit multiple icons in one PR that have noting to do with each other.
#### Submitting Multiple Icons
If you want to submit multiple icons, please separate the icons and group them. That makes reviewing the icons easier and keeps the thread clean and scoped.
So don't submit multiple icons in one PR that have nothing to do with each other.
So for example don't create one PR with icons: `arrow-up`, `bicycle`, `arrow-down`.
Seperate them by two PRs; 'pr-01' `arrow`, `arrow-down` and 'pr-02' `bicycle`.
Separate them into two PRs; 'pr-01' `arrow`, `arrow-down` and 'pr-02' `bicycle`.
## Icon Requests
@@ -70,12 +76,12 @@ pnpm install # Install dependencies, including the workspace packages
### Packages -> PNPM Workspaces
To distribute different packages we use PNPM workspaces. Before you start make sure you are familiar with this concept. The concept of working in workspaces is created by Yarn, they have a well written introduction: [yarn workspaces](https://classic.yarnpkg.com/lang/enhttps://lucide.dev/docs/workspaces).
To distribute different packages we use [PNPM workspaces](https://pnpm.io/workspaces). Before you start make sure you are familiar with this concept. The concept of working in workspaces is created by Yarn, they have a well written introduction: [yarn workspaces](https://classic.yarnpkg.com/en/docs/workspaces).
The configured directory for workspaces is the [packages](https://github.com/lucide-icons/lucide/tree/main/packages) directory, located in the root directory. There you will find all the current packages from lucide.
There are more workspaces defined, see [`pnpm-workspace.yaml`](https://github.com/lucide-icons/lucide/blob/main/pnpm-workspace.yaml).
> Note: One package is not managed by pnpm: **lucide-flutter**, this package is written in Dart and used pub for publishing.
> Note: One package is not managed by pnpm: **lucide-flutter**, this package is written in Dart and uses pub for publishing.
### Generated Code
@@ -125,7 +131,7 @@ When adding new features to for example the icon component for a framework. It i
### Local Testing
To test changes in a local project, you can use `yarn link`, `npm link` or `pnpm link` to link the package. Before you do this make sure you builded the package first.
To test changes in a local project, you can use `yarn link`, `npm link`, `bun link` or `pnpm link` to link the package. Before you do this make sure you've built the package first.
```sh
# in packages/lucide-react
@@ -155,6 +161,30 @@ lucide
The lucide.dev website is using [vitepress](https://vitepress.dev/) to generate the static website. The markdown files are located in the docs directory.
#### Running the Docs Website Locally
To test the docs website locally, follow these steps:
1. **Navigate to the docs directory**
```sh
cd docs
```
2. **Start the Local Development Server**
```sh
pnpm run docs:dev
```
3. **Open the Website Locally**
Vitepress should open with the following format:
VitePress dev server is running at:
- **Local**: `http://localhost:3000/`
- **Network**: `http://192.168.x.x:3000/`
### Guides
Detailed documentation about: installation, guides, packages, design guides etc.
@@ -163,15 +193,13 @@ Detailed documentation about: installation, guides, packages, design guides etc.
All the icons of lucide in SVG format. These will be used as source for all the packages and other distributions for the lucide icons.
### packages
### Packages
Includes all the (npm) packages of lucide.
> Note: One package is not managed by pnpm: **lucide-flutter**, this package is written in Dart and used pub for publishing.
### Scripts
### scripts
Includes usefully scripts to automate certain jobs. Big part of the scripts is the template generation, for example it generates icon components for all the packages. These scripts are usually executed from the "scripts" section in the package.json.
Includes useful scripts to automate certain jobs. Big part of the scripts is the template generation, for example it generates icon components for all the packages. These scripts are usually executed from the "scripts" section in the package.json.
## Documentation
@@ -188,4 +216,4 @@ If you need any help or have problems with you contribution. Please don't hesita
Thank you to all the people who already contributed to Lucide!
<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>

26
LICENSE
View File

@@ -1,6 +1,6 @@
ISC License
Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2022.
Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2023 as part of Feather (MIT). All other copyright (c) for Lucide are held by Lucide Contributors 2025.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -13,3 +13,27 @@ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
---
The MIT License (MIT) (for portions derived from Feather)
Copyright (c) 2013-2023 Cole Bemis
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

276
README.md
View File

@@ -8,185 +8,40 @@
</p>
<p align="center">
<a href="https://github.com/lucide-icons/lucide/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/lucide" alt="license"></a>
<a href="https://www.npmjs.com/package/lucide"><img src="https://img.shields.io/npm/v/lucide" alt="npm package"></a>
<a href="https://www.figma.com/community/plugin/939567362549682242/Lucide-Icons"><img src="https://img.shields.io/endpoint?logo=figma&label=installs&url=https://yuanqing.github.io/figma-plugins-stats/plugin/939567362549682242/installs.json" alt="figma installs"></a>
<a href="https://www.figma.com/community/plugin/939567362549682242/Lucide-Icons"><img src="https://img.shields.io/badge/Figma-F24E1E?logo=figma&logoColor=white" alt="figma installs"></a>
<a href="https://github.com/lucide-icons/lucide/actions/workflows/release.yml"><img src="https://github.com/lucide-icons/lucide/actions/workflows/release.yml/badge.svg" alt="build status"></a>
<a href="https://discord.gg/EH6nSts"><img src="https://img.shields.io/discord/723074157486800936?label=chat&logo=discord&logoColor=%23ffffff&colorB=%237289DA" alt="discord chat"></a>
</p>
<p align="center">
<a href="https://lucide.dev/icons/">Icons</a>
·
<a href="https://lucide.dev/guide/">Guide</a>
·
<a href="https://lucide.dev/packages">Packages</a>
·
<a href="https://lucide.dev/license">License</a>
·
<a href="https://lucide.dev/showcase">Showcase</a>
</p>
# Lucide
Community-run fork of [Feather Icons](https://github.com/feathericons/feather), open for anyone to contribute icons.
Lucide is an open-source icon library that provides 1000+ vector (svg) files for displaying icons and symbols in digital and non-digital projects. The library aims to make it easier for designers and developers to incorporate icons into their projects by providing several official [packages](https://lucide.dev/packages) to make it easier to use these icons in your project.
It began after growing dissatisfaction with the [Feather Icons](https://github.com/feathericons/feather) project moderation. With over 300+ open issues and over 100+ open PRs, the Feather Icons project has been abandoned. This unfortunately means that hundreds of developers and designers wasted their time contributing to Feather Icons with no chance of PRs being accepted.
## Packages
Lucide is trying to expand the icon set as much as possible while staying faithful to the original simplistic design language. We do this as a community of devs and designers and hope that you'll join us!
### Why choose Lucide over Feather Icons
- More icons to work with: Lucide already has hundreds of icons more than Feather does.
- Official libraries and integrations with popular frameworks and design tools.
- Well maintained code base.
- Active community, regularly growing and improving the set.
## Table of Contents
- [Usage](#usage)
- [Web](#web)
- [React](#react)
- [React Native](#react-native)
- [Vue 2](#vue-2)
- [Vue 3](#vue-3)
- [Angular](#angular)
- [Preact](#preact)
- [Static (svg sprite, font, icons ..)](#static-svg-sprite-font-icons-)
- [Figma](#figma)
- [Laravel](#laravel)
- [Svelte](#svelte)
- [Solid](#solid)
- [Hyva](#hyva)
- [Eleventy](#eleventy)
- [Contributing](#contributing)
- [Community](#community)
- [License](#license)
- [Credits](#credits)
- [Sponsors](#sponsors)
## Usage
At its core, Lucide is a collection of [SVG](https://svgontheweb.com/#svg) files. This means that you can use Lucide icons in all the same ways you can use SVGs (e.g. `img`, `background-image`, `inline`, `object`, `embed`, `iframe`). Here's a helpful article detailing the many ways SVGs can be used on the web: [SVG on the Web Implementation Options](https://svgontheweb.com/#implementation)
The following are additional ways you can use Lucide.
With the Javascript library you can easily incorporate the icon you want in your webpage.
### Web
Implementation of the lucide icon library for web applications.
```sh
npm install lucide
```
or
```sh
yarn add lucide
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide#lucide).
### React
Implementation of the lucide icon library for react applications.
```sh
yarn add lucide-react
```
or
```sh
npm install lucide-react
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-react#lucide-react).
### React Native
Implementation of the lucide icon library for React Native applications.
```sh
yarn add lucide-react-native
```
or
```sh
npm install lucide-react-native
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-react-native#lucide-react-native).
### Vue 2
Implementation of the lucide icon library for vue applications.
```sh
yarn add lucide-vue
```
or
```sh
npm install lucide-vue
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-vue#lucide-vue).
### Vue 3
Implementation of the lucide icon library for vue applications.
```sh
yarn add lucide-vue-next
```
or
```sh
npm install lucide-vue-next
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-vue-next#lucide-vue-next).
### Angular
```sh
yarn add lucide-angular
```
or
```sh
npm install lucide-angular
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-angular#lucide-angular).
### Preact
Implementation of the lucide icon library for preact applications.
```sh
yarn add lucide-preact
```
or
```sh
npm install lucide-preact
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-preact#lucide-preact).
### Static (svg sprite, font, icons ..)
Assets:
[Font Files](https://github.com/lucide-icons/lucide/releases/latest)
[SVG Files](https://github.com/lucide-icons/lucide/releases/latest)
[SVG Sprite](https://cdn.jsdelivr.net/npm/lucide-static@latest/sprite.svg)
NPM package
```sh
yarn add lucide-static
```
or
```sh
npm install lucide-static
```
| Logo | Package | Version | Downloads | Links |
| ---- | ------- | ------- | --------- | ----- |
| <img src="https://lucide.dev/framework-logos/js.svg" alt="JS logo" width="48"> | **`lucide`** | [![npm](https://img.shields.io/npm/v/lucide)](https://www.npmjs.com/package/lucide) | ![NPM Downloads](https://img.shields.io/npm/dw/lucide) | [Docs](https://lucide.dev/guide/packages/lucide) · [Source](./packages/lucide) |
| <img src="https://lucide.dev/framework-logos/react.svg" alt="React logo" width="48"> | **`lucide-react`** | [![npm](https://img.shields.io/npm/v/lucide-react)](https://www.npmjs.com/package/lucide-react) | ![NPM Downloads](https://img.shields.io/npm/dw/lucide-react) | [Docs](https://lucide.dev/guide/packages/lucide-react) · [Source](./packages/lucide-react) |
| <img src="https://lucide.dev/framework-logos/vue.svg" alt="Vue logo" width="48"> | **`lucide-vue-next`** | [![npm](https://img.shields.io/npm/v/lucide-vue-next)](https://www.npmjs.com/package/lucide-vue-next) | ![NPM Downloads](https://img.shields.io/npm/dw/lucide-vue-next) | [Docs](https://lucide.dev/guide/packages/lucide-vue-next) · [Source](./packages/lucide-vue-next) |
| <img src="https://lucide.dev/framework-logos/svelte.svg" alt="Svelte logo" width="48"> | **`lucide-svelte`** | [![npm](https://img.shields.io/npm/v/lucide-svelte)](https://www.npmjs.com/package/lucide-svelte) | ![NPM Downloads](https://img.shields.io/npm/dw/lucide-svelte) | [Docs](https://lucide.dev/guide/packages/lucide-svelte) · [Source](./packages/lucide-svelte) |
| <img src="https://lucide.dev/framework-logos/solid.svg" alt="Solid logo" width="48"> | **`lucide-solid`** | [![npm](https://img.shields.io/npm/v/lucide-solid)](https://www.npmjs.com/package/lucide-solid) | ![NPM Downloads](https://img.shields.io/npm/dw/lucide-solid) | [Docs](https://lucide.dev/guide/packages/lucide-solid) · [Source](./packages/lucide-solid) |
| <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
@@ -196,88 +51,34 @@ Visit [Figma community page](https://www.figma.com/community/plugin/939567362549
<img width="420" src="https://www.figma.com/community/plugin/939567362549682242/thumbnail" alt="Figma Lucide Cover">
### Laravel
Implementation of Lucide icon's using `blade-icons` for Laravel based projects.
```sh
composer require mallardduck/blade-lucide-icons
```
For more details, see the [documentation](https://github.com/mallardduck/blade-lucide-icons/blob/main/README.md).
### Svelte
Implementation of the lucide icon library for Svelte applications.
```sh
yarn add lucide-svelte
```
or
```sh
npm install lucide-svelte
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-svelte#lucide-svelte).
### Solid
Implementation of the lucide icon library for solid applications.
```sh
yarn add lucide-solid
```
or
```sh
npm install lucide-solid
```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-solid#lucide-solid).
### Hyva
Implementation of Lucide icon's using Hyvä's svg php viewmodal to render icons for Magento 2 Hyva theme based projects.
```sh
composer require siteation/magento2-hyva-icons-lucide
```
For more details, see the [documentation](https://github.com/Siteation/magento2-hyva-icons-lucide/blob/main/README.md).
### Eleventy
Using this plugin, Eleventy projects can incorporate Lucide icons. it makes it simple to use Lucide icons into your themes via shortcodes, improving your website's overall usability and visual appeal.
```sh
npm install @grimlink/eleventy-plugin-lucide-icons
```
For more details, see the [documentation](https://github.com/GrimLink/eleventy-plugin-lucide-icons/blob/main/README.md).
## Contributing
For more info on how to contribute please see the [contribution guidelines](https://github.com/lucide-icons/lucide/blob/main/CONTRIBUTING.md).
Caught a mistake or want to contribute to the documentation? [Edit this page on Github](https://github.com/lucide-icons/lucide/blob/main/README.md)
## About brand logos
Lucide **does not accept** brand logos, and we do not plan to add them in the future. This is due to a combination of **legal restrictions**, **design consistency concerns**, and **practical maintenance reasons**.
[Click here to read our official statement about brand logos in Lucide.](./BRAND_LOGOS_STATEMENT.md)
## Community
Join the community on our [Discord](https://discord.gg/EH6nSts) server!
## License
Lucide is totally free for commercial use and personally use, this software is licensed under the [ISC License](https://github.com/lucide-icons/lucide/blob/main/LICENSE).
Lucide is totally free for commercial use and personal use, this software is licensed under the [ISC License](https://github.com/lucide-icons/lucide/blob/main/LICENSE).
## Credits
Thank you to all the people who contributed to Lucide!
<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
@@ -287,6 +88,7 @@ Thank you to all the people who contributed to Lucide!
<a href="https://www.digitalocean.com/?refcode=b0877a2caebd&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="docs/public/digitalocean.svg" width="200" alt="DigitalOcean Referral Badge" /></a>
### Awesome backer 🍺
### Awesome backers 🍺
<a href="https://www.scipress.io?utm_source=lucide"><img src="docs/public/sponsors/scipress.svg" width="180" alt="Scipress sponsor badge" /></a>
<a href="https://github.com/pdfme/pdfme"><img src="docs/public/sponsors/pdfme.svg" width="180" alt="pdfme sponsor badge" /></a>
<a href="https://www.fina.money/"><img src="docs/public/sponsors/fina-money.png" width="180" alt="Fina Money sponsor badge" /></a>

149
brand-stopwords.json Normal file
View File

@@ -0,0 +1,149 @@
{
"adobe": "Adobe",
"airplay": "AirPlay",
"amazon": "Amazon",
"angular": "Angular",
"aws": "AWS",
"azure": "Azure",
"bandcamp": "Bandcamp",
"behance": "Behance",
"bitbucket": "Bitbucket",
"blender": "Blender",
"bluesky": "BlueSky",
"bootstrap": "Bootstrap",
"brave": "Brave",
"chakra": "Chakra UI",
"chrome": "Chrome",
"codepen": "Codepen",
"codesandbox": "CodeSandbox",
"csharp": "C#",
"cypress": "Cypress",
"dart": "Dart",
"deezer": "Deezer",
"deno": "Deno",
"discord": "Discord",
"docker": "Docker",
"dribbble": "Dribbble",
"dropbox": "Dropbox",
"edge": "Edge",
"ember": "Ember",
"epic": "Epic Games",
"erlang": "Erlang",
"esbuild": "esbuild",
"eslint": "ESLint",
"facebook": "Facebook",
"figjam": "FigJam",
"figma": "Figma",
"firebase": "Firebase",
"firefox": "Firefox",
"framer": "Framer",
"gatsby": "Gatsby",
"gcp": "Google Cloud",
"github": "GitHub",
"gitlab": "GitLab",
"golang": "GoLang",
"google": "Google",
"gmail": "Gmail",
"gravatar": "Gravatar",
"haskell": "Haskell",
"instagram": "Instagram",
"java": "Java",
"javascript": "JavaScript",
"jest": "Jest",
"jira": "Jira",
"kotlin": "Kotlin",
"kubernetes": "Kubernetes",
"less": "Less",
"leetcode": "LeetCode",
"leet-code": "LeetCode",
"line": "LINE",
"linkedin": "LinkedIn",
"lua": "Lua",
"mariadb": "MariaDB",
"mcp": "MCP",
"messenger": "Messenger",
"microsoft": "Microsoft",
"mongodb": "MongoDB",
"mui": "Material UI",
"mysql": "MySQL",
"nestjs": "NestJS",
"netflix": "Netflix",
"netlify": "Netlify",
"next": "Next.js",
"nodejs": "Node.js",
"notion": "Notion",
"nostr": "Nostr",
"npm": "npm",
"nuxt": "Nuxt",
"opera": "Opera",
"oracle": "Oracle",
"patreon": "Patreon",
"paypal": "PayPal",
"perl": "Perl",
"php": "PHP",
"pinterest": "Pinterest",
"pix": "PiX",
"playstation": "PlayStation",
"playwright": "Playwright",
"pnpm": "pnpm",
"postcss": "PostCSS",
"postgresql": "PostgreSQL",
"prettier": "Prettier",
"prisma": "Prisma",
"python": "Python",
"qwik": "Qwik",
"react": "React",
"reddit": "Reddit",
"redis": "Redis",
"rollup": "Rollup",
"rust": "Rust",
"safari": "Safari",
"sass": "Sass",
"scala": "Scala",
"scss": "Sass",
"semantic": "Semantic UI",
"shopify": "Shopify",
"skype": "Skype",
"slack": "Slack",
"solid": "SolidJS",
"soundcloud": "SoundCloud",
"spotify": "Spotify",
"sqlite": "SQLite",
"squarespace": "Squarespace",
"steam": "Steam",
"stripe": "Stripe",
"substack": "Substack",
"supabase": "Supabase",
"surge": "Surge",
"svelte": "Svelte",
"swift": "Swift",
"tailwind": "Tailwind CSS",
"telegram": "Telegram",
"terraform": "Terraform",
"tesla": "Tesla",
"tidal": "Tidal",
"tiktok": "TikTok",
"trello": "Trello",
"twitch": "Twitch",
"twitter": "Twitter",
"typescript": "TypeScript",
"unity": "Unity",
"unreal": "Unreal Engine",
"vercel": "Vercel",
"vimeo": "Vimeo",
"vite": "Vite",
"vitest": "Vitest",
"vue": "Vue",
"webpack": "Webpack",
"wechat": "WeChat",
"whatsapp": "WhatsApp",
"windows": "Windows",
"wix": "Wix",
"x.com": "X.com",
"x-social": "X.com",
"xbox": "Xbox",
"yarn": "Yarn",
"youtube": "YouTube",
"zig": "Zig",
"zoom": "Zoom"
}

View File

@@ -1,5 +1,5 @@
{
"$schema": "../category.schema.json",
"title": "Charts",
"icon": "pie-chart"
"icon": "chart-pie"
}

View File

@@ -1,5 +0,0 @@
{
"$schema": "../category.schema.json",
"title": "Currency",
"icon": "dollar-sign"
}

View File

@@ -1,5 +1,5 @@
{
"$schema": "../category.schema.json",
"title": "Money",
"title": "Finance",
"icon": "piggy-bank"
}

View File

@@ -1,5 +0,0 @@
{
"$schema": "../category.schema.json",
"title": "Furniture",
"icon": "rocking-chair"
}

View File

@@ -1,5 +1,5 @@
{
"$schema": "../category.schema.json",
"title": "Home",
"icon": "home"
"icon": "house"
}

View File

@@ -1,5 +0,0 @@
{
"$schema": "../category.schema.json",
"title": "Maps",
"icon": "map"
}

View File

@@ -1,5 +1,5 @@
{
"$schema": "../category.schema.json",
"title": "Maths",
"title": "Mathematics",
"icon": "divide"
}

View File

@@ -1,5 +1,5 @@
{
"$schema": "../category.schema.json",
"title": "Navigation",
"title": "Navigation, Maps, and POIs",
"icon": "compass"
}

View File

@@ -1,5 +1,5 @@
{
"$schema": "../category.schema.json",
"title": "Notifications",
"title": "Notification",
"icon": "triangle-alert"
}

View File

@@ -1,4 +1,3 @@
import { eventHandler, setResponseHeader } from 'h3';
import iconMetaData from '../../data/iconMetaData';
export default eventHandler((event) => {

View File

@@ -0,0 +1,40 @@
import iconNodes from '../../data/iconNodes/index.ts';
import { IconNodeWithKeys } from '../../theme/types';
import iconMetaData from '../../data/iconMetaData';
import releaseMeta from '../../data/releaseMetaData.json';
import categories from '../../data/categoriesData.json';
const dataResponse = {
icons: Object.entries(iconNodes).reduce((acc, [name, iconNode]) => {
const newIconNode = (iconNode as IconNodeWithKeys).map(([name, { key, ...attrs }]) => {
return [name, attrs];
});
acc[name] = {
iconNode: newIconNode,
aliases: (iconMetaData[name]?.aliases ?? []).map((alias) =>
typeof alias === 'string' ? alias : alias.name,
),
tags: iconMetaData[name].tags ?? [],
categories: iconMetaData[name].categories ?? [],
...releaseMeta[name],
};
return acc;
}, {}),
aliases: Object.entries(iconNodes).reduce((acc, [name]) => {
for (const alias of iconMetaData[name]?.aliases ?? []) {
acc[typeof alias === 'string' ? alias : alias.name] = name;
}
return acc;
}, {}),
categories,
};
export default eventHandler((event) => {
setResponseHeader(event, 'Cache-Control', 'public, max-age=86400');
setResponseHeader(event, 'Access-Control-Allow-Origin', '*');
return dataResponse;
});

View File

@@ -13,7 +13,12 @@ export default eventHandler((event) => {
const data = pathData.at(-1).slice(0, -4);
const [name] = pathData;
const src = Buffer.from(data, 'base64').toString('utf8');
const src = Buffer.from(data, 'base64').toString('utf8').replaceAll('\n', '');
const width = parseInt((src.includes('<svg ') ? src.match(/width="(\d+)"/)?.[1] : null) ?? '24');
const height = parseInt(
(src.includes('<svg ') ? src.match(/height="(\d+)"/)?.[1] : null) ?? '24',
);
const children = [];
@@ -25,25 +30,36 @@ export default eventHandler((event) => {
.map((_, idx, arr) => arr.slice(0, idx + 1).join('-'))
.reverse()
.find((groupName) => groupName in iconNodes);
if (backdropName) {
if (!(name in iconNodes) && backdropName) {
const iconNode = iconNodes[backdropName];
const LucideIcon = createLucideIcon(backdropName, iconNode);
const svg = renderToStaticMarkup(createElement(LucideIcon));
const backdropString = svg.replace(/<svg[^>]*>|<\/svg>/g, '');
const backdropString = svg.replaceAll('\n', '').replace(/<svg[^>]*>|<\/svg>/g, '');
children.push(
createElement(Backdrop, {
backdropString,
src,
color: name in iconNodes ? 'red' : '#777',
src: src.replace(/<svg[^>]*>|<\/svg>/g, ''),
color: '#777',
}),
);
}
const svg = Buffer.from(
// We can't use jsx here, is not supported here by nitro.
renderToString(createElement(SvgPreview, { src, showGrid: true }, children)),
renderToString(
createElement(
SvgPreview,
{
src: src.replace(/<svg[^>]*>|<\/svg>/g, ''),
height,
width,
showGrid: true,
},
children,
),
),
).toString('utf8');
defaultContentType(event, 'image/svg+xml');

View File

@@ -0,0 +1,46 @@
import { eventHandler, setResponseHeader, defaultContentType } from 'h3';
import { renderToString, renderToStaticMarkup } from 'react-dom/server';
import { createElement } from 'react';
import Diff from '../../../lib/SvgPreview/Diff.tsx';
import iconNodes from '../../../data/iconNodes';
import createLucideIcon from 'lucide-react/src/createLucideIcon';
export default eventHandler((event) => {
const { params } = event.context;
const pathData = params.data.split('/');
const data = pathData.at(-1).slice(0, -4);
const [name] = pathData;
const newSrc = Buffer.from(data, 'base64')
.toString('utf8')
.replaceAll('\n', '')
.replace(/<svg[^>]*>|<\/svg>/g, '');
const width = parseInt(
(newSrc.includes('<svg ') ? newSrc.match(/width="(\d+)"/)?.[1] : null) ?? '24',
);
const height = parseInt(
(newSrc.includes('<svg ') ? newSrc.match(/height="(\d+)"/)?.[1] : null) ?? '24',
);
const children = [];
const oldSrc = iconNodes[name]
? renderToStaticMarkup(createElement(createLucideIcon(name, iconNodes[name])))
.replaceAll('\n', '')
.replace(/<svg[^>]*>|<\/svg>/g, '')
: '';
const svg = Buffer.from(
// We can't use jsx here, is not supported here by nitro.
renderToString(
createElement(Diff, { oldSrc, newSrc, showGrid: true, height, width }, children),
),
).toString('utf8');
defaultContentType(event, 'image/svg+xml');
setResponseHeader(event, 'Cache-Control', 'public,max-age=31536000');
return svg;
});

View File

@@ -1,6 +1,10 @@
import { eventHandler, setResponseHeader, defaultContentType } from 'h3';
import { Resvg, initWasm } from '@resvg/resvg-wasm';
import iconNodes from '../../../data/iconNodes';
import wasm from './loadWasm';
import { createElement } from 'react';
import { renderToStaticMarkup } from 'react-dom/server';
import createLucideIcon from 'lucide-react/src/createLucideIcon';
var initializedResvg = initWasm(wasm);
@@ -9,27 +13,37 @@ export default eventHandler(async (event) => {
await initializedResvg;
const imageSize = 96;
const [iconSizeString, svgData] = params.data.split('/');
const name = params.data.split('/').at(-3);
const iconSizeString = params.data.split('/').at(-2);
const svgData = params.data.split('/').at(-1);
const iconSize = parseInt(iconSizeString, 10);
const data = svgData.slice(0, -4);
const prevSvg = iconNodes[name]
? renderToStaticMarkup(createElement(createLucideIcon(name, iconNodes[name])))
: undefined;
const src = Buffer.from(data, 'base64').toString('utf8');
const svg = (src.includes('<svg') ? src : `<svg>${src}</svg>`)
.replace(/(\r\n|\n|\r)/gm, '')
.replace(
/<svg[^>]*/,
/<svg[^>]*>/,
`<svg
xmlns="http://www.w3.org/2000/svg"
width="${iconSize}"
height="${iconSize}"
viewBox="0 0 24 24"
height="${prevSvg ? iconSize * 2 : iconSize}"
viewBox="0 0 24 ${prevSvg ? 48 : 24}"
fill="none"
stroke="#fff"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
${prevSvg?.replaceAll('\n', '').replace(/<svg[^>]*>|<\/svg>/g, '')}
<g transform="translate(0, ${prevSvg ? 24 : 0})">
`,
);
)
.replace(/<\/svg>/, '</g></svg>');
const resvg = new Resvg(svg, { background: '#000' });
const pngData = resvg.render();
@@ -39,7 +53,7 @@ export default eventHandler(async (event) => {
setResponseHeader(event, 'Cache-Control', 'public,max-age=31536000');
return `
<svg xmlns="http://www.w3.org/2000/svg" width="${imageSize}" height="${imageSize}" viewBox="0 0 ${imageSize} ${imageSize}">
<svg xmlns="http://www.w3.org/2000/svg" width="${imageSize}" height="${prevSvg ? imageSize * 2 : imageSize}" viewBox="0 0 ${imageSize} ${prevSvg ? imageSize * 2 : imageSize}">
<style>
@media screen and (prefers-color-scheme: light) {
#fallback-background { fill: transparent; }
@@ -52,20 +66,20 @@ export default eventHandler(async (event) => {
<mask id="mask">
<image
width="${imageSize}"
height="${imageSize}"
height="${prevSvg ? imageSize * 2 : imageSize}"
href="data:image/png;base64,${pngBuffer.toString('base64')}"
image-rendering="pixelated"
/>
</mask>
<rect
id="fallback-background"
width="${imageSize}"
height="${imageSize}" ry="${imageSize / 24}"
width="100%"
height="100%" ry="${imageSize / 24}"
fill="#fff"
/>
<rect
width="${imageSize}"
height="${imageSize}"
width="100%"
height="100%"
fill="#000"
mask="url(#mask)"
/>

View File

@@ -9,6 +9,7 @@ if (process.env.NODE_ENV === 'development') {
wasm = fs.readFileSync(require.resolve('@resvg/resvg-wasm/index_bg.wasm'));
} else {
// @ts-ignore
wasm = resvg_wasm;
}

View File

@@ -0,0 +1,55 @@
import { eventHandler, setResponseHeader, defaultContentType } from 'h3';
import { renderToString } from 'react-dom/server';
import { createElement } from 'react';
import Diff from '../../../lib/SvgPreview/Diff.tsx';
export default eventHandler((event) => {
const { params } = event.context;
const pathData = params.data.split('/');
const data = pathData.at(-1).slice(0, -4);
const [operation] = pathData;
const newSrc = Buffer.from(data, 'base64')
.toString('utf8')
.replaceAll('\n', '')
.replace(/<svg[^>]*>|<\/svg>/g, '');
const width = parseInt(
(newSrc.includes('<svg ') ? newSrc.match(/width="(\d+)"/)?.[1] : null) ?? '24',
);
const height = parseInt(
(newSrc.includes('<svg ') ? newSrc.match(/height="(\d+)"/)?.[1] : null) ?? '24',
);
const children = [];
let oldSrc = '';
if (operation.startsWith('rotate-')) {
const degrees = parseInt(operation.replace('rotate-', ''));
if (isNaN(degrees)) return '';
oldSrc = `<g transform="rotate(${degrees} ${width / 2} ${height / 2})">${newSrc}</g>`;
} else if (operation === 'flip-horizontal') {
oldSrc = `<g transform="scale(1, -1) translate(0, -${height})">${newSrc}</g>`;
} else if (operation === 'flip-vertical') {
oldSrc = `<g transform="scale(-1, 1) translate(-${width}, 0)">${newSrc}</g>`;
} else if (operation === 'flip-backslash') {
oldSrc = `<g transform="rotate(90, ${width / 2}, ${height / 2}) scale(1, -1) translate(0, -${height})">${newSrc}</g>`;
} else if (operation === 'flip-slash') {
oldSrc = `<g transform="rotate(90, ${width / 2}, ${height / 2}) scale(-1, 1) translate(-${width}, 0)">${newSrc}</g>`;
} else {
return '';
}
const svg = Buffer.from(
// We can't use jsx here, is not supported here by nitro.
renderToString(
createElement(Diff, { oldSrc, newSrc, showGrid: true, height, width }, children),
),
).toString('utf8');
defaultContentType(event, 'image/svg+xml');
setResponseHeader(event, 'Cache-Control', 'public,max-age=31536000');
return svg;
});

View File

@@ -0,0 +1,13 @@
import { eventHandler, setResponseHeader } from 'h3';
import releaseMeta from '../../data/releaseMetaData.json';
export default eventHandler((event) => {
setResponseHeader(event, 'Cache-Control', 'public, max-age=86400');
setResponseHeader(event, 'Access-Control-Allow-Origin', '*');
return Object.fromEntries(
Object.entries(releaseMeta).map(
([name, { createdRelease }]) => [name, createdRelease.version]
)
);
});

View File

@@ -1,4 +1,3 @@
import { eventHandler, setResponseHeader } from 'h3';
import iconMetaData from '../../data/iconMetaData';
export default eventHandler((event) => {

View File

@@ -1,3 +0,0 @@
export default eventHandler(() => {
return { nitro: 'Is Awesome! asda' };
});

View File

@@ -28,10 +28,21 @@ export default defineConfig({
new URL('./theme/components/overrides/VPFooter.vue', import.meta.url),
),
},
{
find: '~/.vitepress',
replacement: fileURLToPath(new URL('./', import.meta.url)),
},
],
},
},
head: [
[
'link',
{
rel: 'preconnect',
href: 'https://analytics.lucide.dev',
},
],
[
'script',
{

View File

@@ -0,0 +1,174 @@
[
{
"name": "accessibility",
"title": "Accessibility"
},
{
"name": "account",
"title": "Accounts & access"
},
{
"name": "animals",
"title": "Animals"
},
{
"name": "arrows",
"title": "Arrows"
},
{
"name": "brands",
"title": "Brands"
},
{
"name": "buildings",
"title": "Buildings"
},
{
"name": "charts",
"title": "Charts"
},
{
"name": "communication",
"title": "Communication"
},
{
"name": "connectivity",
"title": "Connectivity"
},
{
"name": "cursors",
"title": "Cursors"
},
{
"name": "design",
"title": "Design"
},
{
"name": "development",
"title": "Coding & development"
},
{
"name": "devices",
"title": "Devices"
},
{
"name": "emoji",
"title": "Emoji"
},
{
"name": "files",
"title": "File icons"
},
{
"name": "finance",
"title": "Finance"
},
{
"name": "food-beverage",
"title": "Food & beverage"
},
{
"name": "gaming",
"title": "Gaming"
},
{
"name": "home",
"title": "Home"
},
{
"name": "layout",
"title": "Layout"
},
{
"name": "mail",
"title": "Mail"
},
{
"name": "math",
"title": "Mathematics"
},
{
"name": "medical",
"title": "Medical"
},
{
"name": "multimedia",
"title": "Multimedia"
},
{
"name": "nature",
"title": "Nature"
},
{
"name": "navigation",
"title": "Navigation, Maps, and POIs"
},
{
"name": "notifications",
"title": "Notification"
},
{
"name": "people",
"title": "People"
},
{
"name": "photography",
"title": "Photography"
},
{
"name": "science",
"title": "Science"
},
{
"name": "seasons",
"title": "Seasons"
},
{
"name": "security",
"title": "Security"
},
{
"name": "shapes",
"title": "Shapes"
},
{
"name": "shopping",
"title": "Shopping"
},
{
"name": "social",
"title": "Social"
},
{
"name": "sports",
"title": "Sports"
},
{
"name": "sustainability",
"title": "Sustainability"
},
{
"name": "text",
"title": "Text formatting"
},
{
"name": "time",
"title": "Time & calendar"
},
{
"name": "tools",
"title": "Tools"
},
{
"name": "transportation",
"title": "Transportation"
},
{
"name": "travel",
"title": "Travel"
},
{
"name": "weather",
"title": "Weather"
}
]

View File

@@ -7,6 +7,14 @@
"dark": "/company-logos/vercel-dark.svg"
}
},
{
"name": "MDN Web Docs",
"url": "https://developer.mozilla.org/",
"image": {
"light": "/company-logos/mdn-light.svg",
"dark": "/company-logos/mdn-dark.svg"
}
},
{
"name": "Supabase",
"url": "https://supabase.com",
@@ -23,6 +31,14 @@
"dark": "/company-logos/obsidian-dark.svg"
}
},
{
"name": "Nuxt",
"url": "https://nuxt.com/",
"image": {
"light": "/company-logos/nuxt-light.svg",
"dark": "/company-logos/nuxt-dark.svg"
}
},
{
"name": "Open Collective",
"url": "https://opencollective.com",

View File

@@ -14,5 +14,13 @@
"light": "/library-logos/tamagui.svg",
"dark": "/library-logos/tamagui.svg"
}
},
{
"name": "Reflex",
"url": "https://reflex.dev",
"image": {
"light": "/library-logos/reflex-light.svg",
"dark": "/library-logos/reflex-dark.svg"
}
}
]

View File

@@ -31,24 +31,8 @@
}
]
},
"lucide-vue": {
"order": 2,
"icon": "vue",
"shields": [
{
"alt": "npm",
"src": "https://img.shields.io/npm/v/lucide-vue",
"href": "https://www.npmjs.com/package/lucide-vue"
},
{
"alt": "npm",
"src": "https://img.shields.io/npm/dw/lucide-vue",
"href": "https://www.npmjs.com/package/lucide-vue"
}
]
},
"lucide-vue-next": {
"order": 3,
"order": 2,
"icon": "vue-next",
"shields": [
{
@@ -64,7 +48,7 @@
]
},
"lucide-svelte": {
"order": 4,
"order": 3,
"icon": "svelte",
"shields": [
{
@@ -95,24 +79,8 @@
}
]
},
"lucide-preact": {
"order": 5,
"icon": "preact",
"shields": [
{
"alt": "npm",
"src": "https://img.shields.io/npm/v/lucide-preact",
"href": "https://www.npmjs.com/package/lucide-preact"
},
{
"alt": "npm",
"src": "https://img.shields.io/npm/dw/lucide-preact",
"href": "https://www.npmjs.com/package/lucide-preact"
}
]
},
"lucide-react-native": {
"order": 6,
"order": 5,
"icon": "react-native",
"shields": [
{
@@ -128,7 +96,7 @@
]
},
"lucide-angular": {
"order": 7,
"order": 6,
"icon": "angular",
"shields": [
{
@@ -143,8 +111,43 @@
}
]
},
"lucide-static": {
"lucide-preact": {
"order": 7,
"icon": "preact",
"shields": [
{
"alt": "npm",
"src": "https://img.shields.io/npm/v/lucide-preact",
"href": "https://www.npmjs.com/package/lucide-preact"
},
{
"alt": "npm",
"src": "https://img.shields.io/npm/dw/lucide-preact",
"href": "https://www.npmjs.com/package/lucide-preact"
}
]
},
"@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": [
{
@@ -158,16 +161,5 @@
"href": "https://www.npmjs.com/package/lucide-static"
}
]
},
"lucide-flutter": {
"order": 9,
"icon": "flutter",
"shields": [
{
"alt": "flutter",
"src": "https://img.shields.io/pub/v/lucide_icons",
"href": "https://img.shields.io/pub/v/lucide_icons"
}
]
}
}

View File

@@ -76,5 +76,100 @@
],
"source": "https://github.com/swisnl/nuxt-lucide-icons",
"documentation": "https://github.com/swisnl/nuxt-lucide-icons/blob/main/README.md"
},
{
"name": "lucide_lustre",
"description": "A library providing https://lucide.dev icons to lustre.",
"icon": "/framework-logos/lustre.webp",
"shields": [
{
"alt": "Latest Stable Version",
"src": "https://img.shields.io/hexpm/v/lucide_lustre",
"href": "https://hex.pm/packages/lucide_lustre"
},
{
"alt": "Total Downloads",
"src": "https://img.shields.io/hexpm/dw/lucide_lustre",
"href": "https://hex.pm/packages/lucide_lustre"
}
],
"source": "https://github.com/dinkelspiel/lucide_lustre",
"documentation": "https://github.com/dinkelspiel/lucide_lustre/blob/master/README.md"
},
{
"name": "lucide_icons_flutter",
"description": "A library providing https://lucide.dev icons to Flutter.",
"icon": "/framework-logos/flutter.svg",
"shields": [
{
"alt": "Latest Stable Version",
"src": "https://img.shields.io/pub/v/lucide_icons_flutter",
"href": "https://pub.dev/packages/lucide_icons_flutter"
},
{
"alt": "Total Downloads",
"src": "https://img.shields.io/pub/dm/lucide_icons_flutter",
"href": "https://pub.dev/packages/lucide_icons_flutter"
}
],
"source": "https://github.com/vqh2602/lucide-flutter-main",
"documentation": "https://pub.dev/documentation/lucide_icons_flutter/latest/"
},
{
"name": "lucide-slint",
"description": "Implementation of the lucide icon library for Slint.",
"icon": "/framework-logos/slint.svg",
"shields": [
{
"alt": "Latest Stable Version",
"src": "https://img.shields.io/crates/v/lucide-slint",
"href": "https://crates.io/crates/lucide-slint"
},
{
"alt": "Total Downloads",
"src": "https://img.shields.io/crates/d/lucide-slint",
"href": "https://crates.io/crates/lucide-slint"
}
],
"source": "https://github.com/cnlancehu/lucide-slint",
"documentation": "https://github.com/cnlancehu/lucide-slint/blob/main/README.md"
},
{
"name": "lucide-go",
"description": "Implementation of Lucide icons for Go's html/template package.",
"icon": "/framework-logos/go.svg",
"shields": [
{
"alt": "Latest Stable Version",
"src": "https://img.shields.io/github/v/release/kaugesaar/lucide-go",
"href": "https://github.com/kaugesaar/lucide-go/releases"
},
{
"alt": "Go Reference",
"src": "https://pkg.go.dev/badge/github.com/kaugesaar/lucide-go.svg",
"href": "https://pkg.go.dev/github.com/kaugesaar/lucide-go"
}
],
"source": "https://github.com/kaugesaar/lucide-go",
"documentation": "https://github.com/kaugesaar/lucide-go/blob/master/README.md"
},
{
"name": "lucide-rails",
"description": "Ruby on Rails views helper method for rendering Lucide icons.",
"icon": "/framework-logos/rails.svg",
"shields": [
{
"alt": "Latest Stable Version",
"src": "https://img.shields.io/gem/v/lucide-rails",
"href": "https://rubygems.org/gems/lucide-rails"
},
{
"alt": "Total Downloads",
"src": "https://img.shields.io/gem/dt/lucide-rails",
"href": "https://rubygems.org/gems/lucide-rails"
}
],
"source": "https://github.com/heyvito/lucide-rails",
"documentation": "https://github.com/heyvito/lucide-rails/blob/master/README.md"
}
]

View File

@@ -11,7 +11,7 @@
},
{
"icon": "x",
"link": "https://github.com/ericfennis"
"link": "https://x.com/ericfennis"
}
]
},
@@ -31,8 +31,8 @@
]
},
{
"name": "jguddas",
"title": "Maintainer of Lucide & Software engineer @lego",
"name": "Jakob Guddas",
"title": "Maintainer of Lucide & Software engineer @LEGO",
"image": "https://github.com/jguddas.png?size=192",
"socialLinks": [
{

View File

@@ -3,15 +3,22 @@ import React from 'react';
interface BackdropProps {
src: string;
color?: string;
outline?: boolean;
backdropString: string;
}
const Backdrop = ({ src, color = 'red', backdropString }: BackdropProps): JSX.Element => {
const Backdrop = ({
src,
color = 'red',
outline = true,
backdropString,
}: BackdropProps): JSX.Element => {
const id = React.useId();
return (
<>
<defs xmlns="http://www.w3.org/2000/svg">
<pattern
id="pattern"
id={`pattern-${id}`}
width=".1"
height=".1"
patternUnits="userSpaceOnUse"
@@ -30,69 +37,58 @@ const Backdrop = ({ src, color = 'red', backdropString }: BackdropProps): JSX.El
</pattern>
</defs>
<mask
id="svg-preview-backdrop-mask-outline"
id={`svg-preview-backdrop-mask-${id}`}
maskUnits="userSpaceOnUse"
>
<g
stroke="#fff"
dangerouslySetInnerHTML={{ __html: backdropString }}
/>
<g
dangerouslySetInnerHTML={{ __html: src }}
strokeWidth={2.05}
/>
<g dangerouslySetInnerHTML={{ __html: src }} />
</mask>
<mask
id="svg-preview-backdrop-mask-fill"
id={`svg-preview-backdrop-mask-outline-${id}`}
maskUnits="userSpaceOnUse"
>
<g
stroke="#fff"
dangerouslySetInnerHTML={{ __html: backdropString }}
/>
<g
dangerouslySetInnerHTML={{ __html: src }}
strokeWidth={2.05}
<rect
x="0"
y="0"
width="100%"
height="100%"
fill="#fff"
stroke="none"
/>
<g
strokeWidth={1.75}
dangerouslySetInnerHTML={{ __html: backdropString }}
/>
</mask>
<g
strokeWidth={2.25}
stroke="url(#pattern)"
mask={'url(#svg-preview-backdrop-mask-outline)'}
>
<g mask={`url(#svg-preview-backdrop-mask-${id})`}>
<rect
x="0"
y="0"
width="24"
height="24"
fill="url(#pattern)"
width="100%"
height="100%"
opacity={0.5}
fill={`url(#pattern-${id})`}
stroke="none"
/>
<g
stroke={color}
strokeWidth={2.25}
opacity={0.75}
dangerouslySetInnerHTML={{ __html: src }}
/>
{outline && (
<g
stroke={color}
strokeWidth={2.25}
opacity={0.75}
mask={`url(#svg-preview-backdrop-mask-outline-${id})`}
dangerouslySetInnerHTML={{ __html: backdropString }}
/>
)}
</g>
<rect
x="0"
y="0"
width="24"
height="24"
fill="url(#pattern)"
stroke="none"
mask={'url(#svg-preview-backdrop-mask-fill)'}
/>
<rect
x="0"
y="0"
width="24"
height="24"
fill={color}
opacity={0.5}
stroke="none"
mask={'url(#svg-preview-backdrop-mask-fill)'}
/>
</>
);
};

View File

@@ -0,0 +1,75 @@
import React from 'react';
import Backdrop from './Backdrop.tsx';
import { darkModeCss, Grid } from './index.tsx';
const SvgPreview = React.forwardRef<
SVGSVGElement,
{
oldSrc: string;
newSrc: string;
height: number;
width: number;
} & React.SVGProps<SVGSVGElement>
>(({ oldSrc, newSrc, children, height, width, ...props }, ref) => {
return (
<svg
ref={ref}
xmlns="http://www.w3.org/2000/svg"
width={width}
height={height}
viewBox={`0 0 ${width} ${height}`}
fill="none"
stroke="currentColor"
strokeWidth={2}
strokeLinecap="round"
strokeLinejoin="round"
{...props}
>
<style>{darkModeCss}</style>
<Grid
width={width}
height={height}
strokeWidth={0.1}
stroke="#777"
strokeOpacity={0.3}
radius={1}
/>
<mask
id="gray"
maskUnits="userSpaceOnUse"
>
<rect
x="0"
y="0"
width="100%"
height="100%"
fill="#000"
stroke="none"
/>
<g
stroke="#fff"
dangerouslySetInnerHTML={{ __html: oldSrc }}
/>
</mask>
<Backdrop
src=""
outline={false}
backdropString={`<g mask="url('#gray')">${newSrc}</g>`}
color="#777"
/>
<Backdrop
src={oldSrc}
backdropString={newSrc}
color="lime"
/>
<Backdrop
src={newSrc}
backdropString={oldSrc}
color="red"
/>
{children}
</svg>
);
});
export default SvgPreview;

View File

@@ -0,0 +1,137 @@
import React from 'react';
import pathToPoints from './path-to-points';
import { Path, PathProps } from './types';
export const GapViolationHighlight = ({
radius,
stroke,
strokeWidth,
strokeOpacity,
paths,
...props
}: {
paths: Path[];
} & PathProps<'stroke' | 'strokeOpacity' | 'strokeWidth', 'd'>) => {
const id = React.useId();
const groupedPaths = Object.entries(
paths.reduce(
(groups, val) => {
const key = val.c.id;
groups[key] = [...(groups[key] || []), val];
return groups;
},
{} as Record<number, Path[]>,
),
);
const groups: Group[] = [];
for (const [, paths] of groupedPaths) {
const d = paths.map((path) => path.d).join(' ');
const points = paths.flatMap((path) => pathToPoints(path));
groups.push({ id: d, points });
}
const mergedGroups = mergeGroups(groups, 2);
return (
<g {...props}>
<defs xmlns="http://www.w3.org/2000/svg">
<pattern
id={`backdrop-pattern-${id}`}
width=".1"
height=".1"
patternUnits="userSpaceOnUse"
patternTransform="rotate(45 50 50)"
>
<line
stroke={stroke}
strokeWidth={0.1}
y2={1}
/>
<line
stroke={stroke}
strokeWidth={0.1}
y2={1}
/>
</pattern>
</defs>
{mergedGroups.flatMap((ds, idx, arr) =>
arr.slice(0, idx).map((val, i) => (
<g
strokeWidth={strokeWidth}
key={i}
>
<mask
id={`svg-preview-backdrop-mask-${id}-${i}`}
maskUnits="userSpaceOnUse"
>
<path
stroke="white"
d={val.join(' ')}
/>
</mask>
<path
d={ds.join(' ')}
stroke={`url(#backdrop-pattern-${id})`}
strokeWidth={strokeWidth}
strokeOpacity={strokeOpacity}
mask={`url(#svg-preview-backdrop-mask-${id}-${i})`}
/>
</g>
)),
)}
</g>
);
};
type Point = { x: number; y: number };
type Group = { id: string; points: Point[] };
// Euclidean distance
function distance(a: Point, b: Point): number {
return Math.hypot(a.x - b.x, a.y - b.y);
}
// Check if two groups should be merged based on minimum distance
function shouldMerge(a: Group, b: Group, minDistance: number): boolean {
for (const pa of a.points) {
for (const pb of b.points) {
if (distance(pa, pb) <= minDistance) {
return true;
}
}
}
return false;
}
// Merge groups and return arrays of merged group IDs
function mergeGroups(groups: Group[], minDistance: number): string[][] {
const mergedGroups: Group[][] = groups.map((g) => [g]);
let changed = true;
while (changed) {
changed = false;
outer: for (let i = 0; i < mergedGroups.length; i++) {
for (let j = i + 1; j < mergedGroups.length; j++) {
// Check if any group in mergedGroups[i] should merge with any in mergedGroups[j]
if (
mergedGroups[i].some((ga) =>
mergedGroups[j].some((gb) => shouldMerge(ga, gb, minDistance)),
)
) {
// Merge group j into group i
mergedGroups[i] = [...mergedGroups[i], ...mergedGroups[j]];
mergedGroups.splice(j, 1);
changed = true;
break outer;
}
}
}
}
// Return only arrays of IDs
return mergedGroups.map((groupList) => groupList.map((g) => g.id));
}

View File

@@ -1,13 +1,36 @@
import React from 'react';
import { PathProps, Path } from './types';
import { getPaths, assert } from './utils';
import getPaths, { assert } from './utils';
import { GapViolationHighlight } from './GapViolationHighlight.tsx';
const Grid = ({
export const darkModeCss = `
@media screen and (prefers-color-scheme: light) {
.svg-preview-grid-rect { fill: none }
}
@media screen and (prefers-color-scheme: dark) {
.svg-preview-grid-rect { fill: none }
.svg
.svg-preview-grid-group,
.svg-preview-radii-group,
.svg-preview-shadow-mask-group,
.svg-preview-shadow-group {
stroke: #fff;
}
}
`;
export const Grid = ({
radius,
fill = '#fff',
fill,
height,
width,
subGridSize = 0,
...props
}: {
height: number;
width: number;
strokeWidth: number;
subGridSize?: number;
radius: number;
} & PathProps<'stroke', 'strokeWidth'>) => (
<g
@@ -17,43 +40,53 @@ const Grid = ({
>
<rect
className="svg-preview-grid-rect"
width={24 - props.strokeWidth}
height={24 - props.strokeWidth}
width={width - props.strokeWidth}
height={height - props.strokeWidth}
x={props.strokeWidth / 2}
y={props.strokeWidth / 2}
rx={radius}
fill={fill}
/>
<path
strokeDasharray={'0 0.1 ' + '0.1 0.15 '.repeat(11) + '0 0.15'}
strokeDasharray={
'0 0.1 ' + '0.1 0.15 '.repeat(subGridSize ? subGridSize * 4 - 1 : 95) + '0 0.15'
}
strokeWidth={0.1}
d={
props.d ||
new Array(Math.floor(24 - 1))
.fill(null)
.map((_, i) => i)
.filter((i) => i % 3 !== 2)
.flatMap((i) => [
`M${props.strokeWidth} ${i + 1}h${24 - props.strokeWidth * 2}`,
`M${i + 1} ${props.strokeWidth}v${24 - props.strokeWidth * 2}`,
])
.join('')
}
/>
<path
d={
props.d ||
new Array(Math.floor(24 - 1))
.fill(null)
.map((_, i) => i)
.filter((i) => i % 3 === 2)
.flatMap((i) => [
`M${props.strokeWidth} ${i + 1}h${24 - props.strokeWidth * 2}`,
`M${i + 1} ${props.strokeWidth}v${24 - props.strokeWidth * 2}`,
])
.join('')
[
...new Array(Math.floor(width - 1))
.fill(null)
.map((_, i) => i)
.filter((i) => !subGridSize || i % subGridSize !== subGridSize - 1)
.flatMap((i) => [`M${i + 1} ${props.strokeWidth}v${height - props.strokeWidth * 2}`]),
...new Array(Math.floor(height - 1))
.fill(null)
.map((_, i) => i)
.filter((i) => !subGridSize || i % subGridSize !== subGridSize - 1)
.flatMap((i) => [`M${props.strokeWidth} ${i + 1}h${width - props.strokeWidth * 2}`]),
].join('')
}
/>
{!!subGridSize && (
<path
d={
props.d ||
[
...new Array(Math.floor(width - 1))
.fill(null)
.map((_, i) => i)
.filter((i) => i % subGridSize === subGridSize - 1)
.flatMap((i) => [`M${i + 1} ${props.strokeWidth}v${height - props.strokeWidth * 2}`]),
...new Array(Math.floor(height - 1))
.fill(null)
.map((_, i) => i)
.filter((i) => i % subGridSize === subGridSize - 1)
.flatMap((i) => [`M${props.strokeWidth} ${i + 1}h${width - props.strokeWidth * 2}`]),
].join('')
}
/>
)}
</g>
);
@@ -83,6 +116,7 @@ const Shadow = ({
>
{groupedPaths.map(([id, paths]) => (
<mask
key={`svg-preview-shadow-mask-${id}`}
id={`svg-preview-shadow-mask-${id}`}
maskUnits="userSpaceOnUse"
strokeOpacity="1"
@@ -92,8 +126,8 @@ const Shadow = ({
<rect
x={0}
y={0}
width={24}
height={24}
width="100%"
height="100%"
fill="#fff"
stroke="none"
rx={radius}
@@ -136,30 +170,34 @@ const ColoredPath = ({
colors,
paths,
...props
}: { paths: Path[]; colors: string[] } & PathProps<never, 'd' | 'stroke'>) => (
<g
className="svg-preview-colored-path-group"
{...props}
>
{paths.map(({ d, c }, i) => (
<path
key={i}
d={d}
stroke={colors[(c.name === 'path' ? i : c.id) % colors.length]}
/>
))}
</g>
);
}: { paths: Path[]; colors: string[] } & PathProps<never, 'd' | 'stroke'>) => {
let idx = 0;
return (
<g
className="svg-preview-colored-path-group"
{...props}
>
{paths.map(({ d, c }, i) => (
<path
key={i}
d={d}
stroke={colors[(c.name === 'path' ? idx++ : c.id) % colors.length]}
/>
))}
</g>
);
};
const ControlPath = ({
paths,
radius,
pointSize,
...props
}: { pointSize: number; paths: Path[]; radius: number } & PathProps<
'stroke' | 'strokeWidth',
'd'
>) => {
}: {
pointSize: number;
paths: Path[];
radius: number;
} & PathProps<'stroke' | 'strokeWidth', 'd'>) => {
const controlPaths = paths.map((path, i) => {
const element = paths.filter((p) => p.c.id === path.c.id);
const lastElement = element.at(-1)?.next;
@@ -191,8 +229,8 @@ const ControlPath = ({
<rect
x="0"
y="0"
width="24"
height="24"
width="100%"
height="100%"
fill="#fff"
stroke="none"
rx={radius}
@@ -227,7 +265,7 @@ const ControlPath = ({
)
.join('')}
/>
{controlPaths.map(({ d, prev, next, startMarker, endMarker }, i) => (
{controlPaths.map(({ prev, next, startMarker, endMarker }, i) => (
<React.Fragment key={i}>
{startMarker && (
<circle
@@ -263,11 +301,37 @@ const Radii = ({
{...props}
>
{paths.map(
({ c, prev, next, circle }, i) =>
({ circle, next, prev, c }, i) =>
circle && (
<React.Fragment key={i}>
{c.name !== 'circle' && (
<path d={`M${prev.x} ${prev.y} ${circle.x} ${circle.y} ${next.x} ${next.y}`} />
{circle.tangentIntersection && c.name === 'path' && (
<>
<circle
cx={next.x * 2 - circle.tangentIntersection.x}
cy={next.y * 2 - circle.tangentIntersection.y}
r={0.25}
/>
<circle
cx={prev.x * 2 - circle.tangentIntersection.x}
cy={prev.y * 2 - circle.tangentIntersection.y}
r={0.25}
/>
<path
d={`M${next.x * 2 - circle.tangentIntersection.x} ${
next.y * 2 - circle.tangentIntersection.y
}L${circle.tangentIntersection.x} ${circle.tangentIntersection.y}L${prev.x * 2 - circle.tangentIntersection.x} ${
prev.y * 2 - circle.tangentIntersection.y
}`}
/>
<circle
cx={circle.tangentIntersection.x}
cy={circle.tangentIntersection.y}
r={0.25}
/>
</>
)}
{c.name === 'path' && (
<path d={`M${next.x} ${next.y}L${circle.x} ${circle.y}L${prev.x} ${prev.y}`} />
)}
<circle
cy={circle.y}
@@ -297,69 +361,60 @@ const Radii = ({
const Handles = ({
paths,
...props
}: { paths: Path[] } & PathProps<
'strokeWidth' | 'stroke' | 'strokeDasharray' | 'strokeOpacity',
any
>) => {
console.log(paths);
return (
<g
className="svg-preview-handles-group"
{...props}
>
{paths.map(({ c, prev, next, cp1, cp2 }) => (
<>
{cp1 && <path d={`M${prev.x} ${prev.y} ${cp1.x} ${cp1.y}`} />}
{cp1 && (
<circle
cy={cp1.y}
cx={cp1.x}
r={0.25}
/>
)}
{cp2 && <path d={`M${next.x} ${next.y} ${cp2.x} ${cp2.y}`} />}
{cp2 && (
<circle
cy={cp2.y}
cx={cp2.x}
r={0.25}
/>
)}
</>
))}
</g>
);
};
}: { paths: Path[] } & PathProps<'strokeWidth' | 'stroke' | 'strokeOpacity', any>) => (
<g
className="svg-preview-handles-group"
{...props}
>
{paths.map(({ c, prev, next, cp1, cp2 }, i) => (
<React.Fragment key={i}>
{cp1 && <path d={`M${prev.x} ${prev.y} ${cp1.x} ${cp1.y}`} />}
{cp1 && (
<circle
cy={cp1.y}
cx={cp1.x}
r={0.25}
/>
)}
{cp2 && <path d={`M${next.x} ${next.y} ${cp2.x} ${cp2.y}`} />}
{cp2 && (
<circle
cy={cp2.y}
cx={cp2.x}
r={0.25}
/>
)}
</React.Fragment>
))}
</g>
);
const SvgPreview = React.forwardRef<
SVGSVGElement,
{
height?: number;
width?: number;
src: string | ReturnType<typeof getPaths>;
showGrid?: boolean;
} & React.SVGProps<SVGSVGElement>
>(({ src, children, showGrid = false, ...props }, ref) => {
>(({ src, children, height = 24, width = 24, showGrid = false, ...props }, ref) => {
const subGridSize =
Math.max(height, width) % 3 === 0
? Math.max(height, width) > 24
? 12
: 3
: Math.max(height, width) % 5 === 0
? 5
: 0;
const paths = typeof src === 'string' ? getPaths(src) : src;
const darkModeCss = `@media screen and (prefers-color-scheme: light) {
.svg-preview-grid-rect { fill: none }
}
@media screen and (prefers-color-scheme: dark) {
.svg-preview-grid-rect { fill: none }
.svg
.svg-preview-grid-group,
.svg-preview-radii-group,
.svg-preview-shadow-mask-group,
.svg-preview-shadow-group {
stroke: #fff;
}
}`;
return (
<svg
ref={ref}
xmlns="http://www.w3.org/2000/svg"
width={24}
height={24}
viewBox="0 0 24 24"
width={width}
height={height}
viewBox={`0 0 ${width} ${height}`}
fill="none"
stroke="currentColor"
strokeWidth={2}
@@ -370,8 +425,12 @@ const SvgPreview = React.forwardRef<
<style>{darkModeCss}</style>
{showGrid && (
<Grid
height={height}
width={width}
subGridSize={subGridSize}
strokeWidth={0.1}
stroke="#777"
mask="url(#svg-preview-bounding-box-mask)"
strokeOpacity={0.3}
radius={1}
/>
@@ -383,6 +442,12 @@ const SvgPreview = React.forwardRef<
radius={1}
strokeOpacity={0.15}
/>
<GapViolationHighlight
paths={paths}
stroke="red"
strokeOpacity={0.75}
strokeWidth={4}
/>
<Handles
paths={paths}
strokeWidth={0.12}
@@ -431,4 +496,6 @@ const SvgPreview = React.forwardRef<
);
});
SvgPreview.displayName = 'SvgPreview';
export default SvgPreview;

View File

@@ -0,0 +1,19 @@
import memoize from 'lodash/memoize';
import SVGPathCommander from 'svg-path-commander';
import { Path } from './types';
function pathToPoints({ d, prev, next }: Path, interval = 1) {
const commander = new SVGPathCommander(d);
const points = [];
try {
const totalLength = commander.getTotalLength();
points.push(prev);
for (let i = interval; i < totalLength - interval; i += interval) {
points.push(commander.getPointAtLength(i));
}
points.push(next);
} catch (err) {}
return points;
}
export default memoize(pathToPoints);

View File

@@ -1,7 +1,10 @@
import { INode, parseSync } from 'svgson';
// @ts-ignore
import toPath from 'element-to-path';
// @ts-ignore
import { SVGPathData, encodeSVGPath } from 'svg-pathdata';
import { Path, Point } from './types';
import memoize from 'lodash/memoize';
function assertNever(x: never): never {
throw new Error('Unknown type: ' + x['type']);
@@ -44,17 +47,21 @@ const extractNodes = (node: INode): INode[] => {
return [];
};
export const getNodes = (src: string) =>
extractNodes(parseSync(src.includes('<svg') ? src : `<svg>${src}</svg>`));
export const getNodes = memoize((src: string) =>
extractNodes(parseSync(src.includes('<svg') ? src : `<svg>${src}</svg>`)),
);
export const getCommands = (src: string) =>
getNodes(src)
.map(convertToPathNode)
.flatMap(({ d, name }, idx) =>
new SVGPathData(d).toAbs().commands.map((c, cIdx) => ({ ...c, id: idx, idx: cIdx, name })),
new SVGPathData(d)
.toAbs()
// @ts-ignore
.commands.map((c, cIdx) => ({ ...c, id: idx, idx: cIdx, name })),
);
export const getPaths = (src: string) => {
const getPaths = (src: string) => {
const commands = getCommands(src.includes('<svg') ? src : `<svg>${src}</svg>`);
const paths: Path[] = [];
let prev: Point | undefined = undefined;
@@ -237,6 +244,7 @@ export const getPaths = (src: string) => {
break;
}
default: {
// @ts-ignore
assertNever(c);
}
}
@@ -244,7 +252,7 @@ export const getPaths = (src: string) => {
return paths;
};
export const arcEllipseCenter = (
const arcEllipseCenter = (
x1: number,
y1: number,
rx: number,
@@ -296,5 +304,52 @@ export const arcEllipseCenter = (
M2[1][0] * Cp[0] + M2[1][1] * Cp[1] + V3[1],
];
return { x: C[0], y: C[1] };
return {
x: C[0],
y: C[1],
tangentIntersection: intersectTangents(
{ x: x1, y: y1 },
{ x: x2, y: y2 },
{ x: C[0], y: C[1] },
),
};
};
function getTangentDirection(p: Point, center: Point): Point {
// Tangent is perpendicular to the radius vector (rotate radius 90°)
const dx = p.x - center.x;
const dy = p.y - center.y;
return { x: -dy, y: dx }; // 90° rotation
}
function intersectTangents(start: Point, end: Point, center: Point): Point | null {
const t1 = getTangentDirection(start, center);
const t2 = getTangentDirection(end, center);
// Solve: start + λ * t1 = end + μ * t2
const A = [
[t1.x, -t2.x],
[t1.y, -t2.y],
];
const b = [end.x - start.x, end.y - start.y];
// Compute determinant
const det = A[0][0] * A[1][1] - A[0][1] * A[1][0];
if (Math.abs(det) < 1e-10) {
// Lines are parallel, no intersection
return null;
}
const invDet = 1 / det;
const lambda = (b[0] * A[1][1] - b[1] * A[0][1]) * invDet;
// Intersection point = start + lambda * t1
return {
x: start.x + lambda * t1.x,
y: start.y + lambda * t1.y,
};
}
export default memoize(getPaths);

View File

@@ -1,5 +1,4 @@
import { bundledLanguages, type ThemeRegistration } from 'shikiji';
import { getHighlighter } from 'shikiji';
import { bundledLanguages, createHighlighter, type ThemeRegistration } from 'shiki';
type CodeExampleType = {
title: string;
@@ -11,17 +10,29 @@ const getIconCodes = (): CodeExampleType => {
return [
{
language: 'html',
title: 'HTML',
code: `<i data-lucide="Name"></i>`,
title: 'Vanilla',
code: `\
<script>
import { createIcons, $CamelCase } from 'lucide';
createIcons({
icons: {
$CamelCase
}
});
</script>
<i data-lucide="$Name"></i>\
`,
},
{
language: 'tsx',
title: 'React',
code: `import { PascalCase } from 'lucide-react';
code: `import { $PascalCase } from 'lucide-react';
const App = () => {
return (
<PascalCase />
<$PascalCase />
);
};
@@ -32,11 +43,11 @@ export default App;
language: 'vue',
title: 'Vue',
code: `<script setup>
import { PascalCase } from 'lucide-vue-next';
import { $PascalCase } from 'lucide-vue-next';
</script>
<template>
<PascalCase />
<$PascalCase />
</template>
`,
},
@@ -44,20 +55,20 @@ export default App;
language: 'svelte',
title: 'Svelte',
code: `<script>
import { PascalCase } from 'lucide-svelte';
import { $PascalCase } from 'lucide-svelte';
</script>
<PascalCase />
<$PascalCase />
`,
},
{
language: 'tsx',
title: 'Preact',
code: `import { PascalCase } from 'lucide-preact';
code: `import { $PascalCase } from 'lucide-preact';
const App = () => {
return (
<PascalCase />
<$PascalCase />
);
};
@@ -67,11 +78,11 @@ export default App;
{
language: 'tsx',
title: 'Solid',
code: `import { PascalCase } from 'lucide-solid';
code: `import { $PascalCase } from 'lucide-solid';
const App = () => {
return (
<PascalCase />
<$PascalCase />
);
};
@@ -82,27 +93,22 @@ export default App;
language: 'tsx',
title: 'Angular',
code: `// app.module.ts
import { LucideAngularModule, PascalCase } from 'lucide-angular';
import { LucideAngularModule, $PascalCase } from 'lucide-angular';
@NgModule({
imports: [
LucideAngularModule.pick({ PascalCase })
LucideAngularModule.pick({ $PascalCase })
],
})
// app.component.html
<lucide-icon name="Name"></lucide-icon>
<lucide-icon name="$Name"></lucide-icon>
`,
},
{
language: 'html',
title: 'Icon Font',
code: `<style>
@import ('~lucide-static/font/Lucide.css');
</style>
<div class="icon-Name"></div>
`,
title: 'Icon font',
code: `<div class="icon-$Name"></div>`,
},
];
};
@@ -112,7 +118,7 @@ export type ThemeOptions =
| { light: ThemeRegistration; dark: ThemeRegistration };
const highLightCode = async (code: string, lang: string, active?: boolean) => {
const highlighter = await getHighlighter({
const highlighter = await createHighlighter({
themes: ['github-light', 'github-dark'],
langs: Object.keys(bundledLanguages),
});

View File

@@ -0,0 +1,163 @@
import { bundledLanguages, type ThemeRegistration } from 'shiki';
import { createHighlighter } from 'shiki';
type CodeExampleType = {
title: string;
language: string;
code: string;
}[];
const getIconCodes = (): CodeExampleType => {
return [
{
language: 'html',
title: 'Vanilla',
code: `\
<script>
import { createIcons } from 'lucide';
import { $CamelCase } from '@lucide/lab';
createIcons({
icons: {
$CamelCase
}
});
</script>
<i data-lucide="$Name"></i>\
`,
},
{
language: 'tsx',
title: 'React',
code: `import { Icon } from 'lucide-react';
import { $CamelCase } from '@lucide/lab';
const App = () => {
return (
<Icon iconNode={$CamelCase} />
);
};
export default App;
`,
},
{
language: 'vue',
title: 'Vue',
code: `<script setup>
import { Icon } from 'lucide-vue-next';
import { $CamelCase } from '@lucide/lab';
</script>
<template>
<Icon :iconNode="$CamelCase" />
</template>
`,
},
{
language: 'svelte',
title: 'Svelte',
code: `<script>
import { Icon } from 'lucide-svelte';
import { $CamelCase } from '@lucide/lab';
</script>
<Icon iconNode={$CamelCase} />
`,
},
{
language: 'tsx',
title: 'Preact',
code: `import { Icon } from 'lucide-preact';
import { $CamelCase } from '@lucide/lab';
const App = () => {
return (
<Icon iconNode={$CamelCase} />
);
};
export default App;
`,
},
{
language: 'tsx',
title: 'Solid',
code: `import { Icon } from 'lucide-solid';
import { $CamelCase } from '@lucide/lab';
const App = () => {
return (
<Icon iconNode={$CamelCase} />
);
};
export default App;
`,
},
{
language: 'tsx',
title: 'Angular',
code: `// app.module.ts
import { LucideAngularModule } from 'lucide-angular';
import { $CamelCase } from '@lucide/lab';
@NgModule({
imports: [
LucideAngularModule.pick({ $CamelCase })
],
})
// app.component.html
<lucide-icon name="$CamelCase"></lucide-icon>
`,
},
];
};
export type ThemeOptions =
| ThemeRegistration
| { light: ThemeRegistration; dark: ThemeRegistration };
const highLightCode = async (code: string, lang: string, active?: boolean) => {
const highlighter = await createHighlighter({
themes: ['github-light', 'github-dark'],
langs: Object.keys(bundledLanguages),
});
const highlightedCode = highlighter
.codeToHtml(code, {
lang,
themes: {
light: 'github-light',
dark: 'github-dark',
},
defaultColor: false,
})
.replace('shiki-themes', 'shiki-themes vp-code');
return `<div class="language-${lang} ${active ? 'active' : ''}">
<button title="Copy Code" class="copy"></button>
<span class="lang">${lang}</span>
${highlightedCode}
</div>`;
};
export default async function createCodeExamples() {
const codes = getIconCodes();
const codeExamplePromises = codes.map(async ({ title, language, code }, index) => {
const isFirst = index === 0;
const codeString = await highLightCode(code, language, isFirst);
return {
title,
language: language,
code: codeString,
};
});
return Promise.all(codeExamplePromises);
}

View File

@@ -0,0 +1,32 @@
import { bundledLanguages, type ThemeRegistration } from 'shiki';
import { createHighlighter } from 'shiki';
export type ThemeOptions =
| ThemeRegistration
| { light: ThemeRegistration; dark: ThemeRegistration };
const highLightCode = async (code: string, lang: string, active?: boolean) => {
const highlighter = await createHighlighter({
themes: ['github-light', 'github-dark'],
langs: Object.keys(bundledLanguages),
});
const highlightedCode = highlighter
.codeToHtml(code, {
lang,
themes: {
light: 'github-light',
dark: 'github-dark',
},
defaultColor: false,
})
.replace('shiki-themes', 'shiki-themes vp-code');
return `<div class="language-${lang} ${active ? 'active' : ''}">
<button title="Copy Code" class="copy"></button>
<span class="lang">${lang}</span>
${highlightedCode}
</div>`;
};
export default highLightCode;

View File

@@ -0,0 +1,5 @@
export type CodeExampleType = {
title: string;
language: string;
code: string;
}[];

View File

@@ -1,6 +1,5 @@
import { promises as fs, constants } from 'fs';
import path from 'path';
import yaml from 'js-yaml';
import { PackageItem } from '../theme/types';
const fileExist = (filePath) =>
@@ -27,11 +26,6 @@ const fetchPackages = async (): Promise<PackageItem[]> => {
return JSON.parse(await fs.readFile(jsonFilePath, 'utf-8'));
}
const ymlFilePath = path.resolve(filePath, 'pubspec.yaml');
if (await fileExist(ymlFilePath)) {
return yaml.load(await fs.readFile(ymlFilePath, 'utf-8'));
}
return null;
}),
);

View File

@@ -31,10 +31,10 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
{
text: 'Advanced',
items: [
// {
// text: 'Accessibility',
// link: '/guide/advanced/accessibility'
// },
{
text: 'Accessibility',
link: '/guide/advanced/accessibility',
},
{
text: 'Global styling',
link: '/guide/advanced/global-styling',
@@ -46,6 +46,10 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
text: 'Filled icons',
link: '/guide/advanced/filled-icons',
},
{
text: 'Aliased Names',
link: '/guide/advanced/aliased-names',
},
// {
// text: 'Combining icons',
// },
@@ -68,10 +72,6 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
text: 'Lucide React',
link: '/guide/packages/lucide-react',
},
{
text: 'Lucide React Native',
link: '/guide/packages/lucide-react-native',
},
{
text: 'Lucide Vue',
link: '/guide/packages/lucide-vue-next',
@@ -85,13 +85,21 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
link: '/guide/packages/lucide-solid',
},
{
text: 'Lucide Preact',
link: '/guide/packages/lucide-preact',
text: 'Lucide React Native',
link: '/guide/packages/lucide-react-native',
},
{
text: 'Lucide Angular',
link: '/guide/packages/lucide-angular',
},
{
text: 'Lucide Preact',
link: '/guide/packages/lucide-preact',
},
{
text: 'Lucide Astro',
link: '/guide/packages/lucide-astro',
},
{
text: 'Lucide Static',
link: '/guide/packages/lucide-static',
@@ -117,6 +125,10 @@ const sidebar: UserConfig<DefaultTheme.Config>['themeConfig']['sidebar'] = {
text: 'Designing in Figma',
link: '/guide/design/figma-guide',
},
{
text: 'Designing in Affinity Designer',
link: '/guide/design/affinity-designer-guide',
},
],
},
],

View File

@@ -7,7 +7,16 @@ const props = defineProps<{
href?: string
}>()
const isExternal = computed(() => props.href?.startsWith('http') ?? false)
const component = computed(() => props.href ? 'a' : 'div')
const target = computed(() => isExternal.value ? '_blank' : undefined)
const rel = computed(() => isExternal.value ? 'noreferrer noopener' : undefined)
const onClick = computed(() => {
if(!props.href || isExternal) return
return go(props.href)
})
</script>
<template>
@@ -15,7 +24,9 @@ const component = computed(() => props.href ? 'a' : 'div')
:is="component"
:href="href"
class="badge"
@click="props?.href ? go(href) : undefined"
:target="target"
:rel="rel"
@click="onClick"
>
<slot/>
</component>

View File

@@ -0,0 +1,90 @@
<script setup lang="ts">
import { computed } from 'vue';
const props = defineProps<{
label: string
id: string
value: string
modelValue: string | string[]
}>()
const emit = defineEmits(['change', 'input', 'update:modelValue'])
const model = computed({
get: () => {
if (Array.isArray(props.modelValue)) {
return props.modelValue.includes(props.value)
}
return props.modelValue === props.value
},
set: (value: string) => {
if (Array.isArray(props.modelValue)) {
const newValue = [...props.modelValue]
const index = newValue.indexOf(props.value)
if (value) {
if (index === -1) {
newValue.push(props.value)
}
} else {
if (index !== -1) {
newValue.splice(index, 1)
}
}
emit('update:modelValue', newValue)
} else {
emit('update:modelValue', value)
}
}
})
</script>
<template>
<div class="checkbox-wrapper">
<input
type="checkbox"
class="checkbox"
ref="input"
:id="id"
v-model="model"
v-bind="$attrs"
/>
<label :for="id" class="checkbox-label">
{{ label }}
</label>
</div>
</template>
<style scoped>
.checkbox-wrapper {
display: flex;
align-items: center;
gap: 8px;
}
.checkbox-label {
line-height: 20px;
font-size: 13px;
color: var(--vt-c-text-1);
transition: color .5s;
display: block;
}
.checkbox {
-webkit-appearance: none;
appearance: none;
width: 16px;
height: 16px;
cursor: pointer;
border: 1px solid var(--vp-input-border-color);
background-color: var(--vp-input-switch-bg-color);
border-radius: 4px;
}
.checkbox:checked {
border-color: transparent;
background: url("data:image/svg+xml,%3Csvg width='12px' height='12px' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")
center no-repeat var(--vp-c-brand);;
}
</style>

View File

@@ -3,12 +3,20 @@ import createLucideIcon from 'lucide-vue-next/src/createLucideIcon'
import { search } from '../../../data/iconNodes'
const SearchIcon = createLucideIcon('search', search)
defineProps({
shortcut: {
type: String,
required: false
}
})
</script>
<template>
<button class="fake-input">
<component :is="SearchIcon" class="search-icon"/>
<slot/>
<kbd v-if="shortcut" class="shortcut">{{ shortcut }}</kbd>
</button>
</template>
@@ -33,4 +41,23 @@ const SearchIcon = createLucideIcon('search', search)
border-color: var(--vp-c-brand);
background: var(--vp-c-bg-alt);
}
.shortcut {
margin-left: auto;
padding: 2px 6px;
font-size: 12px;
font-family: inherit;
font-weight: 500;
line-height: 1.5;
color: var(--vp-c-text-3);
background: var(--vp-c-default-soft);
border: 1px solid var(--vp-c-divider);
border-radius: 4px;
}
@media (hover: none) {
.shortcut {
display: none;
}
}
</style>

View File

@@ -1,44 +1,71 @@
<script lang="ts">
export default {
inheritAttrs: false,
}
};
export interface InputProps {
type: string
modelValue: string
type: string;
modelValue: string;
shortcut?: string;
}
</script>
<script setup lang="ts">
import { ref } from 'vue'
import { ref, onMounted, nextTick, watch } from 'vue';
const props = withDefaults(defineProps<InputProps>(), {
type: 'text'
})
type: 'text',
});
const input = ref()
const input = ref();
const wrapperEl = ref();
const shortcutEl = ref();
defineEmits(['change', 'input', 'update:modelValue'])
defineEmits(['change', 'input', 'update:modelValue']);
const updateShortcutSpacing = () => {
nextTick(() => {
if (shortcutEl.value && wrapperEl.value) {
const shortcutWidth = shortcutEl.value.offsetWidth;
wrapperEl.value.style.setProperty('--shortcut-width', `${shortcutWidth}px`);
}
});
};
onMounted(updateShortcutSpacing);
watch(() => props.shortcut, updateShortcutSpacing);
defineExpose({
focus: () => {
input.value.focus()
}
})
input.value.focus();
},
});
</script>
<template>
<div class="input-wrapper">
<slot name="icon" class="icon" />
<div
class="input-wrapper"
ref="wrapperEl"
>
<slot
name="icon"
class="icon"
/>
<input
:type="type"
class="input"
:class="{'has-icon': $slots.icon}"
:class="{ 'has-icon': $slots.icon, 'has-shortcut': shortcut }"
ref="input"
:value="modelValue"
v-bind="$attrs"
@input="$emit('update:modelValue', $event.target.value)"
/>
<kbd
v-if="shortcut"
class="shortcut"
ref="shortcutEl"
>{{ shortcut }}</kbd
>
</div>
</template>
@@ -55,9 +82,15 @@ defineExpose({
height: 40px;
background-color: var(--vp-c-bg-alt);
font-size: 14px;
transition: border-color 0.2s ease-in-out;
}
.input:hover, .input:focus {
.input.has-shortcut {
padding-right: calc(var(--shortcut-width, 40px) + 22px);
}
.input:hover,
.input:focus {
border-color: var(--vp-c-brand);
background: var(--vp-c-bg-alt);
}
@@ -66,11 +99,32 @@ defineExpose({
padding-left: 52px;
}
.shortcut {
position: absolute;
right: 12px;
top: 50%;
transform: translateY(-50%);
padding: 2px 6px;
font-size: 12px;
font-family: inherit;
font-weight: 500;
line-height: 1.5;
color: var(--vp-c-text-3);
background: var(--vp-c-default-soft);
border: 1px solid var(--vp-c-divider);
border-radius: 4px;
pointer-events: none;
}
@media (hover: none) {
.shortcut {
display: none;
}
}
</style>
<style>
.input-wrapper svg {
.input-wrapper > svg {
position: absolute;
left: 16px;
top: 12px;

View File

@@ -1,49 +1,74 @@
<script lang="ts">
export default {
inheritAttrs: false,
}
};
</script>
<script setup lang="ts">
import { computed, ref } from 'vue'
import Input from './Input.vue'
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon'
import { search } from '../../../data/iconNodes'
import { computed, ref } from 'vue';
import Input from './Input.vue';
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon';
import { search, x } from '../../../data/iconNodes';
const SearchIcon = createLucideIcon('search', search)
const SearchIcon = createLucideIcon('search', search);
const XIcon = createLucideIcon('close', x);
interface Props {
modelValue: string
modelValue: string;
shortcut?: string;
}
const props = defineProps<Props>()
const props = defineProps<Props>();
const input = ref()
const input = ref();
const emit = defineEmits(['update:modelValue'])
const emit = defineEmits(['update:modelValue']);
defineExpose({
focus: () => {
input.value.focus()
}
})
input.value.focus();
},
});
const value = computed({
get: () => props.modelValue,
set: (val) => emit('update:modelValue', val)
})
set: (val) => emit('update:modelValue', val),
});
const clear = () => {
value.value = '';
};
</script>
<template>
<Input
ref="input"
type="search"
autofocus
:shortcut="shortcut"
v-bind="$attrs"
v-model="value"
class="input-wrapper"
>
<template #icon>
<component :is="SearchIcon" class="search-icon" />
<template #startIcon>
<component
:is="SearchIcon"
class="search-icon"
/>
</template>
<template #endIcon>
<button
class="clear-button"
type="button"
v-if="value"
>
<component
:is="XIcon"
class="x-icon"
@click="clear"
/>
</button>
</template>
</Input>
</template>
@@ -56,19 +81,43 @@ const value = computed({
padding: 0 10px 0 12px;
width: 100%;
height: 40px;
color: var(--vp-c-text-1);
background-color: var(--vp-c-bg-alt);
transition: border-color 0.15s ease-in-out;
}
.input:hover, .input:focus {
.input:hover,
.input:focus {
border-color: var(--vp-c-brand);
background: var(--vp-c-bg-alt);
}
.input-wrapper:deep(.input) {
/* padding: 12px 24px; */
padding-block: 12px;
font-size: 14px;
height: 48px;
}
.clear-button {
position: absolute;
padding: 4px;
right: 8px;
top: 8px;
width: 32px;
height: 32px;
background: transparent;
border-radius: 6px;
transition: background 0.2s ease;
}
.clear-button:hover {
background: var(--vp-button-alt-bg);
}
.input-wrapper:deep(.input)::-webkit-search-decoration,
.input-wrapper:deep(.input)::-webkit-search-cancel-button,
.input-wrapper:deep(.input)::-webkit-search-results-button,
.input-wrapper:deep(.input)::-webkit-search-results-decoration {
display: none;
}
</style>

View File

@@ -1,15 +1,22 @@
<script setup>
import { ref } from 'vue'
import { Switch } from '@headlessui/vue'
const enabled = ref(false)
defineProps({
modelValue: {
type: Boolean,
default: false
}
})
const emit = defineEmits(['update:modelValue'])
</script>
<template>
<Switch
v-model="enabled"
:model-value="modelValue"
@update:model-value="emit('update:modelValue', $event)"
class="switch"
:class="{ enabled }"
:class="{ enabled: modelValue }"
>
<span class="thumb" />
</Switch>
@@ -45,7 +52,6 @@
width: 20px;
height: 20px;
border-radius: 50%;
/* background-color: var(--vp-c-neutral); */
box-shadow: var(--vp-shadow-1);
}

View File

@@ -42,7 +42,7 @@ onMounted(() => {
font-weight: 400;
background: var(--vp-c-brand-dark);
color: white;
z-index: 10;
z-index: 99;
white-space: nowrap;
padding: 2px 8px;
border-radius: 4px;

View File

@@ -9,7 +9,7 @@ export default {
}
return null;
})
.then((res) => res.tag_name);
.then((res) => res?.tag_name);
return {
version,

View File

@@ -8,8 +8,6 @@ import { data } from './HomeHeroBefore.data'
<HomeContainer class="container">
<Badge
:href="`https://github.com/lucide-icons/lucide/releases/tag/${data.version}`"
target="_blank"
rel="noreferrer noopener"
>v{{ data.version }}</Badge>
</HomeContainer>
</template>

View File

@@ -5,10 +5,15 @@ import LucideIcon from '../base/LucideIcon.vue'
import { useRouter } from 'vitepress';
import { random } from 'lodash-es'
import FakeInput from '../base/FakeInput.vue'
import useSearchShortcut from '../../utils/useSearchShortcut'
const { go } = useRouter()
const intervalTime = shallowRef()
const { shortcutText: kbdSearchShortcut } = useSearchShortcut(() => {
go('/icons/?focus')
})
const getInitialItems = () => data.icons.slice(0, 48)
const items = ref(getInitialItems())
let id = items.value.length + 1
@@ -64,7 +69,11 @@ onBeforeUnmount(() => {
</div>
</TransitionGroup>
</div>
<FakeInput @click="go('/icons/?focus')" class="search-box">
<FakeInput
@click="go('/icons/?focus')"
:shortcut="kbdSearchShortcut"
class="search-box"
>
Search {{ data.iconsCount }} icons...
</FakeInput>
</div>

View File

@@ -48,6 +48,7 @@ function resetStyle () {
color.value = 'currentColor'
strokeWidth.value = 2
size.value = 24
absoluteStrokeWidth.value = false
}
watch(absoluteStrokeWidth, (enabled) => {
@@ -171,16 +172,14 @@ watch(absoluteStrokeWidth, (enabled) => {
margin-top: 32px;
padding: 0;
background: none;
max-width: 280px;
}
@media (min-width: 640px) {
.card {
display: grid;
grid-template-columns: 8fr 10fr;
}
/*
/*
.card-column {
flex: 1;
} */

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

@@ -1,17 +1,23 @@
<script setup lang="ts">
import Card from '../base/Card.vue'
import HomeSectionTitle from './HomeSectionTitle.vue'
import VPButton from 'vitepress/dist/client/theme-default/components/VPButton.vue'
import Card from '../base/Card.vue';
import HomeSectionTitle from './HomeSectionTitle.vue';
import VPButton from 'vitepress/dist/client/theme-default/components/VPButton.vue';
</script>
<template>
<HomeSectionTitle :headingLevel="3">
Sponsor the Lucide maintainers
</HomeSectionTitle>
<HomeSectionTitle :headingLevel="3"> Sponsor the Lucide maintainers </HomeSectionTitle>
<Card class="sponsor-card">
<img
src="/open-collective.png"
src="/company-logos/open-collective-light.svg"
alt="Open Collective logo"
class="logo light"
width="242"
height="42"
/>
<img
src="/company-logos/open-collective-dark.svg"
alt="Open Collective logo"
class="logo dark"
width="242"
height="42"
/>
@@ -37,6 +43,13 @@ import VPButton from 'vitepress/dist/client/theme-default/components/VPButton.vu
margin: auto 0;
}
html.dark .logo.dark {
display: none;
}
html:not(.dark) .logo.light {
display: none;
}
@media (min-width: 640px) {
.sponsor-card {
flex-direction: row;

View File

@@ -3,7 +3,7 @@ export interface TeamMember {
name: string
title: string
image: string
sponsor: string
sponsor?: string
socialLinks: DefaultTheme.SocialLink[]
}
</script>
@@ -75,6 +75,7 @@ defineProps<TeamMember>()
font-weight: 500;
color: var(--vp-c-text-2);
text-align: center;
text-wrap: balance;
margin-bottom: 16px;;
}

View File

@@ -2,25 +2,35 @@
import { useData } from 'vitepress';
import { useSessionStorage } from '@vueuse/core';
import IconButton from '../base/IconButton.vue';
import VPDocAsideCarbonAds from 'vitepress/dist/client/theme-default/components/VPDocAsideCarbonAds.vue'
// import VPDocAsideCarbonAds from 'vitepress/dist/client/theme-default/components/VPDocAsideCarbonAds.vue'
import { x } from '../../../data/iconNodes'
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon';
import { onMounted, ref } from 'vue';
const { theme } = useData()
const showAd = useSessionStorage('show-carbon-ads',true)
const showAd = useSessionStorage('show-carbon-ads', true)
const carbonLoaded = ref(true)
defineProps<{
drawerOpen: boolean
}>()
const CloseIcon = createLucideIcon('Close', x)
onMounted(() => {
setTimeout(() => {
if (window?._carbonads == null) {
carbonLoaded.value = false
}
}, 5000)
})
</script>
<template>
<div
:class="{
'drawer-open': drawerOpen,
'hide-ad': !showAd
'hide-ad': !(showAd && carbonLoaded)
}"
class="floating-ad"
v-if="theme.carbonAds"

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