Compare commits

..
Author SHA1 Message Date
Xouguigithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>KarsaEric Fennis
d771617ede feat(icons): added lighthouse icon (#4507)
* feat: add lighthouse icon

* use case

* Update icons/lighthouse.json

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

* Update icons/lighthouse.json

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

* Update icons/lighthouse.json

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

* icon change

* updated use cases to match guide

* Update lighthouse.json

* Update lighthouse.svg

* Update lighthouse.svg

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2026-09-03 10:48:39 +02:00
dependabot[bot]anddependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> c711d5990c chore(deps): bump softprops/action-gh-release (#4781)
Bumps the github-actions group with 1 update: [softprops/action-gh-release](https://github.com/softprops/action-gh-release).


Updates `softprops/action-gh-release` from 3.0.2 to 3.0.3
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/3d0d9888cb7fd7b750713d6e236d1fcb99157228...efb35369e0ad2afab669f228072c1b0d510eae64)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 3.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-03 10:39:38 +02:00
Ethan Hazel dce50dd0c9 fix(docs): updated artboard name on illustrator template (#4724) 2026-09-01 17:01:16 +02:00
32703fc21a feat(icons): added shopping-cart-plus & shopping-cart-minus icons (#4248)
* Added icons/shopping-cart-plus.svg

* Added icons/shopping-cart-plus.json

* feat(icons): add shopping-cart variants

Updated the base shopping-cart icon and added the plus and minus variants to satisfy the request in issue #1746. All icons have been redesigned to stay consistent with each other, adhering to the official Lucide contribution guidelines.

Closes #1746
Base icon design is related to PR #2909

* fix(icons): update shopping-cart variants

* feat(metadata): simplify search tags for shopping-cart variants

* Update shopping-cart.json

* Update shopping-cart-minus.svg

* Update shopping-cart-plus.svg

* Update shopping-cart-plus.json

* Update shopping-cart-minus.json

---------

Co-authored-by: Jakob Guddas <github@jguddas.de>
Co-authored-by: Karsa <contact@karsa.org>
2026-09-01 16:44:59 +02:00
Jakob Guddasgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>Copilot Autofix powered by AIKarsaEric Fennis
5c7c083e56 feat(icons): added shrimp-off icon (#3613)
* Added icons/shrimp-off.svg

* Added icons/shrimp-off.json

* Update icons/shrimp-off.json

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

* Updated icons/shrimp.svg

* Updated icons/shrimp-off.svg

* Apply suggestion from @jguddas

* Potential fix for pull request finding

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

* Update shrimp-off.json

* Potential fix for pull request finding

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

* Update icons/shrimp-off.json

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

* Update shrimp.json

* Update shrimp-off.json

* Update shrimp-off.json

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Karsa <contact@karsa.org>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2026-09-01 16:39:50 +02:00
c646eea633 feat(icons): added bridge icon (#3949)
* Added icons/bridge.svg

* Added icons/bridge.json

* Replace icon design with jamiemlaw's design from issue #3364

* Add jamiemlaw as a contributor and tags to bridge.json

* Apply suggestion from @karsa-mistmere

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

* Add empty use-cases array to bridge.json

* Update bridge.json

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
2026-09-01 15:39:43 +02:00
LouisandKarsa 066f42db8b feat(icons): added can icon (#4767)
* can icon

* cleaned using lucide studio

* added use cases and tags

* Update can.svg

* Update can.json

---------

Co-authored-by: Karsa <contact@karsa.org>
2026-09-01 15:35:33 +02:00
eaace8a81b feat(icons): Add mail-pen icon (#4399)
* Add mail pen icon

* Update icons/mail-pen.svg

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

* Update mail-pen.svg

* Update mail-pen.json

Added contributors from mail & missing metadata

---------

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Karsa <contact@karsa.org>
2026-09-01 15:33:18 +02:00
2119ad0eb1 feat(icons): add whistle icon (#3006)
* added icons/whistle.svg

* updated icons/whistle.svg

* updated whistle-icon

* Fix indentation

* Update whistle icon from karsa

* Update whistle.json

* Potential fix for pull request finding

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

* Update whistle.json

---------

Co-authored-by: timmy471 <timilehin.ayantunji@etranzact.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Karsa <contact@karsa.org>
2026-09-01 15:33:00 +02:00
Karsa c5a83d26ff fix(icons): added RWD metadata to monitor, tablet & smartphone icons (#4775) 2026-09-01 09:09:51 +02:00
42 changed files with 4597 additions and 1516 deletions
+1 -1
View File
@@ -102,7 +102,7 @@ jobs:
echo '${{ steps.change-log.outputs.CHANGE_LOG }}'
- name: Create Release
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3
with:
tag_name: ${{ steps.new-version.outputs.NEW_VERSION }}
name: Version ${{ steps.new-version.outputs.NEW_VERSION }}
+1 -1
View File
@@ -169,7 +169,7 @@ jobs:
zip -r lucide-icons-${{ needs.prepare.outputs.VERSION }}.zip icons
- name: Release zip and fonts
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3
with:
tag_name: ${{ needs.prepare.outputs.VERSION }}
+1 -1
View File
@@ -3,7 +3,7 @@
.next
.obsidian
.now
.cache
.idea
.env
node_modules
dist
File diff suppressed because one or more lines are too long
+36
View File
@@ -0,0 +1,36 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"Nykoula",
"jamiemlaw"
],
"use-cases": [
"Representing crossing infrastructure in navigation apps",
"Marking river crossings or connecting routes on maps",
"Showing clearance-limited transit zones in maritime dashboards"
],
"tags": [
"overpass",
"cross over",
"traverse",
"viaduct",
"suspension",
"infrastructure",
"transportation",
"crossing",
"road",
"river",
"gate",
"golden",
"travel",
"landmark",
"route",
"maritime",
"clearance"
],
"categories": [
"travel",
"transportation",
"buildings"
]
}
+18
View File
@@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 9.728V16" />
<path d="M14 9.728V16" />
<path d="M18 20V4" />
<path d="m22 11-4-4A7.5 7.5 0 0 1 6 7l-4 4" />
<path d="M22 16H2" />
<path d="M6 20V4" />
</svg>

After

Width:  |  Height:  |  Size: 384 B

+28
View File
@@ -0,0 +1,28 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"l0uisgrange",
"karsa-mistmere"
],
"use-cases": [
"Representing canned food in grocery or delivery apps",
"Labelling pantry items or nonperishable inventory",
"Indicating metal recycling or recyclable containers",
"Denoting canned ingredients in recipe or meal-planning interfaces"
],
"tags": [
"food",
"storage",
"groceries",
"tin",
"metal",
"recyclable",
"container",
"pantry",
"grocery",
"preserved"
],
"categories": [
"food-beverage"
]
}
+16
View File
@@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M21 10.5a9 2.5 0 01-18 0v8a9 2.5 0 0018 0z" />
<path d="M21 10.5A9 2.5 25.32 004.59 3.47 9 2.5 25.32 0021 10.5" />
<path d="M3 10.5a9 2.5 0 016.527-2.405" />
<path d="M9 16.858a31 31 0 006 0" />
</svg>

After

Width:  |  Height:  |  Size: 420 B

+45
View File
@@ -0,0 +1,45 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"xougui",
"karsa-mistmere"
],
"use-cases": [
"Marking coastal landmarks or harbor entrances on maps",
"Indicating navigation beacons in maritime dashboards",
"Flagging maritime safety or beacon maintenance tasks",
"Representing guidance or guiding light in onboarding or help interfaces"
],
"tags": [
"lighthouse",
"beacon",
"coast",
"navigation",
"tower",
"sea",
"ocean",
"maritime",
"guide",
"safety",
"light",
"shine",
"port",
"marine",
"faro",
"signal",
"nautical",
"harbor",
"shore",
"lightbeam",
"wayfinding",
"guidance",
"onboarding",
"help",
"landmark"
],
"categories": [
"buildings",
"navigation",
"travel"
]
}
+24
View File
@@ -0,0 +1,24 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 3V2" />
<path d="M16.066 16.865 7 22l2-11V6a3 3 0 016 0v5l2 11" />
<path d="m19.792 4.5.866-.5" />
<path d="m19.797 13.5.866.5" />
<path d="M21 9h1" />
<path d="M3 9H2" />
<path d="m4.203 13.5-.866.5" />
<path d="M4.208 4.5 3.342 4" />
<path d="M5.5 22h13" />
<path d="m7.932 16.875 7.377-4.178" />
<path d="M8 11h8" />
<path d="M8 7h8" />
</svg>

After

Width:  |  Height:  |  Size: 585 B

+31
View File
@@ -0,0 +1,31 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"karsa-mistmere",
"ericfennis",
"jguddas",
"jennieboops"
],
"use-cases": [
"Composing or editing email messages",
"Drafting letters in mail interfaces",
"Editing email addresses on settings pages"
],
"tags": [
"email",
"message",
"letter",
"pen",
"edit",
"compose",
"draft",
"write",
"writing",
"create",
"reply"
],
"categories": [
"mail"
]
}
+15
View File
@@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M15.506 17.646A2 2 0 0015 18.5l-.837 2.87a.5.5 0 00.62.62l2.87-.837a2 2 0 00.854-.506l3.013-3.009a1 1 0 00-3.004-3.004z" />
<path d="M22 10.346V6a2 2 0 00-2-2H4a2 2 0 00-2 2v12a2 2 0 002 2h6.396" />
<path d="m22 7-8.991 5.727a2 2 0 01-2.009 0L2 7" />
</svg>

After

Width:  |  Height:  |  Size: 474 B

+6
View File
@@ -8,9 +8,15 @@
"use-cases": [],
"tags": [
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"screen sharing",
"connected",
"success",
"verified",
"running",
"active",
"virtual machine",
+7 -4
View File
@@ -9,6 +9,12 @@
],
"use-cases": [],
"tags": [
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"virtual machine",
"virtual desktop",
"vm",
@@ -20,10 +26,7 @@
"software as a service",
"saas",
"workstation",
"environment",
"tv",
"screen",
"display"
"environment"
],
"categories": [
"connectivity",
+3 -1
View File
@@ -8,13 +8,15 @@
"use-cases": [],
"tags": [
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"virtual machine",
"vm",
"executable",
"settings",
"cog",
"edit",
"gear",
"configuration",
+6
View File
@@ -8,9 +8,15 @@
"use-cases": [],
"tags": [
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"screen sharing",
"status",
"notification",
"indicator",
"running",
"active",
"virtual machine",
+6 -1
View File
@@ -8,10 +8,15 @@
"use-cases": [],
"tags": [
"tv",
"computer",
"screen",
"display",
"desktop",
"download"
"external display",
"screen sharing",
"download",
"remote",
"cast"
],
"categories": [
"connectivity",
+11 -1
View File
@@ -7,7 +7,17 @@
],
"use-cases": [],
"tags": [
"share"
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"screen sharing",
"offline",
"disabled",
"disconnected",
"power"
],
"categories": [
"connectivity",
+4
View File
@@ -8,12 +8,16 @@
"use-cases": [],
"tags": [
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"screen sharing",
"video",
"movie",
"film",
"pause",
"suspend",
"hibernate",
"boot",
+4
View File
@@ -8,12 +8,16 @@
"use-cases": [],
"tags": [
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"screen sharing",
"video",
"movie",
"film",
"play",
"running",
"start",
"boot",
+12 -4
View File
@@ -6,17 +6,25 @@
"jguddas",
"ericfennis"
],
"use-cases": [],
"use-cases": [
"Showing synchronization between desktop and mobile devices",
"Representing responsive previews across screen sizes",
"Indicating casting or screen sharing to a display"
],
"tags": [
"smartphone",
"phone",
"cellphone",
"device",
"mobile",
"desktop",
"monitor",
"screen",
"display",
"external display",
"screen sharing",
"responsive",
"screens"
"screens",
"sync",
"cast"
],
"categories": [
"connectivity",
+11 -2
View File
@@ -6,9 +6,18 @@
],
"use-cases": [],
"tags": [
"devices",
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"connect",
"cast"
"cast",
"audio",
"sound",
"volume",
"presentation"
],
"categories": [
"connectivity",
+3
View File
@@ -8,9 +8,12 @@
"use-cases": [],
"tags": [
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"screen sharing",
"video",
"movie",
"film",
+5 -1
View File
@@ -8,12 +8,16 @@
"use-cases": [],
"tags": [
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"upload",
"connect",
"remote",
"screen share"
"screen sharing",
"cast"
],
"categories": [
"connectivity",
+6
View File
@@ -8,12 +8,18 @@
"use-cases": [],
"tags": [
"tv",
"computer",
"screen",
"display",
"desktop",
"external display",
"screen sharing",
"virtual machine",
"vm",
"close",
"error",
"failed",
"disconnected",
"stop",
"suspend",
"remove",
+9 -1
View File
@@ -7,11 +7,19 @@
"jguddas",
"karsa-mistmere"
],
"use-cases": [],
"use-cases": [
"Representing desktop displays and computer monitors",
"Showing screen-sharing or external display settings",
"Indicating virtual machines in infrastructure dashboards"
],
"tags": [
"tv",
"computer",
"desktop",
"screen",
"display",
"external display",
"screen sharing",
"virtual machine",
"vm"
],
+35
View File
@@ -0,0 +1,35 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"ajay199210",
"jguddas",
"ericfennis",
"karsa-mistmere"
],
"use-cases": [
"Removing products from a shopping cart",
"Updating order contents in ecommerce apps",
"Indicating fewer items in a purchase"
],
"tags": [
"trolley",
"cart",
"basket",
"e-commerce",
"ecommerce",
"store",
"purchase",
"products",
"items",
"checkout",
"order",
"retail",
"remove",
"decrease",
"quantity",
"subtract"
],
"categories": [
"shopping"
]
}
+18
View File
@@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M16 5h6" />
<path d="m2.05 2.05 1.099-.028a1 1 0 011.008.815l2.69 14.347A1 1 0 007.83 18H18" />
<path d="M4.564 5H12" />
<path d="M6.25 14h12.712a2 2 0 001.991-1.57l.514-3.113" />
<circle cx="18" cy="20" r="2" />
<circle cx="8" cy="20" r="2" />
</svg>

After

Width:  |  Height:  |  Size: 474 B

+35
View File
@@ -0,0 +1,35 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"ajay199210",
"jguddas",
"ericfennis",
"karsa-mistmere"
],
"use-cases": [
"Adding products to a shopping cart",
"Saving products for purchase in ecommerce apps",
"Confirming items were added to an order"
],
"tags": [
"trolley",
"cart",
"basket",
"e-commerce",
"ecommerce",
"store",
"purchase",
"products",
"items",
"checkout",
"order",
"retail",
"add",
"increase",
"quantity",
"buy"
],
"categories": [
"shopping"
]
}
+19
View File
@@ -0,0 +1,19 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M16 5h6" />
<path d="M19 2v6" />
<path d="m2.05 2.05 1.099-.028a1 1 0 011.008.815l2.69 14.347A1 1 0 007.83 18H18" />
<path d="M4.564 5H12" />
<path d="M6.25 14h12.712a2 2 0 001.991-1.57l.172-1.041" />
<circle cx="18" cy="20" r="2" />
<circle cx="8" cy="20" r="2" />
</svg>

After

Width:  |  Height:  |  Size: 497 B

+36
View File
@@ -0,0 +1,36 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere",
"jguddas"
],
"use-cases": [
"Indicating shellfish allergen information",
"Marking seafood-free items on a menu"
],
"tags": [
"marine",
"creature",
"fisherman",
"ocean",
"fresh",
"cuisine",
"marine-life",
"seafood",
"shellfish",
"crustacean",
"prawn",
"scallop",
"whelk",
"arthropod",
"littleneck",
"quahog",
"allergy",
"intolerance",
"diet"
],
"categories": [
"animals",
"food-beverage"
]
}
+19
View File
@@ -0,0 +1,19 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 2a3.28 3.28 0 003.227 1.798l6.17-.561A1 1 0 1119.614 8H13.5" />
<path d="M11 20c-.5.5-1.12 1-2.5 1a1 1 0 010-5H12a7 7 0 003.283-.817" />
<path d="M11 22c-.5-.5-1.12-1-2.5-1a6.5 6.5 0 01-5.63-3.25 6.44 6.44 0 015.236-9.744" />
<path d="M18.04 12.54A7 7 0 0019 9V8" />
<path d="m2 2 20 20" />
<path d="M8 16c-2 0-4.5-4-4-6" />
<path d="M9.43 9.33A8.5 8.5 0 0010 16" />
</svg>

After

Width:  |  Height:  |  Size: 602 B

+9 -2
View File
@@ -14,9 +14,16 @@
"arthropod",
"littleneck",
"quahog",
"cherrystone"
"marine",
"creature",
"fisherman",
"ocean",
"fresh",
"cuisine",
"marine-life"
],
"categories": [
"animals"
"animals",
"food-beverage"
]
}
+5 -5
View File
@@ -9,9 +9,9 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M11 12h.01" />
<path d="M13 22c.5-.5 1.12-1 2.5-1-1.38 0-2-.5-2.5-1" />
<path d="M14 2a3.28 3.28 0 0 1-3.227 1.798l-6.17-.561A2.387 2.387 0 1 0 4.387 8H15.5a1 1 0 0 1 0 13 1 1 0 0 0 0-5H12a7 7 0 0 1-7-7V8" />
<path d="M14 8a8.5 8.5 0 0 1 0 8" />
<path d="M16 16c2 0 4.5-4 4-6" />
<path d="M10 2a3.28 3.28 0 003.227 1.798l6.17-.561A1 1 0 1119.614 8H8.5a6.44 6.44 0 00-5.63 9.75A6.5 6.5 0 008.5 21c1.38 0 2-.5 2.5-1" />
<path d="M10 8a8.5 8.5 0 000 8" />
<path d="M11 22c-.5-.5-1.12-1-2.5-1a1 1 0 010-5H12a7 7 0 007-7V8" />
<path d="M13 12h.01" />
<path d="M8 16c-2 0-4.5-4-4-6" />
</svg>

Before

Width:  |  Height:  |  Size: 507 B

After

Width:  |  Height:  |  Size: 518 B

+11 -2
View File
@@ -5,12 +5,21 @@
"mittalyashu",
"ericfennis"
],
"use-cases": [],
"use-cases": [
"Representing mobile phones in device settings",
"Showing mobile access or app availability",
"Indicating phone-based communication channels"
],
"tags": [
"phone",
"cellphone",
"device",
"screen"
"mobile",
"screen",
"display",
"touchscreen",
"portable",
"responsive"
],
"categories": [
"connectivity",
+14 -3
View File
@@ -3,13 +3,24 @@
"contributors": [
"danielbayley"
],
"use-cases": [],
"use-cases": [
"Previewing layouts across mobile device sizes",
"Testing responsive behavior on handheld screens",
"Representing mobile-first design workflows"
],
"tags": [
"phone",
"cellphone",
"device",
"mobile",
"screen",
"display",
"touchscreen",
"portable",
"responsive",
"screens",
"browser",
"testing",
"mobile"
"testing"
],
"categories": [
"devices",
+11 -2
View File
@@ -4,9 +4,18 @@
"colebemis",
"ericfennis"
],
"use-cases": [],
"use-cases": [
"Representing tablet devices in responsive layouts",
"Showing touch-based interfaces on larger mobile screens"
],
"tags": [
"device"
"device",
"mobile",
"screen",
"display",
"touchscreen",
"portable",
"responsive"
],
"categories": [
"devices"
+41
View File
@@ -0,0 +1,41 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"briz123",
"UsamaKhan",
"ajokt123",
"timmy471",
"jguddas",
"karsa-mistmere"
],
"use-cases": [
"Representing coaches or referees in sports apps",
"Signaling alerts in training interfaces",
"Indicating traffic control or public safety roles",
"Marking lifeguard equipment in safety systems"
],
"tags": [
"alert",
"signal",
"sound",
"blow",
"noise",
"coach",
"trainer",
"referee",
"gym",
"game",
"training",
"sports",
"traffic cops",
"police",
"lifeguard",
"safety",
"rescue",
"emergency"
],
"categories": [
"sports",
"notifications"
]
}
+14
View File
@@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 6v4" />
<path d="M21 6a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1h-5.675A7 7 0 1 1 9 6z" />
</svg>

After

Width:  |  Height:  |  Size: 304 B

-1
View File
@@ -26,7 +26,6 @@
"generate:sponsors": "node scripts/updateSponsors.mts",
"generate:contributors": "node ./scripts/updateContributors.mts icons/*.svg",
"generate:nextJSAliases": "node ./scripts/generateNextJSAliases.mts",
"icon-usage": "node ./scripts/iconUsage.mts",
"suggest:metadata": "node ./scripts/suggestMetaData.mts",
"suggest:metadata:watch": "node --env-file .env --watch ./scripts/suggestMetaData.mts",
"postinstall": "husky install",
-41
View File
@@ -1,41 +0,0 @@
# Lucide Icon Usage Estimator
Run with:
```sh
pnpm icon-usage trash trash-2
```
The default is a bounded first pass over `lucide-react`, with two GitHub search pages and up to 200 candidate files validated per query slice. Use `--all-packages` to include every supported package, or `--thorough` for the previous broader limits of 10 pages and 1,000 candidate files per query slice.
GitHub code search requires authentication, so set `GITHUB_TOKEN` or pass `--token-env <NAME>`.
Use `--verbose` or `-v` to print detailed progress logs to stderr, including queries, pages, cache hits, retries, content validation, and matches.
## Method
The script uses GitHub REST `GET /search/code` with package-scoped, code-extension-scoped queries, then fetches each returned file and validates common Lucide import styles before counting a repository. Counts are deduplicated by `owner/repository`.
Output includes overall repository counts and per-package statistics. Per-package statistics are computed from validated matches for that package, so a repository using `trash` via `lucide-react` and `trash-2` via another package is represented correctly in both the overall totals and each package section.
Supported packages are `lucide-react`, `@lucide/vue`, `@lucide/svelte`, `@lucide/angular`, `@lucide/astro`, `lucide-preact`, `lucide-solid`, `lucide`, and `@lucide/lab`. The default package is `lucide-react` because all packages plus file-scope slicing is slow for broad icons; use `--all-packages` when that broader sample is needed.
Searches are split across relevant implementation file scopes using REST code search qualifiers such as `language:typescript`, `language:javascript`, `extension:vue`, and `extension:svelte`. Returned paths are still filtered by expected extensions before content is fetched, so Markdown and prompt/spec files are intentionally excluded by default because they frequently contain examples or generated implementation notes rather than live package usage.
By default, queries exclude forks, archived repositories, generated files, and vendored files using GitHub code search qualifiers. Use `--include-forks`, `--include-archived`, `--include-generated`, or `--include-vendored` to include them.
## GitHub API Limits
GitHub REST code search is authenticated and rate-limited to 10 requests per minute. Each query can return at most 1,000 results, with up to 100 results per page. Search only covers default branches and files smaller than 384 KB.
`total_count` and `incomplete_results` come from GitHub search and are recorded in JSON metadata. If a query exceeds the 1,000-result cap or returns `incomplete_results: true`, the script reports a warning and the result should be treated as incomplete rather than exhaustive.
GitHub's newer code search syntax is usable for public code search queries and supports qualifiers such as `NOT is:fork`, `NOT is:archived`, `NOT is:generated`, and `NOT is:vendored`, but the documented REST code search endpoint remains capped for result retrieval.
## Practical Strategy For Broad Icons
For common icons that hit search caps, use the script output as lower-bound or sampled evidence. The most defensible follow-up is to narrow query slices and cite them separately, for example by package, language/path, or repository cohorts, while preserving the JSON metadata for every query performed.
## Known Biases
Only public GitHub repositories visible to the token are observable. Private repositories and consumers outside GitHub are absent. GitHub is not representative of every Lucide consumer. Framework/package usage can differ materially. GitHub indexing may be incomplete or delayed. Generated or vendored code can still create false positives when GitHub does not identify it. Very common icons may exceed GitHub search-result caps.
File diff suppressed because it is too large Load Diff