Compare commits

..
Author SHA1 Message Date
FootagesandEric Fennis 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
YohandEric Fennis 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
AxelandEric Fennis 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
KarsaandEric Fennis 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]dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Eric Fennis
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 MesquitaandEric Fennis 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 GuddasandEric Fennis 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 GuddasandEric Fennis 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 GuddasandEric Fennis 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
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 FennisandKarsa 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 GuddasandEric Fennis 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 GuddasandEric Fennis 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 GuddasandEric Fennis 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 GuddasandEric Fennis 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 GuddasandEric Fennis 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
KarsaandEric Fennis 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
453 changed files with 1982 additions and 1454 deletions
+1 -1
View File
@@ -127,7 +127,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 builded the package first.
```sh
# in packages/lucide-react
+1 -1
View File
@@ -62,7 +62,7 @@ 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
-5
View File
@@ -1,5 +0,0 @@
{
"$schema": "../category.schema.json",
"title": "Currency",
"icon": "dollar-sign"
}
@@ -1,5 +1,5 @@
{
"$schema": "../category.schema.json",
"title": "Money",
"title": "Finance",
"icon": "piggy-bank"
}
-5
View File
@@ -1,5 +0,0 @@
{
"$schema": "../category.schema.json",
"title": "Furniture",
"icon": "rocking-chair"
}
-5
View File
@@ -1,5 +0,0 @@
{
"$schema": "../category.schema.json",
"title": "Maps",
"icon": "map"
}
@@ -1,5 +1,5 @@
{
"$schema": "../category.schema.json",
"title": "Maths",
"title": "Mathematics",
"icon": "divide"
}
+1 -1
View File
@@ -1,5 +1,5 @@
{
"$schema": "../category.schema.json",
"title": "Notifications",
"title": "Notification",
"icon": "triangle-alert"
}
+7 -19
View File
@@ -35,10 +35,6 @@
"name": "connectivity",
"title": "Connectivity"
},
{
"name": "currency",
"title": "Currency"
},
{
"name": "cursors",
"title": "Cursors"
@@ -64,12 +60,12 @@
"title": "File icons"
},
{
"name": "food-beverage",
"title": "Food & beverage"
"name": "finance",
"title": "Money"
},
{
"name": "furniture",
"title": "Furniture"
"name": "food-beverage",
"title": "Food & beverage"
},
{
"name": "gaming",
@@ -88,21 +84,13 @@
"title": "Mail"
},
{
"name": "maps",
"title": "Maps"
},
{
"name": "maths",
"title": "Maths"
"name": "math",
"title": "Math"
},
{
"name": "medical",
"title": "Medical"
},
{
"name": "money",
"title": "Money"
},
{
"name": "multimedia",
"title": "Multimedia"
@@ -117,7 +105,7 @@
},
{
"name": "notifications",
"title": "Notifications"
"title": "Notification"
},
{
"name": "people",
@@ -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"
}
}
]
@@ -49,7 +49,7 @@ import { $CamelCase } from '@lucide/lab';
</script>
<template>
<Icon :iconNode="burger" />
<Icon :iconNode="$CamelCase" />
</template>
`,
},
@@ -61,7 +61,7 @@ import { Icon } from 'lucide-svelte';
import { $CamelCase } from '@lucide/lab';
</script>
<Icon iconNode={burger} />
<Icon iconNode={$CamelCase} />
`,
},
{
@@ -9,7 +9,7 @@ export default {
}
return null;
})
.then((res) => res.tag_name);
.then((res) => res?.tag_name);
return {
version,
@@ -61,10 +61,7 @@ watch(absoluteStrokeWidth, (enabled) => {
<div class="card-column">
<h2 class="title">
Style as you please
<ResetButton
@click="resetStyle"
aria-label="Reset style"
/>
<ResetButton @click="resetStyle"></ResetButton>
</h2>
<p class="copy">
Lucide has a lot of customization options to match the icons with your UI.
@@ -127,7 +124,6 @@ watch(absoluteStrokeWidth, (enabled) => {
id="absolute-stroke-width"
name="absolute-stroke-width"
v-model="absoluteStrokeWidth"
aria-label="Enable absolute stroke width"
/>
</template>
</InputField>
@@ -0,0 +1,438 @@
<script setup lang="ts">
import type { IconEntity } from '../../types';
import { computed } from 'vue';
import createLucideIcon from 'lucide-vue-next/src/createLucideIcon.ts';
import Calendar from '../../../data/iconDetails/calendar.ts';
import Clock from '../../../data/iconDetails/clock.ts';
import Bug from '../../../data/iconDetails/bug.ts';
import Rocket from '../../../data/iconDetails/rocket.ts';
import TriangleAlert from '../../../data/iconDetails/triangle-alert.ts';
import PartyPopper from '../../../data/iconDetails/party-popper.ts';
import Scissors from '../../../data/iconDetails/scissors.ts';
import Copy from '../../../data/iconDetails/copy.ts';
import Save from '../../../data/iconDetails/save.ts';
import Clipboard from '../../../data/iconDetails/clipboard.ts';
import MessageCircle from '../../../data/iconDetails/message-circle.ts';
import ThumbsDown from '../../../data/iconDetails/thumbs-down.ts';
import ThumbsUp from '../../../data/iconDetails/thumbs-up.ts';
import Heart from '../../../data/iconDetails/heart.ts';
import Folder from '../../../data/iconDetails/folder.ts';
import Files from '../../../data/iconDetails/files.ts';
import Plus from '../../../data/iconDetails/plus.ts';
import File from '../../../data/iconDetails/file.ts';
import FileText from '../../../data/iconDetails/file-text.ts';
const props = defineProps<{
name: IconEntity['name'];
iconNode: IconEntity['iconNode'];
}>();
const iconComponent = computed(() => {
if (!props.name || !props.iconNode) return null;
return createLucideIcon(props.name, props.iconNode);
});
const CalendarIcon = createLucideIcon('calendar', Calendar.iconNode);
const ClockIcon = createLucideIcon('clock', Clock.iconNode);
const BugIcon = createLucideIcon('bug', Bug.iconNode);
const RocketIcon = createLucideIcon('rocket', Rocket.iconNode);
const AlertTriangleIcon = createLucideIcon('alert-triangle', TriangleAlert.iconNode);
const ScissorsIcon = createLucideIcon('scissors', Scissors.iconNode);
const CopyIcon = createLucideIcon('copy', Copy.iconNode);
const SaveIcon = createLucideIcon('save', Save.iconNode);
const ClipboardIcon = createLucideIcon('clipboard', Clipboard.iconNode);
const PartyPopperIcon = createLucideIcon('party-popper', PartyPopper.iconNode);
const HeartIcon = createLucideIcon('heart', Heart.iconNode);
const ThumbsUpIcon = createLucideIcon('thumbs-up', ThumbsUp.iconNode);
const ThumbsDownIcon = createLucideIcon('thumbs-down', ThumbsDown.iconNode);
const MessageCircleIcon = createLucideIcon('message-circle', MessageCircle.iconNode);
const FolderIcon = createLucideIcon('folder.ts', Folder.iconNode);
const FilesIcon = createLucideIcon('files.ts', Files.iconNode);
const PlusIcon = createLucideIcon('plus.ts', Plus.iconNode);
const FileIcon = createLucideIcon('file.ts', File.iconNode);
const FileTextIcon = createLucideIcon('file-text.ts', FileText.iconNode);
const prettyName = props.name
.split('-')
.at(0)
.split('')
.map((character, index) => (index === 0 ? character.toUpperCase() : character))
.join('');
</script>
<template>
<section class="showcase">
<h2 class="title">See this icon in action</h2>
<div class="showcase-grid">
<div class="showcase-item column">
<div class="placeholder"></div>
<div class="placeholder"></div>
<div class="placeholder"></div>
<div class="placeholder narrow"></div>
<div class="spacer"></div>
<div class="actions">
<button class="button button-brand">
<iconComponent />
{{ prettyName }}
</button>
<button class="button button-alt">Cancel</button>
</div>
</div>
<div class="showcase-item column">
<div class="placeholder narrow"></div>
<div class="input-wrapper">
<CalendarIcon v-if="name !== 'calendar'" />
<ClockIcon v-if="name == 'calendar'" />
<input
type="text"
v-if="name !== 'calendar'"
placeholder="Enter a date..."
/>
<input
type="text"
v-if="name == 'calendar'"
placeholder="Enter a time..."
/>
</div>
<div class="spacer"></div>
<div class="placeholder narrow"></div>
<div class="input-wrapper">
<iconComponent />
<input
type="text"
placeholder="Enter a value..."
/>
</div>
</div>
<div class="showcase-item column">
<div
class="row"
v-if="name !== 'bug'"
>
<div class="placeholder"></div>
<div class="badge badge-red">
<BugIcon :size="20" />
Bug
</div>
</div>
<div
class="row"
v-else
>
<div class="placeholder"></div>
<div class="badge badge-red">
<AlertTriangleIcon :size="20" />
Alert
</div>
</div>
<div class="row">
<div class="placeholder"></div>
<div class="badge badge-indigo">
<RocketIcon
:size="20"
v-if="name !== 'rocket'"
/>
<PartyPopperIcon
:size="20"
v-else
/>
Feature
</div>
</div>
<div class="row">
<div class="placeholder"></div>
<div class="badge badge-green">
<iconComponent :size="20" />
{{ prettyName }}
</div>
</div>
</div>
<div class="showcase-item column">
<button class="button button-alt button-square">
<FolderIcon v-if="name !== 'folder'" />
<FilesIcon v-else />
Documents
<PlusIcon class="ms-auto" />
</button>
<button class="button button-alt button-square">
<FileIcon v-if="name !== 'file'" />
<FileTextIcon v-else />
Readme
</button>
<button class="button button-alt button-square">
<iconComponent />
{{ prettyName }}
<span class="badge-notification ms-auto">12</span>
</button>
</div>
<div class="showcase-item column">
<div class="placeholder"></div>
<div class="placeholder"></div>
<div class="placeholder"></div>
<div class="placeholder narrow"></div>
<div class="spacer"></div>
<div class="actions">
<div class="icon-counter">
<HeartIcon v-if="name !== 'heart'" />
<ThumbsUpIcon v-else />
112
</div>
<div class="spacer"></div>
<div class="icon-counter">
<MessageCircleIcon v-if="name !== 'message-circle'" />
<ThumbsDownIcon v-else />
8
</div>
<div class="spacer"></div>
<div class="icon-counter">
<iconComponent />
11
</div>
</div>
</div>
<div class="showcase-item">
<div class="column align-items-center">
<div class="actions justify-content-center">
<button class="button button-icon">
<CopyIcon v-if="name !== 'copy'" />
<SaveIcon v-else />
</button>
<button class="button button-icon">
<ScissorsIcon v-if="name !== 'scissors'" />
<SaveIcon v-else />
</button>
<button class="button button-icon">
<ClipboardIcon v-if="name !== 'clipboard'" />
<SaveIcon v-else />
</button>
<button class="button button-icon">
<iconComponent></iconComponent>
<span class="badge-notification">2</span>
</button>
</div>
<div class="spacer"></div>
<div class="placeholder"></div>
<div class="placeholder"></div>
<div class="placeholder"></div>
</div>
</div>
</div>
</section>
</template>
<style scoped>
.showcase {
margin-bottom: 32px;
}
.showcase-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 48px;
margin-inline-start: 24px;
margin-block-start: 48px;
}
.showcase-item {
padding: 24px;
border-radius: 8px;
background-color: var(--vp-c-bg);
box-shadow:
var(--vp-shadow-4),
-24px -24px 0 var(--vp-c-bg-soft);
display: flex;
align-items: center;
justify-content: center;
min-height: 240px;
}
.spacer {
flex-basis: 0;
}
.button {
position: relative;
border-radius: 32px;
padding: 8px 16px;
display: flex;
flex-direction: row;
gap: 12px;
font-weight: 500;
transition:
color 0.25s,
border-color 0.25s,
background-color 0.25s;
border-color: var(--vp-button-alt-border);
color: var(--vp-button-alt-text);
background-color: var(--vp-button-alt-bg);
&:hover {
border-color: var(--vp-button-alt-hover-border);
color: var(--vp-button-alt-hover-text);
background-color: var(--vp-button-alt-hover-bg);
}
&.button-brand {
border-color: var(--vp-button-brand-border);
color: var(--vp-button-brand-text);
background-color: var(--vp-button-brand-bg);
&:hover {
border-color: var(--vp-button-brand-hover-border);
color: var(--vp-button-brand-hover-text);
background-color: var(--vp-button-brand-hover-bg);
}
}
&.button-icon {
padding: 12px;
}
&.button-square {
border-radius: 8px;
width: 100%;
}
}
.actions {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 12px;
}
.lucide {
flex-shrink: 0;
flex-grow: 0;
}
.placeholder {
display: block;
background-color: var(--vp-c-bg-soft);
border-radius: 32px;
height: 16px;
width: 100%;
&.narrow {
width: 33%;
}
}
.input-wrapper {
position: relative;
width: 100%;
.lucide {
position: absolute;
inset-inline-start: 12px;
inset-block: 50%;
translate: 0 -50%;
color: var(--vp-c-text-1);
opacity: 0.7;
}
input {
padding: 12px 20px;
padding-inline-start: 48px;
border-radius: 8px;
background-color: var(--vp-c-bg-soft);
color: var(--vp-c-text-1);
display: block;
width: 100%;
border: 2px solid transparent;
transition:
color 0.25s,
border-color 0.25s,
background-color 0.25s;
&:hover {
border-color: var(--vp-c-border);
}
&:focus {
border-color: var(--vp-c-brand);
}
}
&:focus-within {
.lucide {
opacity: 1;
}
}
}
.badge {
flex-shrink: 0;
display: flex;
flex-direction: row;
align-items: center;
gap: 6px;
padding: 4px 8px;
border-radius: 8px;
background-color: transparent;
overflow: hidden;
position: relative;
color: var(--badge-color);
&:before {
content: ' ';
inset: 0;
position: absolute;
background-color: var(--badge-color);
opacity: 0.1;
}
&.badge-indigo {
--badge-color: var(--vp-c-indigo-2);
}
&.badge-green {
--badge-color: var(--vp-c-green-2);
}
&.badge-red {
--badge-color: var(--vp-c-brand);
}
}
.badge-notification {
background-color: var(--vp-c-brand);
color: var(--vp-button-brand-text);
border-radius: 32px;
padding: 0 8px;
min-width: 24px;
min-height: 24px;
}
.button-icon {
.badge-notification {
position: absolute;
top: 0;
right: 0;
translate: 33% -33%;
}
}
.row {
display: flex;
flex-direction: row;
gap: 12px;
align-items: center;
width: 100%;
}
.icon-counter {
display: flex;
flex-direction: row;
gap: 6px;
color: var(--vp-c-text-2);
align-items: center;
}
.column {
display: flex;
flex-direction: column;
gap: 12px;
align-items: start;
width: 100%;
}
.align-items-center {
align-items: center;
}
.justify-content-center {
justify-content: center;
}
.ms-auto {
margin-inline-start: auto;
}
</style>
@@ -14,6 +14,7 @@ import CarbonAdOverlay from './CarbonAdOverlay.vue';
const ICON_SIZE = 56;
const ICON_GRID_GAP = 8;
const DEFAULT_GRID_ITEMS = 10 * 160;
const props = defineProps<{
icons: IconEntity[];
@@ -114,11 +115,23 @@ function handleCloseDrawer() {
/>
</StickyBar>
<NoResults
v-if="list.length === 0"
v-if="list.length === 0 && searchQuery !== ''"
:searchQuery="searchQuery"
@clear="searchQuery = ''"
/>
<div v-bind="wrapperProps" class="icon">
<IconGrid
v-else-if="list.length === 0"
:key="index"
overlayMode
:icons="[...searchResults].splice(0, DEFAULT_GRID_ITEMS)"
:activeIcon="activeIconName"
@setActiveIcon="setActiveIconName"
/>
<div
v-bind="wrapperProps"
class="icon"
v-else
>
<IconGrid
v-for="{ index, data: icons } in list"
:key="index"
@@ -1,29 +1,20 @@
<script setup lang="ts">
import type { IconEntity } from '../../types'
import IconGrid from './IconGrid.vue'
import type { IconEntity } from '../../types';
import IconGrid from './IconGrid.vue';
defineProps<{
icons: IconEntity[]
}>()
icons: IconEntity[];
}>();
</script>
<template>
<section class="related-icons">
<h2 class="title">
Related Icons
</h2>
<IconGrid
:icons="icons"
/>
<h2 class="title">More icons like this</h2>
<IconGrid :icons="icons" />
</section>
</template>
<style scoped>
.title {
margin-bottom: 24px;
font-size: 19px;
font-weight: 500;
}
.related-icons {
margin-bottom: 32px;
}
@@ -38,10 +38,10 @@ const links = computed(() => [
<div class="container">
<div class="sponsors">
<a href="https://vercel.com?utm_source=lucide&utm_campaign=oss" rel="noreferrer noopener">
<img src="/vercel.svg" alt="Powered by Vercel" loading="lazy" width="212" height="44" />
<img src="/vercel.svg" alt="Powered by Vercel" width="200" />
</a>
<a href="https://www.digitalocean.com/?refcode=b0877a2caebd&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge" rel="noreferrer noopener">
<img src="/digitalocean.svg" alt="Digital Ocean" loading="lazy" width="195" height="52"/>
<img src="/digitalocean.svg" alt="Digital Ocean" width="200" />
</a>
</div>
<div class="links">
+2 -1
View File
@@ -12,7 +12,8 @@ Lucide is an open-source icon library that provides 1000+ vector (svg) files for
## Available Icons
Lucide contains icons with different variants and states, allowing users to choose the most suitable icon for their needs. And if a desired icon isn't available yet, users can open a design request, and the Lucide community contributors will help provide new icons. With more icons to choose from, users have more options to work with in their projects.
Complete Set of Icons
### Complete Set of Icons
As new applications with specific features arise, Lucide aims to provide a complete set of icons for every project. The community follows a set of design rules when designing new icons. These rules maintain standards for the icons, such as recognizability, consistency in style, and readability at all sizes. While creativity is valued in new icons, recognizable design conventions are important to ensure that the icons are easily identifiable by users.
+32
View File
@@ -22,6 +22,10 @@ yarn add lucide
npm install lucide
```
```sh [bun]
bun add lucide
```
:::
For more details, see the [documentation](packages/lucide.md).
@@ -44,6 +48,10 @@ yarn add lucide-react
npm install lucide-react
```
```sh [bun]
bun add lucide-react
```
:::
For more details, see the [documentation](packages/lucide-react.md).
@@ -67,6 +75,10 @@ yarn add lucide-vue-next
npm install lucide-vue-next
```
```sh [bun]
bun add lucide-vue-next
```
:::
For more details, see the [documentation](packages/lucide-vue-next.md).
@@ -90,6 +102,10 @@ yarn add lucide-svelte
npm install lucide-svelte
```
```sh [bun]
bun add lucide-svelte
```
:::
For more details, see the [documentation](packages/lucide-svelte.md).
@@ -112,6 +128,10 @@ yarn add lucide-solid
npm install lucide-solid
```
```sh [bun]
bun add lucide-solid
```
:::
For more details, see the [documentation](packages/lucide-solid.md).
@@ -134,6 +154,10 @@ yarn add lucide-angular
npm install lucide-angular
```
```sh [bun]
bun add lucide-angular
```
:::
For more details, see the [documentation](packages/lucide-angular.md).
@@ -156,6 +180,10 @@ yarn add lucide-preact
npm install lucide-preact
```
```sh [bun]
bun add lucide-preact
```
:::
## Static usage
@@ -176,6 +204,10 @@ yarn add lucide-static
npm install lucide-static
```
```sh [bun]
bun add lucide-static
```
:::
For more details, see the [documentation](packages/lucide-static.md).
+4
View File
@@ -18,6 +18,10 @@ yarn add lucide-angular
npm install lucide-angular
```
```sh [bun]
bun add lucide-angular
```
:::
## How to use
+4
View File
@@ -22,6 +22,10 @@ yarn add lucide-preact
npm install lucide-preact
```
```sh [bun]
bun add lucide-preact
```
:::
## How to use
@@ -20,6 +20,10 @@ yarn add lucide-react-native
npm install lucide-react-native
```
```sh [bun]
bun add lucide-react-native
```
:::
## How to use
+13 -96
View File
@@ -18,6 +18,10 @@ yarn add lucide-react
npm install lucide-react
```
```sh [bun]
bun add lucide-react
```
:::
## How to use
@@ -81,108 +85,21 @@ const App = () => (
);
```
## One generic icon component
## Dynamic Icon Component
It is possible to create one generic icon component to load icons, but it is not recommended.
Since it is importing all icons during build. This increases build time and the different modules it will create.
::: danger
The example below imports all ES Modules, so exercise caution when using it. Importing all icons will significantly increase the build size of the application, negatively affecting its performance. This is especially important to keep in mind when using bundlers like `Webpack`, `Rollup`, or `Vite`.
`DynamicIcon` is useful for applications that want to show icons dynamically by icon name. For example, when using a content management system with where icon names are stored in a database.
This is not the case for the latest NextJS, because it uses server side rendering. The icons will be streamed to the client when needed. For NextJS with Dynamic Imports, see [dynamic imports](#nextjs-example) section for more information.
:::
For static use cases, it is recommended to import the icons directly.
### Icon Component Example
The same props can be passed to adjust the icon appearance. The `name` prop is required to load the correct icon.
```jsx
import { icons } from 'lucide-react';
import { DynamicIcon } from 'lucide-react/dynamic';
const Icon = ({ name, color, size }) => {
const LucideIcon = icons[name];
return <LucideIcon color={color} size={size} />;
};
export default Icon;
```
#### Using the Icon Component
```jsx
import Icon from './Icon';
const App = () => {
return <Icon name="Home" />;
};
export default App;
```
#### With Dynamic Imports
Lucide react exports a dynamic import map `dynamicIconImports`, which is useful for applications that want to show icons dynamically by icon name. For example, when using a content management system with where icon names are stored in a database.
When using client side rendering, it will fetch the icon component when it's needed. This will reduce the initial bundle size.
The keys of the dynamic import map are the lucide original icon names (kebab case).
Example with React suspense:
```tsx
import React, { lazy, Suspense } from 'react';
import { LucideProps } from 'lucide-react';
import dynamicIconImports from 'lucide-react/dynamicIconImports';
const fallback = <div style={{ background: '#ddd', width: 24, height: 24 }}/>
interface IconProps extends Omit<LucideProps, 'ref'> {
name: keyof typeof dynamicIconImports;
}
const Icon = ({ name, ...props }: IconProps) => {
const LucideIcon = lazy(dynamicIconImports[name]);
return (
<Suspense fallback={fallback}>
<LucideIcon {...props} />
</Suspense>
);
}
export default Icon
```
##### NextJS Example
In NextJS, [the dynamic function](https://nextjs.org/docs/pages/building-your-application/optimizing/lazy-loading#nextdynamic) can be used to dynamically load the icon component.
To make dynamic imports work with NextJS, you need to add `lucide-react` to the [`transpilePackages`](https://nextjs.org/docs/app/api-reference/next-config-js/transpilePackages) option in your `next.config.js` like this:
```js
/** @type {import('next').NextConfig} */
const nextConfig = {
transpilePackages: ['lucide-react'] // add this
}
module.exports = nextConfig
```
You can then start using it:
```tsx
import dynamic from 'next/dynamic'
import { LucideProps } from 'lucide-react';
import dynamicIconImports from 'lucide-react/dynamicIconImports';
interface IconProps extends LucideProps {
name: keyof typeof dynamicIconImports;
}
const Icon = ({ name, ...props }: IconProps) => {
const LucideIcon = dynamic(dynamicIconImports[name])
return <LucideIcon {...props} />;
};
export default Icon;
const App = () => (
<DynamicIcon name="camera" color="red" size={48} />
);
```
+4
View File
@@ -18,6 +18,10 @@ yarn add lucide-solid
npm install lucide-solid
```
```sh [bun]
bun add lucide-solid
```
:::
## How to use
+10 -6
View File
@@ -33,13 +33,17 @@ yarn add lucide-static
npm install lucide-static
```
```sh [bun]
bun add lucide-static
```
:::
### CDN
```html
<!-- SVG file for a single icon -->
<img src="https://unpkg.com/lucide-static@latest/icons/home.svg" />
<img src="https://unpkg.com/lucide-static@latest/icons/house.svg" />
<!-- Icon font -->
<style>
@@ -62,12 +66,12 @@ To use it in for example html:
```html
<!-- SVG file for a single icon -->
<img src="~lucide-static/icons/home.svg" />
<img src="~lucide-static/icons/house.svg" />
```
```css
.home-icon {
background-image: url(~lucide-static/icons/home.svg);
.house-icon {
background-image: url(~lucide-static/icons/house.svg);
}
```
@@ -90,7 +94,7 @@ You may need additional loader for this.
```html
<!-- Icon Sprite, not recommended for production! -->
<img src="lucide-static/sprite.svg#home" />
<img src="lucide-static/sprite.svg#house" />
<!-- or -->
<svg
@@ -147,7 +151,7 @@ and update the SVG as follows
```
```html
<div class="icon-home"></div>
<div class="icon-house"></div>
```
### Node.js
+4
View File
@@ -18,6 +18,10 @@ yarn add lucide-svelte
npm install lucide-svelte
```
```sh [bun]
bun add lucide-svelte
```
:::
## How to use
+4
View File
@@ -18,6 +18,10 @@ yarn add lucide-vue-next
npm install lucide-vue-next
```
```sh [bun]
bun add lucide-vue-next
```
:::
## How to use
+4
View File
@@ -22,6 +22,10 @@ yarn add lucide-vue
npm install lucide-vue
```
```sh [bun]
bun add lucide-vue
```
:::
## How to use
+4
View File
@@ -20,6 +20,10 @@ yarn add lucide
npm install lucide
```
```sh [bun]
bun add lucide
```
:::
### CDN
+15
View File
@@ -14,6 +14,7 @@ import IconPreview from '~/.vitepress/theme/components/icons/IconPreview.vue'
import IconPreviewSmall from '~/.vitepress/theme/components/icons/IconPreviewSmall.vue'
import IconInfo from '~/.vitepress/theme/components/icons/IconInfo.vue'
import IconContributors from '~/.vitepress/theme/components/icons/IconContributors.vue'
import IconShowcase from '~/.vitepress/theme/components/icons/IconShowcase.vue'
import RelatedIcons from '~/.vitepress/theme/components/icons/RelatedIcons.vue'
import CodeGroup from '~/.vitepress/theme/components/base/CodeGroup.vue'
import Badge from '~/.vitepress/theme/components/base/Badge.vue'
@@ -104,6 +105,11 @@ function releaseTagLink(version) {
</div>
</div>
<IconShowcase
:name="params.name"
:iconNode="params.iconNode"
/>
<RelatedIcons
v-if="params.relatedIcons"
:icons="params.relatedIcons"
@@ -233,3 +239,12 @@ function releaseTagLink(version) {
}
}
</style>
<style>
section h2.title {
text-align: center;
font-weight: 500;
margin-block-end: 64px;
padding-top: 32px;
}
</style>
+4 -4
View File
@@ -33,14 +33,14 @@
"h3": "^1.8.0",
"nitropack": "2.8.1",
"rollup-plugin-copy": "^3.4.0",
"vitepress": "^1.5.0"
"vitepress": "^1.3.1"
},
"dependencies": {
"@floating-ui/vue": "^1.0.3",
"@headlessui/vue": "^1.7.17",
"@resvg/resvg-wasm": "^2.6.2",
"@vueuse/components": "^10.7.2",
"@vueuse/core": "^10.7.2",
"@vueuse/components": "^12.0.0",
"@vueuse/core": "^12.0.0",
"element-to-path": "^1.2.1",
"fuse.js": "^6.5.3",
"jszip": "^3.7.0",
@@ -57,6 +57,6 @@
"sitemap": "^7.1.1",
"svg-pathdata": "^6.0.3",
"svgson": "^5.2.1",
"vue": "^3.4.13"
"vue": "^3.5.13"
}
}
@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="81" height="16" viewBox="0 0 81 16" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 16H32V10H39V7H32V4H39V1H29V16ZM42 16H52V13H45V1H42V16ZM55 16H65V13H58.0439L58 10H65V7H58V4H65V1H55V16ZM68 7H71V10H68V16H71V10H78V16H81V10H78V7H81V1H78V7H71V1H68V7Z" fill="#1C2024"/>
<path d="M16 16V1H26V4H19V7H26V10H19L19.0439 13H26V16H16Z" fill="#1C2024"/>
<path d="M10 10V16H13V10H10Z" fill="#1C2024"/>
<path d="M0 1V16H3V10H10V7H3V4H10V7H13V1H0Z" fill="#1C2024"/>
</svg>

After

Width:  |  Height:  |  Size: 522 B

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="81" height="16" viewBox="0 0 81 16" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M29 16H32V10H39V7H32V4H39V1H29V16ZM42 16H52V13H45V1H42V16ZM55 16H65V13H58.0439L58 10H65V7H58V4H65V1H55V16ZM68 7H71V10H68V16H71V10H78V16H81V10H78V7H81V1H78V7H71V1H68V7Z" fill="#FCFCFD"/>
<path d="M16 16V1H26V4H19V7H26V10H19L19.0439 13H26V16H16Z" fill="#FCFCFD"/>
<path d="M10 10V16H13V10H10Z" fill="#FCFCFD"/>
<path d="M0 1V16H3V10H10V7H3V4H10V7H13V1H0Z" fill="#FCFCFD"/>
</svg>

After

Width:  |  Height:  |  Size: 522 B

+3 -6
View File
@@ -64,23 +64,20 @@
"charts",
"communication",
"connectivity",
"currency",
"cursors",
"design",
"development",
"devices",
"emoji",
"files",
"finance",
"food-beverage",
"furniture",
"gaming",
"home",
"layout",
"mail",
"maps",
"maths",
"math",
"medical",
"money",
"multimedia",
"nature",
"navigation",
@@ -142,7 +139,7 @@
},
"aliasDeprecationReasons": {
"type": "string",
"enum": ["alias.typo", "alias.name"]
"enum": ["alias.typo", "alias.name", "alias.duplicate"]
},
"versionNumber": {
"type": "string",
+1 -2
View File
@@ -10,7 +10,6 @@
],
"categories": [
"transportation",
"text",
"maps"
"text"
]
}
+1 -1
View File
@@ -13,6 +13,6 @@
"couch"
],
"categories": [
"furniture"
"home"
]
}
+1 -2
View File
@@ -13,7 +13,6 @@
],
"categories": [
"arrows",
"navigation",
"maps"
"navigation"
]
}
+1 -2
View File
@@ -11,7 +11,6 @@
],
"categories": [
"arrows",
"navigation",
"maps"
"navigation"
]
}
+1 -1
View File
@@ -17,7 +17,7 @@
],
"categories": [
"text",
"maths",
"math",
"development"
]
}
+1 -2
View File
@@ -14,7 +14,6 @@
],
"categories": [
"account",
"social",
"shapes"
"social"
]
}
+1 -4
View File
@@ -24,9 +24,6 @@
],
"categories": [
"shopping",
"money",
"currency",
"account",
"shapes"
"finance"
]
}
+1 -3
View File
@@ -12,8 +12,6 @@
"check"
],
"categories": [
"account",
"social",
"shapes"
"social"
]
}
+1 -4
View File
@@ -22,9 +22,6 @@
],
"categories": [
"shopping",
"money",
"currency",
"account",
"shapes"
"finance"
]
}
+1 -4
View File
@@ -20,9 +20,6 @@
],
"categories": [
"shopping",
"money",
"currency",
"account",
"shapes"
"finance"
]
}
+1 -3
View File
@@ -10,9 +10,7 @@
"help"
],
"categories": [
"account",
"accessibility",
"social",
"shapes"
"social"
]
}
+1 -4
View File
@@ -21,9 +21,6 @@
],
"categories": [
"shopping",
"money",
"currency",
"account",
"shapes"
"finance"
]
}
+1 -2
View File
@@ -12,7 +12,6 @@
"categories": [
"account",
"accessibility",
"social",
"shapes"
"social"
]
}
+1 -4
View File
@@ -21,9 +21,6 @@
],
"categories": [
"shopping",
"money",
"currency",
"account",
"shapes"
"finance"
]
}
+1 -3
View File
@@ -12,8 +12,6 @@
"erase"
],
"categories": [
"account",
"social",
"shapes"
"social"
]
}
+2 -4
View File
@@ -15,11 +15,9 @@
"price tag"
],
"categories": [
"account",
"social",
"money",
"finance",
"shopping",
"maths",
"shapes"
"math"
]
}
+1 -3
View File
@@ -12,8 +12,6 @@
"new"
],
"categories": [
"account",
"social",
"shapes"
"social"
]
}
+1 -4
View File
@@ -22,9 +22,6 @@
],
"categories": [
"shopping",
"money",
"currency",
"account",
"shapes"
"finance"
]
}
+1 -4
View File
@@ -21,9 +21,6 @@
],
"categories": [
"shopping",
"money",
"currency",
"account",
"shapes"
"finance"
]
}
+1 -4
View File
@@ -21,9 +21,6 @@
],
"categories": [
"shopping",
"money",
"currency",
"account",
"shapes"
"finance"
]
}
+1 -3
View File
@@ -12,8 +12,6 @@
"remove"
],
"categories": [
"account",
"social",
"shapes"
"social"
]
}
+1 -2
View File
@@ -10,7 +10,6 @@
"payment"
],
"categories": [
"currency",
"money"
"finance"
]
}
+29
View File
@@ -0,0 +1,29 @@
{
"$schema": "../icon.schema.json",
"contributors": [
"colebemis",
"ericfennis",
"jguddas",
"johnletey",
"Footagesus"
],
"tags": [
"power",
"electricity",
"energy",
"accumulator",
"charge",
"plus",
"economy",
"health",
"add",
"new",
"maximum",
"upgrade",
"extra",
"+"
],
"categories": [
"devices"
]
}
+17
View File
@@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 9v6" />
<path d="M13.5 7H16a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2h-2.5" />
<path d="M22 11v2" />
<path d="M6.5 17H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h2.5" />
<path d="M7 12h6" />
</svg>

After

Width:  |  Height:  |  Size: 398 B

+1 -1
View File
@@ -10,6 +10,6 @@
"furniture"
],
"categories": [
"furniture"
"home"
]
}
+1 -1
View File
@@ -10,6 +10,6 @@
"furniture"
],
"categories": [
"furniture"
"home"
]
}
+1 -1
View File
@@ -10,6 +10,6 @@
"furniture"
],
"categories": [
"furniture"
"home"
]
}
+2 -2
View File
@@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M19.4 14.9C20.2 16.4 21 17 21 17H3s3-2 3-9c0-3.3 2.7-6 6-6 .7 0 1.3.1 1.9.3" />
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
<path d="M13.916 2.314A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.74 7.327A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673 9 9 0 0 1-.585-.665" />
<circle cx="18" cy="8" r="3" />
</svg>

Before

Width:  |  Height:  |  Size: 379 B

After

Width:  |  Height:  |  Size: 418 B

+2 -2
View File
@@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M18.4 12c.8 3.8 2.6 5 2.6 5H3s3-2 3-9c0-3.3 2.7-6 6-6 1.8 0 3.4.8 4.5 2" />
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
<path d="M15 8h6" />
<path d="M16.243 3.757A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673A9.4 9.4 0 0 1 18.667 12" />
</svg>

Before

Width:  |  Height:  |  Size: 364 B

After

Width:  |  Height:  |  Size: 412 B

+3 -3
View File
@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M8.7 3A6 6 0 0 1 18 8a21.3 21.3 0 0 0 .6 5" />
<path d="M17 17H3s3-2 3-9a4.67 4.67 0 0 1 .3-1.7" />
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
<path d="M17 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 .258-1.742" />
<path d="m2 2 20 20" />
<path d="M8.668 3.01A6 6 0 0 1 18 8c0 2.687.77 4.653 1.707 6.05" />
</svg>

Before

Width:  |  Height:  |  Size: 393 B

After

Width:  |  Height:  |  Size: 438 B

+2 -2
View File
@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M19.3 14.8C20.1 16.4 21 17 21 17H3s3-2 3-9c0-3.3 2.7-6 6-6 1 0 1.9.2 2.8.7" />
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
<path d="M15 8h6" />
<path d="M18 5v6" />
<path d="M20.002 14.464a9 9 0 0 0 .738.863A1 1 0 0 1 20 17H4a1 1 0 0 1-.74-1.673C4.59 13.956 6 12.499 6 8a6 6 0 0 1 8.75-5.332" />
</svg>

Before

Width:  |  Height:  |  Size: 390 B

After

Width:  |  Height:  |  Size: 431 B

+3 -3
View File
@@ -9,8 +9,8 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" />
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
<path d="M4 2C2.8 3.7 2 5.7 2 8" />
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
<path d="M22 8c0-2.3-.8-4.3-2-6" />
<path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" />
<path d="M4 2C2.8 3.7 2 5.7 2 8" />
</svg>

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 469 B

+2 -2
View File
@@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" />
<path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
<path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" />
</svg>

Before

Width:  |  Height:  |  Size: 311 B

After

Width:  |  Height:  |  Size: 393 B

+1 -2
View File
@@ -29,8 +29,7 @@
"categories": [
"layout",
"design",
"tools",
"account"
"tools"
],
"aliases": [
{
+1 -2
View File
@@ -29,8 +29,7 @@
"categories": [
"layout",
"design",
"tools",
"account"
"tools"
],
"aliases": [
{
+1 -1
View File
@@ -24,7 +24,7 @@
"research"
],
"categories": [
"maps",
"navigation",
"nature",
"photography",
"science",
+1 -2
View File
@@ -11,8 +11,7 @@
],
"categories": [
"brands",
"currency",
"development",
"money"
"finance"
]
}
-1
View File
@@ -18,7 +18,6 @@
"parts"
],
"categories": [
"account",
"tools",
"home"
]
-1
View File
@@ -45,7 +45,6 @@
],
"categories": [
"text",
"maps",
"gaming"
]
}
+10 -10
View File
@@ -9,15 +9,15 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 17h2" />
<path d="M12 22h2" />
<path d="M12 2h2" />
<path d="M18 22h1a1 1 0 0 0 1-1" />
<path d="M18 2h1a1 1 0 0 1 1 1v1" />
<path d="M20 15v2h-2" />
<path d="M20 8v3" />
<path d="M4 11V9" />
<path d="M4 19.5V15" />
<path d="M4 5v-.5A2.5 2.5 0 0 1 6.5 2H8" />
<path d="M12 17h1.5" />
<path d="M12 22h1.5" />
<path d="M12 2h1.5" />
<path d="M17.5 22H19a1 1 0 0 0 1-1" />
<path d="M17.5 2H19a1 1 0 0 1 1 1v1.5" />
<path d="M20 14v3h-2.5" />
<path d="M20 8.5V10" />
<path d="M4 10V8.5" />
<path d="M4 19.5V14" />
<path d="M4 4.5A2.5 2.5 0 0 1 6.5 2H8" />
<path d="M8 22H6.5a1 1 0 0 1 0-5H8" />
</svg>

Before

Width:  |  Height:  |  Size: 542 B

After

Width:  |  Height:  |  Size: 561 B

-1
View File
@@ -41,7 +41,6 @@
"categories": [
"social",
"text",
"communication",
"gaming"
]
}
-1
View File
@@ -35,7 +35,6 @@
],
"categories": [
"text",
"development",
"gaming"
]
}
-1
View File
@@ -31,7 +31,6 @@
"unlearn"
],
"categories": [
"development",
"text",
"gaming"
]
+1 -1
View File
@@ -19,6 +19,6 @@
"shapes",
"gaming",
"development",
"maths"
"math"
]
}
+2 -1
View File
@@ -12,7 +12,8 @@
"enterprise",
"skyscraper",
"organisation",
"organization"
"organization",
"city"
],
"categories": [
"account",
+1 -1
View File
@@ -9,7 +9,7 @@
"calculating machine"
],
"categories": [
"maths",
"math",
"devices"
]
}
+1 -2
View File
@@ -12,7 +12,6 @@
],
"categories": [
"buildings",
"gaming",
"maps"
"gaming"
]
}
+2 -1
View File
@@ -16,6 +16,7 @@
"commodities",
"currencies",
"currency",
"stocks",
"exchange",
"hedge fund",
"statistics",
@@ -25,7 +26,7 @@
],
"categories": [
"charts",
"money"
"finance"
],
"aliases": [
{
+1 -1
View File
@@ -20,7 +20,7 @@
"categories": [
"arrows",
"navigation",
"maths",
"math",
"development"
]
}
+1 -1
View File
@@ -20,7 +20,7 @@
"categories": [
"arrows",
"navigation",
"maths",
"math",
"gaming"
]
}
+1 -1
View File
@@ -10,6 +10,6 @@
],
"categories": [
"buildings",
"maps"
"navigation"
]
}
+1 -2
View File
@@ -11,8 +11,7 @@
"exclamation mark"
],
"categories": [
"notifications",
"shapes"
"notifications"
],
"aliases": [
"alert-circle"
-1
View File
@@ -15,7 +15,6 @@
"categories": [
"arrows",
"navigation",
"shapes",
"gaming"
],
"aliases": [
-1
View File
@@ -17,7 +17,6 @@
"categories": [
"arrows",
"navigation",
"shapes",
"gaming"
],
"aliases": [
+1 -2
View File
@@ -11,8 +11,7 @@
],
"categories": [
"arrows",
"navigation",
"maps"
"navigation"
],
"aliases": [
"arrow-down-left-from-circle"
+1 -2
View File
@@ -11,8 +11,7 @@
],
"categories": [
"arrows",
"navigation",
"maps"
"navigation"
],
"aliases": [
"arrow-down-right-from-circle"
-1
View File
@@ -15,7 +15,6 @@
"categories": [
"arrows",
"navigation",
"maps",
"development"
],
"aliases": [
+1 -2
View File
@@ -11,8 +11,7 @@
],
"categories": [
"arrows",
"navigation",
"maps"
"navigation"
],
"aliases": [
"arrow-up-right-from-circle"
-1
View File
@@ -17,7 +17,6 @@
"categories": [
"arrows",
"navigation",
"shapes",
"gaming"
],
"aliases": [
-1
View File
@@ -14,7 +14,6 @@
"categories": [
"arrows",
"navigation",
"shapes",
"gaming"
],
"aliases": [
+1 -2
View File
@@ -14,8 +14,7 @@
"task"
],
"categories": [
"notifications",
"shapes"
"notifications"
],
"aliases": [
"check-circle"
+1 -2
View File
@@ -12,8 +12,7 @@
"task"
],
"categories": [
"notifications",
"shapes"
"notifications"
],
"aliases": [
"check-circle-2"
+1 -2
View File
@@ -10,8 +10,7 @@
],
"categories": [
"arrows",
"navigation",
"shapes"
"navigation"
],
"aliases": [
"chevron-down-circle"
+1 -2
View File
@@ -13,8 +13,7 @@
],
"categories": [
"arrows",
"navigation",
"shapes"
"navigation"
],
"aliases": [
"chevron-left-circle"
+1 -2
View File
@@ -12,8 +12,7 @@
],
"categories": [
"arrows",
"navigation",
"shapes"
"navigation"
],
"aliases": [
"chevron-right-circle"
+1 -2
View File
@@ -11,8 +11,7 @@
],
"categories": [
"arrows",
"navigation",
"shapes"
"navigation"
],
"aliases": [
"chevron-up-circle"

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