Compare commits

..
Author SHA1 Message Date
Jakob Guddas 4f94ac6b77 docs: lower cased and at ref to rfc 2026-09-13 23:00:35 +02:00
Jakob Guddas 93dd84c0d0 Apply suggestion from @jguddas 2026-09-13 15:27:43 +02:00
Jakob Guddas feb9abc633 Update design-principles.md 2026-09-13 15:12:42 +02:00
Jakob Guddas 44438b8d8a docs: remove specification 2026-09-13 15:05:41 +02:00
34 changed files with 149 additions and 802 deletions
@@ -298,11 +298,11 @@ Link text should describe the destination or concept.
**Do:**
> See the [Icon Design Specification](./specification) for exact dimensions and spacing requirements.
> See the [Icon Design Guide](./design-principles) for exact dimensions and spacing requirements.
**Don't:**
> For more information, [click here](./specification).
> For more information, [click here](./design-principles).
Avoid generic link text such as:
-5
View File
@@ -60,11 +60,6 @@ export const resourcesSidebar = [
link: '/contribute/icons/design-principles',
desc: 'Learn the visual principles that shape Lucide icons with side-by-side examples.',
},
{
text: 'Design specification',
link: '/contribute/icons/specification',
desc: 'Review the technical requirements every Lucide icon must meet.',
},
{
text: 'Naming conventions',
link: '/contribute/icons/naming-conventions',
+60 -25
View File
@@ -8,7 +8,9 @@ Lucide is a consistent icon set, not a collection of unrelated icons. Every icon
This guide explains the visual rules behind Lucide icons and how to use them when designing new icons.
For the full rule list, see the [icon design specification](./specification)
::: info Requirement levels
This guide uses normative terms such as **must**, **should**, and **may** as defined in [RFC 2119](https://www.rfc-editor.org/info/rfc2119/).
:::
## 1. Use a 24 × 24-pixel canvas
@@ -94,7 +96,9 @@ Don't use **inside or outside** strokes. They change how line joins appear, crea
## 7. Use consistent corner radii
Almost every sharp corner **should** be rounded.
Corner radius depends on the size and angle of the element.
### 7.1. Sharp corners **should** be rounded unless the geometry of the icon requires otherwise
:::: example
::: do ../../images/border-radius-correct.svg?raw=true
@@ -105,29 +109,44 @@ Don't use **sharp corners**.
:::
::::
Corner radius depends on the size of the element and the angle. For 90° angles:
### 7.2. Elements at least 8 pixels wide or tall **should** use a 2-pixel corner radius for 90° corners
:::: example
::: do ../../images/2px-border-radius.svg?raw=true
Use a **2-pixel corner radius** for shapes that are at least 8 pixels wide or tall.
:::
::: do ../../images/1px-border-radius.svg?raw=true
::::
### 7.3. Elements smaller than 8 pixels **should** use a 1-pixel corner radius for 90° corners
Use a **1-pixel corner radius** for shapes smaller than 8 pixels.
:::: example
::: do ../../images/1px-border-radius.svg?raw=true
:::
::::
There are exceptions:
### 7.4. Diagonal lines meeting at a 90° angle **should** use a radius that preserves pixel-grid alignment
Diagonal lines that meet at a right angle usually need a **2.41 pixel** radius (1+√2) to stay aligned to the grid.
:::: example
::: do ../../images/border-radius-90deg.svg?raw=true
Diagonal lines that meet at a right angle usually need a **2.41 pixel** radius (1+√2) to stay aligned to the grid.
:::
::: do ../../images/border-radius-arbitrary.svg?raw=true
Even **very sharp corners** usually need a small amount of rounding. The exact amount depends on the shape.
:::
::::
Avoid rounding corners **where multiple lines meet**.
### 7.5. Other acute corners **should** use an appropriate amount of rounding based on their geometry
Even **very sharp corners** usually need a small amount of rounding. The exact amount depends on the shape.
:::: example
::: do ../../images/border-radius-arbitrary.svg?raw=true
:::
::::
### 7.6. Corners where lines cross **must not** be rounded
Corners where multiple lines meet **must not** be rounded. Keep corners sharp where multiple lines meet so the icon scales well.
:::: example
::: do ../../images/border-radius-line-join.svg?raw=true
@@ -138,9 +157,15 @@ Don't round corners where more than two lines meet. This can make the icon scale
:::
::::
### 7.7. Non-outlined arrows **must not** be rounded
Non-outlined arrows **must not** be rounded.
If the arrow is an outline shape, it **should** be rounded.
## 8. Keep at least 2 pixels between elements
Distinct elements **must** have at least 2 pixels of visual spacing between them.
### 8.1. Distinct elements **must** have at least 2 pixels of visual spacing between them
:::: example
::: do ../../images/2px-element-spacing.svg?raw=true
@@ -151,7 +176,9 @@ Don't use gaps smaller than **2 pixels** between distinct elements.
:::
::::
This also applies inside shapes. Most inner gaps **should** be at least 2 pixels wide.
### 8.2. Inner gaps **should** be at least 2 pixels wide
The 2-pixel gap rule also applies inside shapes. Most inner gaps **should** be at least 2 pixels wide.
:::: example
::: do ../../images/2px-inner-spacing.svg?raw=true
@@ -173,7 +200,9 @@ If the circle **overlaps** the shape, the gap should be **wider**.
:::
::::
The 2 pixel spacing also applies when elements visually connect or intersect.
### 8.3. Visual spacing **should** remain consistent when elements connect or intersect
Spacing **should** remain visually consistent where elements connect or intersect. Elements **must not** connect without keeping at least 2 pixels of spacing, and **should not** terminate with an abrupt cut.
:::: example
::: dont ../../images/2px-element-spacing-connected.svg?raw=true
@@ -184,9 +213,13 @@ Don't use **abrupt cuts** where one element meets another.
:::
::::
### 8.4. Off-variants **may** omit the 2-pixel gap rule
The `-off` variants have their own design language and **may** omit the 2-pixel gap rule.
## 9. Aim for consistent visual weight
Icons should have a similar visual weight when viewed alongside each other.
Icons **should** have a similar visual weight when viewed alongside each other.
:::: example
@@ -208,7 +241,7 @@ Place your icon next to `circle` or `square`, then blur both icons. Your icon sh
## 10. Balance icons visually
Icons should look centered and balanced within the canvas.
Icons **should** be visually centered within the canvas.
:::: example
::: do ../../images/visually-centered-do.svg?raw=true
@@ -221,7 +254,7 @@ This icon feels shifted toward the top left.
:::: example
::: do ../../images/visually-centered-symmetrical-do.svg?raw=true
Symmetrical icons should remain geometrically centered.
Symmetrical icons **should** remain geometrically centered.
:::
::: dont ../../images/visually-centered-symmetrical-dont.svg?raw=true
Don't place symmetrical icons off-center for no good reason.
@@ -229,14 +262,14 @@ Don't place symmetrical icons off-center for no good reason.
::::
::: tip
Geometric centering does not always look centered. Asymmetrical shapes may need a small adjustment.
Geometric centering does not always look centered. Asymmetrical icons **may** be moved slightly off center so they look visually centered.
Compare your icon with `circle` or `square` side by side and stacked vertically. If it looks shifted, adjust it.
:::
## 11. Keep density low
Lucide icons should have a similar level of detail.
Icons **should** have a level of detail similar to other Lucide icons.
:::: example
::: do ../../images/density-optimal.svg?raw=true
@@ -257,7 +290,7 @@ View the icon at its intended size and blur it. Areas that turn dark may have to
## 12. Use smooth, simple curves
Curves should be smooth and as simple as the shape allows.
Curves **should** be smooth and as simple as the shape allows. Arcs and quadratic Bézier curves **should** be preferred where possible. Cubic Bézier curves **may** be used where necessary.
:::: example
::: do ../../images/curvature-smooth.svg?raw=true
@@ -276,7 +309,7 @@ Avoid extra control points. They make shapes harder to edit and can create small
## 13. Design for the pixel grid
Lucide icons should look sharp at small sizes, including on low-density displays.
Lucide icons **should** look sharp at small sizes, including on low-density displays. Coordinates and centers of arcs and other geometric elements **should** align to the pixel grid where possible.
:::: example
::: do ../../images/pixel-perfection-ideal.svg?raw=true
@@ -306,12 +339,14 @@ Avoid placing diagonal lines off-grid. They will appear blurry and optically wid
::::
::: tip
Pixel alignment should support the icon. Do not let it harm shape recognition, smooth curves, or visual balance.
Pixel alignment **should** support the icon. Off-grid geometry **may** be used when required for visual balance, recognizable geometry, or smooth curvature. Pixel alignment **should not** take precedence over the visual quality of the icon.
:::
## 14. Reuse established shapes
When creating a variant, keep the base icon geometry unless the new idea needs a change.
### 14.1. Variants **should** preserve base icon geometry
When creating a variant, the base icon geometry, placement, and orientation **should** be preserved unless the new icon requires a change.
:::: example
::: do ../../images/established-shapes-base-do.svg?raw=true
@@ -322,7 +357,7 @@ Don't change the **geometry, placement, or orientation** of base shapes.
:::
::::
Related icons should share shapes and visual patterns when possible.
### 14.2. Related icons **should** share shapes and visual patterns when possible
:::: example
::: do ../../images/established-shapes-sub-do.svg?raw=true
@@ -333,7 +368,7 @@ Don't redesign **existing elements**.
:::
::::
Common modifiers and elements should look consistent across the library.
### 14.3. Common modifiers and elements **should** look consistent across the library
:::: example
::: do ../../images/established-shapes-consistency-do.svg?raw=true
@@ -347,7 +382,7 @@ Don't use **irregular placement or size** compared to existing icons.
::: tip
Preserving the base shape makes related icons work better when users switch between them.
Consistency with an existing icon should not override clarity, balance, or readability. Adjust the shape when needed.
Existing geometry **may** be modified when necessary to satisfy other Lucide design language rules. Consistency with an existing icon **should not** override clarity, balance, or readability.
:::
## Summary
-95
View File
@@ -1,95 +0,0 @@
---
description: Rules Lucide icons must follow.
---
# Icon design specification
This page lists the rules Lucide icons must follow.
For examples and guidance, see the [Lucide design language](./design-principles).
## Requirement levels
These terms show how strictly each rule applies:
- **Must** and **must not** mark required rules.
- **Should** and **should not** mark rules that can flex when needed to make a better icon.
Any exception should be intentional and fit the [Lucide design language](./design-principles).
## Canvas
1. Icons **must** use a 24 × 24-pixel canvas.
2. The canvas **must** be square.
3. Icon strokes **must** remain at least 1 pixel from the edge of the canvas.
## Strokes
1. Strokes **must** be 2 pixels wide.
2. Strokes **must** use round line joins.
3. Open paths **must** use round line caps.
4. Strokes **must** be centered on their paths.
## Corners
1. Sharp corners **should** be rounded unless the geometry of the icon requires otherwise.
2. Elements at least 8 pixels wide or tall **should** use a 2-pixel corner radius for 90° corners.
3. Elements smaller than 8 pixels **should** use a 1-pixel corner radius for 90° corners.
4. Diagonal lines meeting at a 90° angle **should** use a radius that preserves pixel-grid alignment. This radius is typically approximately 2.41 pixels.
5. Acute corners **should** use an appropriate amount of rounding based on their geometry.
6. Corners where multiple lines meet **should** remain sharp when rounding would cause the icon to render inconsistently at different sizes.
## Spacing
1. Distinct elements **must** have at least 2 pixels of visual separation.
2. Gaps between distinct elements **must not** be smaller than 2 pixels.
3. Inner gaps **should** be at least 2 pixels wide.
4. Spacing **should** remain visually consistent where elements connect or intersect.
5. Elements **should not** terminate with an abrupt cut where another element visually continues or intersects them.
## Visual weight
1. Icons **should** have a visual weight similar to the `circle` and `square` icons.
2. Icons **should not** appear substantially larger, smaller, heavier, or lighter than comparable Lucide icons.
## Alignment and balance
1. Icons **should** be visually centered within the canvas.
2. Asymmetrical icons **may** be moved slightly off center so they look visually centered.
3. Symmetrical icons **should** be geometrically centered.
## Visual density
1. Icons **should** have a level of detail similar to other Lucide icons.
2. Details **should** be simplified when they cause an icon to appear substantially denser than comparable icons.
3. Details that are not necessary for recognition **should** be omitted.
## Curves
1. Continuous curves **should** have smooth curvature.
2. Curves **should not** contain unintended or abrupt changes in curvature.
3. Arcs and quadratic Bézier curves **should** be preferred where they can accurately represent the intended geometry.
4. Cubic Bézier curves **may** be used where necessary.
5. Control points of adjoining cubic Bézier curves **should** be aligned where required to maintain continuous curvature.
6. Curves **should not** contain unnecessary control points.
## Pixel alignment
1. Coordinates **should** align to the pixel grid where possible.
2. Centers of arcs and other geometric elements **should** align to the pixel grid where possible.
3. Off-grid geometry **may** be used when required for visual balance, recognizable geometry, or smooth curvature.
4. Pixel alignment **should not** take precedence over the visual quality of the icon.
## Shared geometry
1. Variants of an existing icon **should** preserve the geometry, placement, and orientation of the base icon.
2. Elements that already exist in other Lucide icons **should** reuse established geometry where applicable.
3. Related icons **should** use consistent representations of shared elements.
4. Common modifiers and add-ons **should** use consistent geometry, size, and placement across related icons.
5. Existing geometry **may** be modified when necessary to satisfy other Lucide design language rules.
## Priority of requirements
When two non-required rules conflict, choose visual clarity and consistency with the Lucide design language.
Rules marked **must** or **must not** can only be broken when the project defines an explicit exception.
+1 -2
View File
@@ -3,8 +3,7 @@
"contributors": [
"rrod497",
"jamiemlaw",
"karsa-mistmere",
"jguddas"
"karsa-mistmere"
],
"use-cases": [],
"tags": [
+4 -4
View File
@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 13a3 3 0 01-2.121-5.121" />
<path d="M15.606 14.204c-3.5 1.5-5.899 4.503-8.899 7.503A1 1 0 016 22c-2 0-4-2-4-4a1 1 0 01.293-.707c1.911-1.911 3.823-3.578 5.347-5.441" />
<path d="M16.573 14.737A4 4 0 0114 11" />
<path d="M7.14 10.907a4 4 0 112.756-7.43A4 4 0 0116.7 4.48a2 2 0 012.82 2.82 4 4 0 011.002 6.805 4 4 0 11-7.51 1.59" />
<path d="M10 13a3 3 0 0 1-2.121-5.121" />
<path d="M15.606 14.204c-3.5 1.5-5.899 4.503-8.899 7.503A1 1 0 0 1 6 22c-2 0-4-2-4-4a1 1 0 0 1 .293-.707c1.911-1.911 3.823-3.578 5.347-5.441" />
<path d="M16.573 14.737A4 4 0 0 1 14 11" />
<path d="M7.14 10.907a4 4 0 1 1 2.756-7.43A4 4 0 0 1 16.7 4.48a2 2 0 0 1 2.82 2.82 4 4 0 0 1 1.002 6.805A4 4 0 1 1 13 16" />
</svg>

Before

Width:  |  Height:  |  Size: 560 B

After

Width:  |  Height:  |  Size: 572 B

+1 -1
View File
@@ -12,7 +12,7 @@
<path d="m13 21 3-3-3-3" />
<path d="M16 2v3" />
<path d="m19 21 3-3-3-3" />
<path d="M21 11.5V5a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2h4" />
<path d="M21 11.5V5.05a2 2 0 00-2-2H5a2 2 0 00-2 2v14a2 2 0 002 2L9 21" />
<path d="M3 9h18" />
<path d="M8 2v3" />
</svg>

Before

Width:  |  Height:  |  Size: 407 B

After

Width:  |  Height:  |  Size: 413 B

-27
View File
@@ -1,27 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"AnnaSasDev",
"briz123",
"ajokt123",
"rrod497",
"karsa-mistmere"
],
"use-cases": [
"Representing cupcakes in bakery product catalogs",
"Filtering dessert options in food ordering apps",
"Marking treats for parties or celebrations"
],
"tags": [
"cake",
"dessert",
"food",
"celebration",
"sweet",
"baking",
"cooking"
],
"categories": [
"food-beverage"
]
}
-19
View File
@@ -1,19 +0,0 @@
<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 22v-9" />
<path d="M14 4h1a3 3 0 013 3l-.004.125A4 4 0 0121 11v2" />
<path d="m15.5 22 1.5-9" />
<path d="M21 13a1 1 0 01.919 1.394l-2.74 6.394A2 2 0 0117.34 22H6.659a2 2 0 01-1.838-1.212l-2.74-6.394A1 1 0 013 13z" />
<path d="M3 13v-2a4 4 0 013.003-3.875L6 7a3 3 0 013-3h1" />
<path d="M8.5 22 7 13" />
<circle cx="12" cy="4" r="2" />
</svg>

Before

Width:  |  Height:  |  Size: 571 B

-25
View File
@@ -1,25 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere"
],
"use-cases": [
"Indicating package delivery to a home or residence",
"Representing packages left at a recipient's door",
"Tracking doorstep or unattended deliveries",
"Selecting a delivery location or drop-off point"
],
"tags": [
"delivery",
"parcel",
"doorstep",
"shipping",
"drop-off",
"courier"
],
"categories": [
"home",
"food-beverage",
"transportation"
]
}
-17
View File
@@ -1,17 +0,0 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M18 13v3" />
<path d="M19 9V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16" />
<path d="M2 21h8" />
<path d="M9 12h.01" />
<rect x="14" y="13" width="8" height="8" rx="1" />
</svg>

Before

Width:  |  Height:  |  Size: 387 B

-43
View File
@@ -1,43 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley",
"karsa-mistmere"
],
"use-cases": [
"Indicating water sources on maps",
"Controlling faucets in smart home apps",
"Representing kitchen or bathroom plumbing fixtures",
"Showing drinking water amenities in travel apps"
],
"tags": [
"tap",
"spigot",
"water",
"drinking",
"fresh",
"source",
"pipes",
"plumbing",
"plumber",
"sink",
"basin",
"kitchen",
"bathroom",
"washroom",
"fixture",
"valve",
"flow",
"drinkable",
"potable",
"amenities",
"utilities",
"hydration"
],
"categories": [
"food-beverage",
"home",
"navigation",
"travel"
]
}
-19
View File
@@ -1,19 +0,0 @@
<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.083 5.428 5.57 4.083a2 2 0 10.001 3.834l4.512-1.345" />
<path d="M12 8v3" />
<path d="m13.917 5.428 4.511-1.345a2 2 0 110 3.834l-4.51-1.345" />
<path d="M18 17v-4.006" />
<path d="M22 11v8" />
<path d="M22 12h-3a1 1 0 00-1 .994h-2.539a4 4 0 00-6.915-.012L7 13a5 5 0 00-5 5v1a1 1 0 001 1h2a1 1 0 001-1v-1a1 1 0 01.995-1l1.552.018a4 4 0 006.907 0L18 17a1 1 0 001 1h3" />
<circle cx="12" cy="6" r="2" />
</svg>

Before

Width:  |  Height:  |  Size: 636 B

-33
View File
@@ -1,33 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"karsa-mistmere",
"kaleidosium",
"UbaidUllah9962"
],
"use-cases": [
"Representing anonymous functions in code editors",
"Representing serverless functions in cloud architecture diagrams",
"Representing lambda notation in math and science"
],
"tags": [
"greek",
"symbol",
"math",
"function",
"programming",
"serverless",
"anonymous",
"functional",
"cloud",
"wavelength",
"calculus",
"linear algebra"
],
"categories": [
"development",
"math",
"science",
"text"
]
}
-14
View File
@@ -1,14 +0,0 @@
<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="M11.38 10 5 20" />
<path d="M19 18a2 2 0 01-2 2c-4.87-.003-5.052-16-10-16a2 2 0 00-2 2" />
</svg>

Before

Width:  |  Height:  |  Size: 312 B

-33
View File
@@ -1,33 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"ericfennis",
"danielbayley",
"jguddas",
"karsa-mistmere"
],
"use-cases": [
"Representing desktop computer setups",
"Showing workstation or gaming PC devices",
"Identifying personal computers in device lists",
"Managing computer hardware in IT dashboards"
],
"tags": [
"personal computer",
"desktop",
"screen",
"display",
"workstation",
"tower",
"chassis",
"hardware",
"setup",
"gaming"
],
"categories": [
"devices",
"development",
"gaming"
]
}
-19
View File
@@ -1,19 +0,0 @@
<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 15H4a2 2 0 01-2-2V7a2 2 0 012-2h6" />
<path d="M10 19H5" />
<path d="M14 11h8" />
<path d="M14 7h8" />
<path d="M18 17h.01" />
<path d="M9 19v-4" />
<rect x="14" y="3" width="8" height="18" rx="1" />
</svg>

Before

Width:  |  Height:  |  Size: 435 B

-24
View File
@@ -1,24 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"sarajdhakal"
],
"use-cases": [
"Displaying prices in Nepalese rupees (NPR)",
"Selecting Nepalese rupee in multi-currency selectors",
"Showing exchange rates for Nepalese rupee conversions",
"Indicating remittance transfers paid out in NPR"
],
"tags": [
"currency",
"money",
"nepal",
"rupee",
"npr"
],
"categories": [
"finance",
"shopping",
"travel"
]
}
-17
View File
@@ -1,17 +0,0 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M18 16.173 A4.74 4.74 0 0 0 13.496 8.005" />
<path d="M4 3 L20 3" />
<path d="M5 13 L13.5 21" />
<path d="M5 13 L9 13" />
<path d="M8 13 C15.5 13 14.667 3 8 3" />
</svg>

Before

Width:  |  Height:  |  Size: 390 B

-43
View File
@@ -1,43 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"ericfennis",
"danielbayley",
"jguddas",
"karsa-mistmere",
"gkkconan"
],
"use-cases": [
"Updating content or syncing recent changes",
"Refreshing data in dashboards or reports",
"Renewing subscriptions or recurring services"
],
"tags": [
"modify",
"edit",
"refresh",
"sync",
"renew",
"revision",
"settings",
"adjust",
"upgrade",
"time",
"timeline",
"version",
"time machine",
"backup",
"clockwise",
"arrow",
"reload",
"rerun",
"synchronize",
"circular",
"cycle",
"update"
],
"categories": [
"arrows",
"time"
]
}
-15
View File
@@ -1,15 +0,0 @@
<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 7v5l4 2" />
<path d="M16 8h5V3" />
<path d="m21 8-2.3-2.3A9.7 9.7 0 0012 3a9 9 0 109 9" />
</svg>

Before

Width:  |  Height:  |  Size: 318 B

+1
View File
@@ -14,5 +14,6 @@
<path d="M17 21v-4" />
<path d="m2 2 20 20" />
<path d="M20.41 20.41A2 2 0 0 1 19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 .59-1.41" />
<path d="M29.5 11.5s5 5 4 5" />
<path d="M9 3h6.2a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V15" />
</svg>

Before

Width:  |  Height:  |  Size: 471 B

After

Width:  |  Height:  |  Size: 505 B

-36
View File
@@ -1,36 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"llaenowyd",
"mishkaio",
"ericfennis",
"karsa-mistmere",
"chessurisme",
"colebemis",
"psjdev"
],
"use-cases": [
"Prompting users to select content for an empty slot",
"Adding an area to an existing selection in design editors",
"Marking a placeholder where users can add a block"
],
"tags": [
"selection",
"select",
"add",
"new",
"placeholder",
"marquee",
"box",
"dashed",
"plus",
"insert",
"frame",
"empty"
],
"categories": [
"design",
"layout",
"shapes"
]
}
-26
View File
@@ -1,26 +0,0 @@
<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="M5 3a2 2 0 0 0-2 2" />
<path d="M19 3a2 2 0 0 1 2 2" />
<path d="M21 19a2 2 0 0 1-2 2" />
<path d="M5 21a2 2 0 0 1-2-2" />
<path d="M9 3h1" />
<path d="M9 21h1" />
<path d="M14 3h1" />
<path d="M14 21h1" />
<path d="M3 9v1" />
<path d="M21 9v1" />
<path d="M3 14v1" />
<path d="M21 14v1" />
<path d="M8 12h8" />
<path d="M12 8v8" />
</svg>

Before

Width:  |  Height:  |  Size: 578 B

-41
View File
@@ -1,41 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"llaenowyd",
"mishkaio",
"ericfennis",
"karsa-mistmere",
"jguddas",
"chessurisme",
"ethanhazel"
],
"use-cases": [
"Deselecting a selection in an image editor",
"Clearing a selected range in a spreadsheet",
"Removing selected files from a file manager selection",
"Toggling off marquee/selection mode in a design application"
],
"tags": [
"deselect",
"unselect",
"delete",
"select",
"selection",
"border",
"width",
"layout",
"style",
"design",
"rectangular",
"marquee",
"box",
"rectangle",
"aspect ratio",
"1:1"
],
"categories": [
"design",
"development",
"layout"
]
}
-23
View File
@@ -1,23 +0,0 @@
<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="M14 3h1" />
<path d="m16 16 5 5" />
<path d="M19 3a2 2 0 012 2" />
<path d="m21 16-5 5" />
<path d="M21 9v1" />
<path d="M3 14v1" />
<path d="M3 9v1" />
<path d="M5 21a2 2 0 01-2-2" />
<path d="M5 3a2 2 0 00-2 2" />
<path d="M9 21h1" />
<path d="M9 3h1" />
</svg>

Before

Width:  |  Height:  |  Size: 496 B

-41
View File
@@ -1,41 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"llaenowyd",
"mishkaio",
"ericfennis",
"karsa-mistmere",
"jguddas",
"chessurisme",
"ethanhazel"
],
"use-cases": [
"Deselecting a selection in an image editor",
"Clearing a selected range in a spreadsheet",
"Removing selected files from a file manager selection",
"Toggling off marquee/selection mode in a design application"
],
"tags": [
"deselect",
"unselect",
"delete",
"select",
"selection",
"border",
"width",
"layout",
"style",
"design",
"rectangular",
"marquee",
"box",
"rectangle",
"aspect ratio",
"1:1"
],
"categories": [
"design",
"development",
"layout"
]
}
-26
View File
@@ -1,26 +0,0 @@
<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="M14 21h1" />
<path d="M14 3h1" />
<path d="M19 3a2 2 0 012 2" />
<path d="M21 14v1" />
<path d="M21 19a2 2 0 01-2 2" />
<path d="M21 9v1" />
<path d="M3 14v1" />
<path d="M3 9v1" />
<path d="M5 21a2 2 0 01-2-2" />
<path d="M5 3a2 2 0 00-2 2" />
<path d="m9 15 6-6" />
<path d="M9 21h1" />
<path d="M9 3h1" />
<path d="m9 9 6 6" />
</svg>

Before

Width:  |  Height:  |  Size: 576 B

-36
View File
@@ -1,36 +0,0 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"AlecRust",
"karsa-mistmere",
"rrod497",
"jguddas"
],
"use-cases": [
"Representing skincare and personal-care products in shopping catalogs",
"Indicating lotion or sunscreen application in skincare routines",
"Identifying toiletries in travel packing checklists"
],
"tags": [
"sunscreen",
"sunblock",
"spf",
"uv",
"cream",
"skincare",
"toothpaste",
"ointment",
"bottle",
"toiletries",
"bathroom",
"beach",
"summer"
],
"categories": [
"medical",
"home",
"shopping",
"travel",
"seasons"
]
}
-15
View File
@@ -1,15 +0,0 @@
<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 18v3a1 1 0 0 1-1 1h-4a1 1 0 0 1-1-1v-3" />
<path d="M17 2a2 2 0 0 1 1.6 3.2A8 8 0 0 0 17 10v6a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2v-6a8 8 0 0 0-1.6-4.8A2 2 0 0 1 7 2z" />
<path d="M7 10a6.47 6.47 0 0 1 5 0 6.47 6.47 0 0 0 5 0" />
</svg>

Before

Width:  |  Height:  |  Size: 450 B

+22
View File
@@ -0,0 +1,22 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"danielbayley"
],
"tags": [
"tap",
"spigot",
"water",
"drinking",
"fresh",
"source",
"pipes",
"plumbing",
"plumber"
],
"categories": [
"food-beverage",
"home",
"maps"
]
}
+20
View File
@@ -0,0 +1,20 @@
<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.22 4.9 5.4 6H5a2 2 0 0 1 0-4h.4l4.86 1" />
<circle cx="12" cy="4" r="2" />
<path d="m13.78 4.9 4.8 1h.4a2 2 0 0 0 0-4h-.4l-4.92 1" />
<path d="M12 6v3" />
<rect width="4" height="6" x="18" y="10" />
<path d="M22 9v8" />
<path d="M18 11h-2.6a3.87 3.87 0 0 0-6.8 0H7c-2.8 0-5 2.2-5 5v1h4v-1c0-.6.4-1 1-1h1.6a3.87 3.87 0 0 0 6.8 0H18" />
<path d="M3.5 17S2 19 2 20a2 2 0 0 0 4 0c0-1-1.5-3-1.5-3" />
</svg>

After

Width:  |  Height:  |  Size: 633 B

+1 -1
View File
@@ -52,7 +52,7 @@
"@lucide/build-icons": "workspace:*",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^7.0.1",
"astro": "^7.3.2",
"astro": "^7.3.0",
"jest-serializer-html": "^7.1.0",
"linkedom": "^0.18.13",
"prettier": "3.9.6",
+37 -75
View File
@@ -550,8 +550,8 @@ importers:
specifier: ^7.0.1
version: 7.0.1(@testing-library/dom@10.4.1)(vitest@4.1.10)
astro:
specifier: ^7.3.2
version: 7.3.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(@types/node@26.4.1)(@vercel/blob@2.8.0)(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(less@4.9.1(supports-color@10.2.2))(lightningcss@1.33.0)(sass@1.103.1)(stylus@0.56.0(supports-color@10.2.2))(terser@5.51.2)(yaml@2.9.0)
specifier: ^7.3.0
version: 7.3.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(@types/node@26.4.1)(@vercel/blob@2.8.0)(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(less@4.9.1(supports-color@10.2.2))(lightningcss@1.33.0)(sass@1.103.1)(stylus@0.56.0(supports-color@10.2.2))(terser@5.51.2)(yaml@2.9.0)
jest-serializer-html:
specifier: ^7.1.0
version: 7.1.0
@@ -1462,8 +1462,8 @@ packages:
'@astrojs/internal-helpers@0.11.0':
resolution: {integrity: sha512-3rzxJ+xbo0+8YyqOzLziIN32wmsHdCjEVz2sGOpRxJ+Ben/KiLph4ItxBy1abEL+E8fkRzqjg0rfXmaHJGw9JA==}
'@astrojs/markdown-satteri@0.4.1':
resolution: {integrity: sha512-EniHbFNa6SQHDih7JnpPos3NWXO6hdt4raBcOosfGmlfc3gP9CI/sESA3VOf1PgJZ7SFfewlZW9Livn0JugEZg==}
'@astrojs/markdown-satteri@0.4.0':
resolution: {integrity: sha512-wykOOW9KsUVcZweOpY/CeXpdKcCKZy6fQbdcteWFuI75+sQCiqxYM7VKsGa5b+aGl3cYQscFY37rsbbyal5MRw==}
'@astrojs/prism@4.0.2':
resolution: {integrity: sha512-KTivpmnz6lDsC6o9H4+DNm2SrE/GHzw8cNAvEJwAvUT+eoaEnn/4NtbDNfRRaxaJHdp15gf+tfHAWiXR4wB3BA==}
@@ -2312,12 +2312,12 @@ packages:
resolution: {integrity: sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==}
engines: {node: '>=18'}
'@clack/core@1.5.0':
resolution: {integrity: sha512-zNikCcd8BbcEvzzG1sbXFrRHFk5kHPrpwZwksPvf9qyQO1Teb7JaXaOAxXZei9nZLDW0gaZawiuTCji88bTBhw==}
'@clack/core@1.4.3':
resolution: {integrity: sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==}
engines: {node: '>= 20.12.0'}
'@clack/prompts@1.8.0':
resolution: {integrity: sha512-PXzLZ8N34rxmuo4dJg3xtOXhcBse94qGjDqsteoEYrFrrZ5FSjIGwMAuOcv64ln8rHVBBD06XeVGr+/JX+plcA==}
'@clack/prompts@1.7.0':
resolution: {integrity: sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==}
engines: {node: '>= 20.12.0'}
'@cloudflare/kv-asset-handler@0.4.2':
@@ -3793,13 +3793,6 @@ packages:
'@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4
'@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4
'@napi-rs/wasm-runtime@1.2.4':
resolution: {integrity: sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==}
engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0}
peerDependencies:
'@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4
'@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4
'@next/env@16.3.4':
resolution: {integrity: sha512-cjWZnUUa6jZq2kFaNe/ZyJdZonOZ/QoN0Zka2nz/FLOrfx14pQuM9c5RaSVkWMqgdt4ksgPAMWPyHSs/CyV48Q==}
@@ -6138,8 +6131,8 @@ packages:
ast-v8-to-istanbul@1.0.5:
resolution: {integrity: sha512-UPAgKJFSEGMWSDr3LX4tqnAb4f7KGT8O40Tyx8wbYmmZ/yn58lNCm8h3svs3eXgiGd5AXxz8NDOvXWvicq+rJA==}
astro@7.3.2:
resolution: {integrity: sha512-ysTcdpGP61XZpHoMRYC/CK19DQ94qkBvzXMtXEo0gEqPNkmOU/Tv++CtWmzaI4nF2Ck8RXFdiWvdlTWa2oOr9w==}
astro@7.3.0:
resolution: {integrity: sha512-P7gtN3rZO62chxRslBxxLLRpwIfKUxx4B4dRMyTHZiW4B0uJyjxmzRr1fIqB7AOCA1JhyeRKoYgQQBLK/inQ/A==}
engines: {node: '>=22.12.0', npm: '>=9.6.5', pnpm: '>=7.1.0'}
hasBin: true
peerDependencies:
@@ -8808,9 +8801,6 @@ packages:
magic-string@1.2.3:
resolution: {integrity: sha512-Bpb0W2TbLKOZ7vJnOUnVRGq3WL2p+ISV29M6hYPL1AFCpyKZpdr5ytiXoTSSxRVhg8YW7f65+6gbG8WG6PCa/g==}
magic-string@1.3.1:
resolution: {integrity: sha512-rm91zr2Ou+XueDTohjQQjdQEcYM6zVi8KVUCG8Ec3vHwUEKrhSdCNyfuIywkA6hcCAteIn0ZOtAHA6eGpiX+Pg==}
magicast@0.5.4:
resolution: {integrity: sha512-llBEhWm1SacoRwgHUoQJYtwp4PBLF4faQi5TCpIGyGs9n4y5+juI0tDgyKIfpqxckRHaHzouUEph3THklWh03w==}
@@ -9442,10 +9432,6 @@ packages:
resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==}
engines: {node: '>=12.20.0'}
obug@2.2.1:
resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==}
engines: {node: '>=12.20.0'}
ofetch@1.5.1:
resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==}
@@ -11188,10 +11174,6 @@ packages:
resolution: {integrity: sha512-YQ3WlbqjYMmNpdvDH64jAgLjxuAR9+649calDWhbshYaeQGO2bR4nI94ORJmwI3J9YhoKQnpyGOK+0zlWS5N5Q==}
engines: {node: '>=22.19.0'}
undici@8.10.2:
resolution: {integrity: sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==}
engines: {node: '>=22.19.0'}
unenv@2.0.0-rc.24:
resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==}
@@ -11929,9 +11911,6 @@ packages:
zod@4.5.4:
resolution: {integrity: sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==}
zod@4.6.1:
resolution: {integrity: sha512-341aRWQsve0rvronKNTqZpjmzdbUDlFuzHaI/XLg/Ej82qffDJRRfBTCuv7+9q/rMjB6LSLyEBnW4InJeMtt/Q==}
zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
@@ -12367,7 +12346,7 @@ snapshots:
'@astrojs/compiler-binding-wasm32-wasi@0.4.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)':
dependencies:
'@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)
'@napi-rs/wasm-runtime': 1.2.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)
transitivePeerDependencies:
- '@emnapi/core'
- '@emnapi/runtime'
@@ -12414,7 +12393,7 @@ snapshots:
smol-toml: 1.8.0
unified: 11.0.5
'@astrojs/markdown-satteri@0.4.1':
'@astrojs/markdown-satteri@0.4.0':
dependencies:
'@astrojs/internal-helpers': 0.11.0
'@astrojs/prism': 4.0.2
@@ -12505,7 +12484,7 @@ snapshots:
gensync: 1.0.0-beta.2
import-meta-resolve: 4.2.0
json5: 2.2.3
obug: 2.2.1
obug: 2.1.4
semver: 7.8.5
'@babel/generator@7.29.8':
@@ -13410,7 +13389,7 @@ snapshots:
'@babel/parser': 8.0.4
'@babel/template': 8.0.0
'@babel/types': 8.0.4
obug: 2.2.1
obug: 2.1.4
'@babel/types@7.29.8':
dependencies:
@@ -13452,7 +13431,7 @@ snapshots:
dependencies:
'@emnapi/core': 1.11.1
'@emnapi/runtime': 1.11.1
'@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)
'@napi-rs/wasm-runtime': 1.2.3(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)
optional: true
'@bruits/satteri-win32-arm64-msvc@0.10.5':
@@ -13465,14 +13444,14 @@ snapshots:
dependencies:
fontkitten: 1.0.3
'@clack/core@1.5.0':
'@clack/core@1.4.3':
dependencies:
fast-wrap-ansi: 0.2.2
sisteransi: 1.0.5
'@clack/prompts@1.8.0':
'@clack/prompts@1.7.0':
dependencies:
'@clack/core': 1.5.0
'@clack/core': 1.4.3
fast-string-width: 3.0.2
fast-wrap-ansi: 0.2.2
sisteransi: 1.0.5
@@ -14916,6 +14895,13 @@ snapshots:
'@tybys/wasm-util': 0.10.3
optional: true
'@napi-rs/wasm-runtime@1.2.3(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)':
dependencies:
'@emnapi/core': 1.11.1
'@emnapi/runtime': 1.11.1
'@tybys/wasm-util': 0.10.3
optional: true
'@napi-rs/wasm-runtime@1.2.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)':
dependencies:
'@emnapi/core': 1.11.2
@@ -14923,21 +14909,7 @@ snapshots:
'@tybys/wasm-util': 0.10.3
optional: true
'@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)':
dependencies:
'@emnapi/core': 1.11.1
'@emnapi/runtime': 1.11.1
'@tybys/wasm-util': 0.10.3
optional: true
'@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)':
dependencies:
'@emnapi/core': 1.11.2
'@emnapi/runtime': 1.11.2
'@tybys/wasm-util': 0.10.3
optional: true
'@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)':
'@napi-rs/wasm-runtime@1.2.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)':
dependencies:
'@emnapi/core': 1.11.2
'@emnapi/runtime': 1.11.3
@@ -15140,7 +15112,7 @@ snapshots:
dependencies:
'@emnapi/core': 1.11.2
'@emnapi/runtime': 1.11.2
'@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)
'@napi-rs/wasm-runtime': 1.2.3(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)
optional: true
'@oxc-parser/binding-win32-arm64-msvc@0.142.0':
@@ -16115,7 +16087,7 @@ snapshots:
jiti: 2.7.0
magic-string: 0.30.21
prettier: 3.9.6
zod: 4.6.1
zod: 4.5.4
transitivePeerDependencies:
- supports-color
@@ -16187,7 +16159,7 @@ snapshots:
ufo: 1.6.4
vitefu: 1.1.3(vite@7.3.6(@types/node@26.4.1)(jiti@2.7.0)(less@4.9.1(supports-color@10.2.2))(lightningcss@1.33.0)(sass@1.103.1)(stylus@0.56.0(supports-color@10.2.2))(terser@5.51.2)(yaml@2.9.0))
xmlbuilder2: 4.0.3
zod: 4.6.1
zod: 4.5.4
optionalDependencies:
vite: 7.3.6(@types/node@26.4.1)(jiti@2.7.0)(less@4.9.1(supports-color@10.2.2))(lightningcss@1.33.0)(sass@1.103.1)(stylus@0.56.0(supports-color@10.2.2))(terser@5.51.2)(yaml@2.9.0)
transitivePeerDependencies:
@@ -17300,14 +17272,14 @@ snapshots:
estree-walker: 3.0.3
js-tokens: 10.0.0
astro@7.3.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(@types/node@26.4.1)(@vercel/blob@2.8.0)(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(less@4.9.1(supports-color@10.2.2))(lightningcss@1.33.0)(sass@1.103.1)(stylus@0.56.0(supports-color@10.2.2))(terser@5.51.2)(yaml@2.9.0):
astro@7.3.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)(@types/node@26.4.1)(@vercel/blob@2.8.0)(db0@0.3.4)(ioredis@5.11.1(supports-color@10.2.2))(jiti@2.7.0)(less@4.9.1(supports-color@10.2.2))(lightningcss@1.33.0)(sass@1.103.1)(stylus@0.56.0(supports-color@10.2.2))(terser@5.51.2)(yaml@2.9.0):
dependencies:
'@astrojs/compiler-rs': 0.4.0(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.3)
'@astrojs/internal-helpers': 0.11.0
'@astrojs/markdown-satteri': 0.4.1
'@astrojs/markdown-satteri': 0.4.0
'@astrojs/telemetry': 3.3.3
'@capsizecss/unpack': 4.0.1
'@clack/prompts': 1.8.0
'@clack/prompts': 1.7.0
'@oslojs/encoding': 1.1.0
am-i-vibing: 0.4.0
aria-query: 5.3.2
@@ -17330,11 +17302,11 @@ snapshots:
http-cache-semantics: 4.2.0
js-yaml: 4.3.2
jsonc-parser: 3.3.1
magic-string: 1.3.1
magic-string: 1.2.3
magicast: 0.5.4
mrmime: 2.0.1
neotraverse: 1.0.1
obug: 2.2.1
obug: 2.1.4
p-limit: 7.3.2
p-queue: 9.3.3
package-manager-detector: 1.8.0
@@ -17354,7 +17326,7 @@ snapshots:
vitefu: 1.1.3(vite@7.3.6(@types/node@26.4.1)(jiti@2.7.0)(less@4.9.1(supports-color@10.2.2))(lightningcss@1.33.0)(sass@1.103.1)(stylus@0.56.0(supports-color@10.2.2))(terser@5.51.2)(yaml@2.9.0))
xxhash-wasm: 1.1.0
yargs-parser: 22.0.0
zod: 4.6.1
zod: 4.5.4
optionalDependencies:
sharp: 0.35.4(@types/node@26.4.1)
transitivePeerDependencies:
@@ -20383,10 +20355,6 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.6.0
magic-string@1.3.1:
dependencies:
'@jridgewell/sourcemap-codec': 1.6.0
magicast@0.5.4:
dependencies:
'@babel/parser': 7.29.8
@@ -21375,8 +21343,6 @@ snapshots:
obug@2.1.4: {}
obug@2.2.1: {}
ofetch@1.5.1:
dependencies:
destr: 2.0.5
@@ -23450,8 +23416,6 @@ snapshots:
undici@8.10.1: {}
undici@8.10.2: {}
unenv@2.0.0-rc.24:
dependencies:
pathe: 2.0.3
@@ -23483,7 +23447,7 @@ snapshots:
dependencies:
css-tree: 3.2.1
ohash: 2.0.12
undici: 8.10.2
undici: 8.10.1
unimport@6.4.0(esbuild@0.28.2)(oxc-parser@0.142.0)(rolldown@1.2.7)(rollup@4.63.1)(vite@7.3.6(@types/node@26.4.1)(jiti@2.7.0)(less@4.9.1(supports-color@10.2.2))(lightningcss@1.33.0)(sass@1.103.1)(stylus@0.56.0(supports-color@10.2.2))(terser@5.51.2)(yaml@2.9.0)):
dependencies:
@@ -23491,7 +23455,7 @@ snapshots:
escape-string-regexp: 5.0.0
estree-walker: 3.0.3
local-pkg: 1.2.1
magic-string: 1.3.1
magic-string: 1.2.3
mlly: 1.8.2
pathe: 2.0.3
picomatch: 4.0.7
@@ -24272,6 +24236,4 @@ snapshots:
zod@4.5.4: {}
zod@4.6.1: {}
zwitch@2.0.4: {}