Compare commits

...

177 Commits

Author SHA1 Message Date
Eric Fennis
95a7d8648f v0.14.1 2021-02-27 11:31:24 +01:00
Eric Fennis
b07eb8c00d Merge branch 'master' of github.com:lucide-icons/lucide into hotfix/fix-react-component 2021-02-27 11:23:36 +01:00
Eric Fennis
40cb396a6c Fix proptypes 2021-02-27 11:21:35 +01:00
Eric Fennis
87ab0bfb62 Figma plugin! (#227)
* initialize figma plugin

* Add icons to view

* Make the plugin work

* Fix search hook

* Finialize figma plugin

* Finish up icons

* remove unused code

* Add cover and icon
2021-02-26 16:35:18 +01:00
Yashu Mittal
c4f50417d5 maintain 1px border spacing in languages icon (#232) 2021-02-26 13:32:07 +01:00
Lucide Bot
0ca1b98689 📦 Bump version to 0.14.0 2021-02-22 19:46:47 +00:00
Eric Fennis
7ce35bac34 Merge branch 'master' of github.com:ericfennis/featherity 2021-02-22 20:36:44 +01:00
Eric Fennis
7bd41d9b48 Add vue to main readme 2021-02-22 20:33:43 +01:00
Eric Fennis
5ec34cb249 Merge branch 'master' of github.com:lucide-icons/lucide 2021-02-22 20:32:02 +01:00
Eric Fennis
4024911219 Lucide Vue Package (#174)
* add configs

* Add vue components

* Add documentation

* add alpha release version

* improve npm ignore files

* add tests

* Make style and class attrs work

* 📦 bump version

* Add Icon suffix for component names

* bump version

* Add icon component example

* remove space

* improvements package.json

* update tests

* update workflow
2021-02-22 20:26:38 +01:00
Eric Fennis
acea1b4116 Add radio receiver (#190) 2021-02-21 19:29:46 +01:00
Eric Fennis
ec3542dab8 Add tv-2 icon (#189) 2021-02-21 19:29:37 +01:00
Eric Fennis
51cf68c11f Add history icon (#188) 2021-02-21 19:29:26 +01:00
Yashu Mittal
0c460bc3dd add image-minus icon (#191)
* add image-minus icon

* refactor the icon
2021-02-18 08:40:21 +01:00
Yashu Mittal
7e91be9e38 add binary icon (#203) 2021-02-17 13:24:11 +01:00
Yashu Mittal
d042899a06 add regex icon (#213) 2021-02-17 13:18:42 +01:00
Eric Fennis
891115f6fd Add pencil icon (#129) 2021-02-17 13:04:50 +01:00
Yashu Mittal
8ce52d834d add inspect icon (#209) 2021-02-15 16:21:00 +01:00
Yashu Mittal
b6ea440d70 add option icon (#225) 2021-02-15 16:20:47 +01:00
Yashu Mittal
a3125d53cb change lucide domain url to lucide.dev (#228) 2021-02-15 16:20:30 +01:00
Eric Fennis
a7e8b3bcb7 Add contributors to icon overlay and add dot (#223)
* add contributers

* Add icon fetcher

* add contributing json

* Fix fetch call

* Add contributers to site

* Add caching for github api

* Fix build

* Move context provider

* Revert packages changes

* Fix mobile layout

* remove react-spring

* remove incorrect type prop
2021-02-12 20:38:47 +01:00
Eric Fennis
c4dfe6b8cb Update tags (#224)
* Add script to add more tags

* add tags

* update tags

* Fix tags
2021-02-12 16:07:57 +01:00
Yashu Mittal
90e86767d8 add bell plus & minus icon (#202)
* add bell plus & minus icon

* adjust 2px spacing in bell-minus icon
2021-02-12 15:52:02 +01:00
Eric Fennis
30f7be3fd4 Update README.md 2021-02-10 21:23:37 +01:00
Eric Fennis
313b46ecc1 update tags 2021-02-08 22:17:56 +01:00
Eric Fennis
367f89ef1f add tags 2021-02-08 21:55:48 +01:00
Eric Fennis
32ba19d591 Add script to add more tags 2021-02-08 21:18:43 +01:00
John Letey
5d945372d4 Vercel Sponsorship (#221)
* feat: add Vercel sponsorship requirements

* chore: fix syntax error
2021-02-08 07:53:49 +01:00
Yashu Mittal
736b888608 add shield alert, check & close icon (#208)
* add shield alert, check & close icon

* Update icons/shield-close.svg

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-02-07 11:24:37 +01:00
Yashu Mittal
fc03912eef add wallet icon (#193)
* add wallet icon

* Update icons/wallet.svg

Co-authored-by: Alexandr Antonov <alexandr-post@yandex.ru>

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-02-07 11:23:44 +01:00
Yashu Mittal
0864092670 add sigma icon (#197)
Co-authored-by: johnletey <johnletey@gmail.com>
2021-02-06 22:54:45 +01:00
Aishwarya Sharma
400f7871d2 Add icon podcast (#132)
* Add icon podcast

* update to svg with stroke width

* Update podcast.svg

* Update icons/podcast.svg
2021-02-06 22:46:06 +01:00
Yashu Mittal
0ce207bc2f add asterisk icon (#196) 2021-02-04 19:28:22 +01:00
Yashu Mittal
8c85053002 add alarm check, minus, plus icon (#198) 2021-02-04 19:27:41 +01:00
Yashu Mittal
a453c61aa5 decrease slash size by 1px border (#200) 2021-02-04 19:26:29 +01:00
Yashu Mittal
5ad6f5bba3 add webcam icon (#192)
* add webcam icon

* Update icons/webcam.svg

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-02-04 19:08:05 +01:00
Eric Fennis
68b91149f2 Add repeat 1 icon (#187) 2021-02-04 19:07:27 +01:00
Yashu Mittal
c50b8181a0 Add icon image-plus (#184)
* add icon image-add

* Rename to "image-plus"
2021-02-04 19:06:58 +01:00
Eric Fennis
1db690953b Merge branch 'master' of github.com:lucide-icons/lucide 2021-02-03 13:14:49 +01:00
Eric Fennis
cef1e1aafa test raw icons 2021-02-03 13:14:03 +01:00
Yashu Mittal
d29667ed99 add globe-2 icon (#178)
* add globe-2 icon

* Refactor & set border at 1px

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-02-02 21:10:25 +01:00
Yashu Mittal
d31c2a2f2a optimize icons using script (#195) 2021-02-02 21:09:33 +01:00
Yashu Mittal
e4a86687e2 Add git-branch-new icon (#182)
* Add git-branch-new icon

* rename icon to "git-branch-plus"

* Refactor git-branch-new icon

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-02-02 11:15:10 +01:00
Eric Fennis
2d9eee74c5 📦 Bump versions 2021-01-27 20:58:26 +01:00
Eric Fennis
0668f8aebe Fix auth token setting 2021-01-27 20:45:10 +01:00
Eric Fennis
330d7beb60 Add grab and pointer (#173)
* add grab and pointer

* Add white space

* add white space pointer
2021-01-27 19:59:04 +01:00
Eric Fennis
77f0243446 add sprout icon (#157)
Co-authored-by: Neel Chanda <neelchanda@gmail.com>

Co-authored-by: Neel Chanda <neelchanda@gmail.com>
2021-01-27 19:55:35 +01:00
Yashu Mittal
2c7fa08503 add infinity icon (#176) 2021-01-27 19:47:03 +01:00
Andreas Törnkvist
998199085e Icons: Big arrows (#153)
* arrow-big-

* -2px
2021-01-27 19:46:28 +01:00
Eric Fennis
f9cf015e20 Refactoring: rotate-cw, rotate-ccw, repeat, refresh-cw, refresh-ccw (#177)
* refactor icons

* Add refresh icons
2021-01-27 19:45:49 +01:00
Yashu Mittal
97677113e3 Add server-crash icon (#175) 2021-01-27 14:59:51 +01:00
Lennard Scheibel
1f7d367afc Add cross icon (#168) 2021-01-22 17:28:43 +01:00
Christopher Sandvik
1846b8b4ae Optimize all existing icons (#167) 2021-01-14 22:33:30 +01:00
Christopher Sandvik
3bedf3ba36 Add hook to optimize staged SVGs before commit (#166) 2021-01-14 22:33:17 +01:00
Eric Fennis
4352e985df Add Release workflow (#164)
* add workflows

* adjust release workflow

* adjust release workflow

* remove changes

* remove changes font yml
2021-01-14 21:31:55 +01:00
Yüksel Kapan
e1936fb938 Create server-off.svg (#165)
* Create server-off.svg

Hello,
I've made a server-off icon.

* Update icons/server-off.svg

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2021-01-05 14:28:29 +01:00
Eric Fennis
de815a7305 hotfix markup brush 2021-01-03 19:57:21 +01:00
Eric Fennis
bd3f24f160 New version 0.12.0 2020-12-31 16:41:07 +01:00
Eric Fennis
8f6062317f Add layout-grid icon (#142) 2020-12-31 16:06:23 +01:00
Alexandr Antonov
8f63d828af feat: Add transport icons (#152)
* feat: Add transport icons

* Update tags.json

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

* Update tags.json

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

* Update tags.json

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

* Update icons/bus.svg

Co-authored-by: Andreas Törnkvist <andreas.o.tornkvist@gmail.com>

* Update icons/car.svg

Co-authored-by: Andreas Törnkvist <andreas.o.tornkvist@gmail.com>

* Update icons/truck.svg

Co-authored-by: Andreas Törnkvist <andreas.o.tornkvist@gmail.com>

Co-authored-by: Alexander Antonov <aantonov@131.ru>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
Co-authored-by: Andreas Törnkvist <andreas.o.tornkvist@gmail.com>
2020-12-31 16:03:48 +01:00
Christopher Sandvik
fc2fac9ca4 Fix optimizeSvgs script (#160) 2020-12-30 20:23:46 +01:00
delnyn
cf13cef475 Add brush icon (#108)
* Update (#2)

update

* Update README.md

* Fix links

* Fix typo

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

* Create brush.svg

* Add brush tags

* Edit brush

Co-authored-by: Locness <37651007+locness3@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-12-30 20:06:56 +01:00
dependabot[bot]
485ae6f531 chore(deps): Bump node-notifier in /packages/lucide-react (#163)
Bumps [node-notifier](https://github.com/mikaelbr/node-notifier) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/mikaelbr/node-notifier/releases)
- [Changelog](https://github.com/mikaelbr/node-notifier/blob/v8.0.1/CHANGELOG.md)
- [Commits](https://github.com/mikaelbr/node-notifier/compare/v8.0.0...v8.0.1)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-30 20:06:06 +01:00
dependabot[bot]
398421367c chore(deps): Bump node-notifier from 8.0.0 to 8.0.1 in /site (#162)
Bumps [node-notifier](https://github.com/mikaelbr/node-notifier) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/mikaelbr/node-notifier/releases)
- [Changelog](https://github.com/mikaelbr/node-notifier/blob/v8.0.1/CHANGELOG.md)
- [Commits](https://github.com/mikaelbr/node-notifier/compare/v8.0.0...v8.0.1)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-30 20:05:56 +01:00
dependabot[bot]
8832051f96 chore(deps): Bump node-notifier from 8.0.0 to 8.0.1 (#161)
Bumps [node-notifier](https://github.com/mikaelbr/node-notifier) from 8.0.0 to 8.0.1.
- [Release notes](https://github.com/mikaelbr/node-notifier/releases)
- [Changelog](https://github.com/mikaelbr/node-notifier/blob/v8.0.1/CHANGELOG.md)
- [Commits](https://github.com/mikaelbr/node-notifier/compare/v8.0.0...v8.0.1)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-30 20:05:47 +01:00
Alexandr Antonov
ce80469ecc feat: Add timer icon (#148)
* feat: Add timer icon

* Update tags.json

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

* Update icons/timer.svg

Co-authored-by: Alexander Antonov <aantonov@131.ru>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-12-22 21:04:44 +01:00
Alexandr Antonov
12f2b29ac7 feat: Add crown icon (#151)
* feat: Add crown icon

* Update tags.json

Co-authored-by: Alexander Antonov <aantonov@131.ru>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-12-22 21:02:26 +01:00
Christopher Sandvik
7b7ee1fe63 Add locate and locate-fixed icons (#159) 2020-12-22 21:01:45 +01:00
Eric Fennis
baee6032c6 Add color palette icon (#143)
* add color pallette

* rename

* resize circles
2020-12-21 19:34:03 +01:00
Yüksel Kapan
deae140a6e Create monitor-off.svg (#155)
* Create monitor-off.svg

Added Monitor Off icon.

* Update monitor-off.svg

Updated the icon to match the design guide.

* Update icons/monitor-off.svg

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-12-21 18:42:54 +01:00
Eric Fennis
ca90159fce Fix netlify build PRs (#158)
* Add ignore in netlify command

* add quiet flag
2020-12-21 12:18:00 +01:00
Eric Fennis
03e287f2c1 Add qr-code icon (#141) 2020-12-20 14:38:18 +01:00
Eric Fennis
b79aebe284 add hand icon (#134) 2020-12-20 14:24:18 +01:00
Eric Fennis
a21600984d Add laptop-2 icon (#130)
* Add second laptop icon

* fix identation
2020-12-03 09:19:55 +01:00
Alexandr Antonov
8b09a5c1ef feat: Add plane icon (#150)
Co-authored-by: Alexander Antonov <aantonov@131.ru>
2020-12-03 09:10:11 +01:00
Eric Fennis
66ac072870 Release react-package 2020-12-02 15:11:29 +01:00
Eric Fennis
c073a2c529 Update CONTRIBUTING.md (#145) 2020-12-02 14:46:42 +01:00
Eric Fennis
cedf113b54 React package (#105)
* init new react package project

* setup react package

* Fix config for build

* update package

* Fix build

* update package

* fix package.json

* refactor and cleanup

* bumb beta version

* fix regex

* bump version

* Add hashing

* Add tests

* bump version

* Add peer dependecies

* Add docs

* Add readme link
2020-12-02 13:48:39 +01:00
Eric Fennis
571cab88ee v0.11.0 2020-11-19 22:06:13 +01:00
Eric Fennis
68c5ed6097 add files icon (#131)
Co-Authored-By @delnyn
2020-11-17 20:11:40 +01:00
Andreas Törnkvist
85efb8e1b6 Fix: Inconsistent tag spacing (#139) 2020-11-17 20:04:06 +01:00
Andreas Törnkvist
00c3487dff Icons: Beaker, Flasks, Pipette (#135)
* Add: Beaker, Flasks, Pipette

* Tag spacing
2020-11-17 20:03:48 +01:00
Frank Riccobono
cec73c5217 Fix: Bump Chakra-UI and add close button to toast (#138) 2020-11-17 13:26:29 +01:00
Eric Fennis
8f1c7eb737 Fix site search (#133) 2020-11-16 12:05:34 +01:00
Eric Fennis
0dd10483c9 Refactor text-align icons (#109)
* Add new text-align icons

* Stretch icon

Co-authored-by: appmachine <appmachine@appmachines-iMac.local>
2020-11-16 12:05:01 +01:00
Eric Fennis
a0c447cece Add menu (#136) 2020-11-16 12:04:44 +01:00
Andreas Törnkvist
7cf928e94c Icons: Tools and Construction (#118)
* Adding icons: axe,  gavel, hammer, hardhat, shovel

* Update axe, gavel, hammer

* rename tool -> wrench

* Update SVG-structure

* Add ruler

* minify hammer.svg

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

* minify hard-hat.svg

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

* minify gavel.svg

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

* minify shovel.svg

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

* minify ruler.svg

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-11-07 14:23:01 +01:00
Frank Riccobono
8caf6efe72 Fix style issues and performance issues for Color Picker and Search Bar (#123)
* feat: ability to customize icons before downloading PNG or SVG

* feat: change color input to be a graphical color picker

* feat: tweak appearance of new inputs

* fix: switch to correct Chakra-UI@Next slider syntax

* fix: make default color `currentColor` and also add Reset button

* fix: move background color from search bar InputGroup to Input

* fix: add margins and border radius to color picker components

* fix: Downgrade color picker to version (see: https://github.com/casesandberg/react-color/issues/731)
2020-11-05 21:07:04 +01:00
Locness
a9fec942ff Add "photo" tags to image + tags to image-off (#125) 2020-11-05 21:06:45 +01:00
Eric Fennis
00cbc81331 Site: Add Logo (#121)
* bump package

* Add Logo

* remove console

* prettify it

* add favicons and fix issue
2020-11-03 20:58:51 +01:00
Eric Fennis
4e3af5c601 add album icon (#76) 2020-11-02 21:14:38 +01:00
Eric Fennis
632dda526a feat: Add clover icon (#65)
* add clover icon

* add space
2020-11-02 21:14:26 +01:00
Eric Fennis
c858240c01 refactor and add more icons (#106) 2020-11-02 21:13:57 +01:00
Andreas Törnkvist
1fb70e67ee Feather icon requests (#114)
* Create FEATHER_ICON_REQUESTS.md

* Feather requests in CONTRIBUTING.md

* Add unlabeled issues to request-list

* Revert "Add unlabeled issues to request-list"

This reverts commit 18a69038e2.

* Revert "Create FEATHER_ICON_REQUESTS.md"

This reverts commit ec96cbd9fd.

* Update link to Fether Requests in CONTRIBUTING

* Update CONTRIBUTING.md

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-10-31 17:11:42 +01:00
Collin Monahan
b533cf8480 doc/spelling (#120) 2020-10-31 16:11:18 +01:00
Frank Riccobono
51fd3af446 Add customization options to the icon display and download (#113)
* feat: ability to customize icons before downloading PNG or SVG

* feat: change color input to be a graphical color picker

* feat: tweak appearance of new inputs

* fix: switch to correct Chakra-UI@Next slider syntax

* fix: make default color `currentColor` and also add Reset button
2020-10-31 12:53:25 +01:00
Locness
f3c3fea228 Docs : Improve the design guide (#111)
- Use modal verbs instead of "has"
- Use "icons" instead of "each icon"
- change some other things as well
2020-10-27 21:48:45 +01:00
Themistoklis
29574a6385 Add indentation icons in/out (#102) 2020-10-27 21:39:23 +01:00
Eric Fennis
5c96b8d848 Feature/site detail page (#99)
* site: pull data from "icons" dir

* site: display icons

* site: remove redundant code

* site: colour mode support

* site: header

* site: order imports

* site: search

* site: add toast when copying icon

* site: styling

* site: hero

* fix: disable theme toggle transitions

* feat: Use Yarn Workspaces

* refactor: Update site deploy scripts

* refactor: Remove dark mode for now

* feat: Add site title

* refactor: Fix warning and format

* feat: Add dark mode back 👀

* feat: Escape key to reset query

* Fix by aelfric

* Add Github link

* Fix #40

* Add site overlay

* sort categories

* Add detail page

* Add first categories

* add box

* move site to root directory

* fix merge issues

* Fix routing issues

* Fix icon overlay

* Add copy and download icon

* Fix style issues

* Add text

* update chakra UI

* remove import

* update dependecies

* add lucide react

* Fix bugs

* delete stats files

* update charkra version

Co-authored-by: John Letey <johnletey@gmail.com>
Co-authored-by: appmachine <appmachine@appmachines-iMac.local>
2020-10-26 08:59:56 +01:00
Eric Fennis
2c38fac9b1 Docs: Design guide (#73)
* Add design guide

* Update ICON_DESIGN_GUIDE.md

* Update ICON_DESIGN_GUIDE.md

* Add conventions section

* Moved to the docs directory

* Update docs/ICON_DESIGN_GUIDE.md

Co-authored-by: Locness <37651007+locness3@users.noreply.github.com>

* Update docs/ICON_DESIGN_GUIDE.md

Co-authored-by: Locness <37651007+locness3@users.noreply.github.com>

* Add raw parameter to images url

* add alt test

* Add alt text

Co-authored-by: Locness <37651007+locness3@users.noreply.github.com>
2020-10-25 22:48:03 +01:00
Eric Fennis
0b88415247 feat: add logo (#92) 2020-10-25 21:16:39 +00:00
delnyn
9b25845258 Update readme's table of content (#104)
* Update (#2)

update

* Update README.md

* Fix links

* Fix typo

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

Co-authored-by: Locness <37651007+locness3@users.noreply.github.com>
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-10-20 17:22:22 +02:00
Alexander Barrios
49973ff32b Fix problems with SVGs (#100)
* Update font.yml

* Update font.yml

* Update font.yml

* Update font.yml

* Update font.yml

* Update font.yml

* Create outline_svg.js

* Update font.yml

* Update font.yml

* Update outline_svg.js

* Update font.yml

* FIX: Problems with SVGs

* FIX: Problems with SVGs

Node runs this script to fix SVG files so FontCustom can compile correctly

* Trigger on PR

* Update scripts/outline_svg.js

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-10-19 11:26:39 +02:00
Alexander Barrios
714f63d0d3 FIX: 404 when installing dependencies using APT (#98)
I added a step that updates APT repositories before installing dependencies
2020-10-16 08:59:45 +02:00
Eric Fennis
762cf32666 Release/v0.1.2 (#97)
* optimize build

* bumb version

Co-authored-by: Eric Fennis <eric.fennis@endurance.com>
2020-10-15 09:17:00 +02:00
Eric Fennis
216f42cdcb remove building icon from root (#96)
Co-authored-by: Eric Fennis <eric.fennis@endurance.com>
2020-10-15 09:00:40 +02:00
delnyn
b80c2805b2 Add Laptop icon (#88)
* Add laptop icon

* Update tags.json

* Update laptop.svg

* Update laptop.svg

* Update icons/laptop.svg

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

* Update icons/laptop.svg

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-10-14 17:58:04 +02:00
mishkaio
d80a267c81 feat: add box select, box select with pointer, bullhorn, document los… (#57)
* feat: add box select, box select with pointer, bullhorn, document lost, document search, lasso select, lasso, newspaper

* Delete box-select-pointer.svg

* Delete box-select.svg

* Delete bullhorn.svg

* Delete document-lost.svg

* Delete document-search.svg

* Update icons/lasso-select.svg

* Update lasso.svg

* Delete newspaper.svg

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-10-14 17:23:48 +02:00
delnyn
07fa908631 Fix: move building icon (#95)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-10-13 19:00:42 +02:00
delnyn
1bdf6febac Add building icon (#91)
* Add building icon

* Add building to tags

* Update building.svg

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

* Update building.svg

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

* Update tags.json

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-10-13 08:46:25 +02:00
Eric Fennis
78e1057515 Feat: Adds list-ordered, list-unordered, list-checks (#43)
* Add list icons

* Update icons

* update list icons
2020-10-11 23:51:11 +02:00
dependabot[bot]
9d6d0c340d chore(deps): Bump next from 9.5.3 to 9.5.4 in /site (#89)
Bumps [next](https://github.com/vercel/next.js) from 9.5.3 to 9.5.4.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v9.5.3...v9.5.4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-11 13:51:07 +02:00
Eric Fennis
77f3f49ce7 Update site (#87)
* Move the site to the root directory

* Update Site name

Co-authored-by: Eric Fennis <eric.fennis@endurance.com>
2020-10-08 12:44:09 +02:00
Frank Riccobono
a55620d6ba refactor: use memoization and native NextJS router queries to reduce re-renders (#85)
Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-10-07 17:47:41 +02:00
Eric Fennis
dad9648e20 Fix the site, before other site changes (#86)
* fix the site

* Change base

* Change publish folder

Co-authored-by: Eric Fennis <eric.fennis@endurance.com>
2020-10-07 17:42:59 +02:00
Frank Riccobono
b3b39afb95 docs: Create guide for creating icons in Inkscape (#81) 2020-10-07 17:34:40 +02:00
Eric Fennis
4406cbaea0 Hotfix Lucide npm package, fix security issues (#84)
* adjust npmignore

* 📦 Fix security issues

* update font workflow

* identation

* update, package.json

* Add description

* Add shields
2020-10-06 23:03:11 +02:00
Eric Fennis
11c6a2e917 Featherity Npm package, reorganize scripting. (#52)
* New setup for new NPM package

* Add build scripts for dist

* Add introduction readme

* Refactor names

* update package.json

* remove log

* rename variable

* Factoring

* Improve optimize script

* Add eslint config

* Eslint fixes

* rename import

* Move packeges

* Setup rollup and build progress

* Refactor scripts

* fix lint error

* remove lint disabler

* Bring back old libraries

* add indentation

* reset packages directory

* remove vscode setting files

* 0.1.0-alpha.0

* new version

* 0.1.0-alpha.1

* Fix build process

* Add create element to the entry file

* update version number

* publish new alhpa version

* fixing bugs

* Add jest and tests

* replace with XML createElement

* set new version

* Fix svg generation

* Add tests for main library

* Update docs

* Adjust tests and selectors

* update the spec

* Update README.md

* Update README.md

* Update README.md

* update version

* Update README.md

* Move function to helpers file

* rename license, package and readme

* Fix build files

* rename packages

Co-authored-by: Eric Fennis <eric.fennis@endurance.com>
2020-10-06 20:23:26 +02:00
Locness
8b5278437a README : Mention Featherity is independent + various changes (#82) 2020-10-05 20:30:34 +02:00
Collin Monahan
c84fcfe3cb feat: add box select (#69)
* feat: add box select, box select with pointer, bullhorn, document lost, document search, lasso select, lasso, newspaper

* remove other icons on this branch

* more space for box-select

* maybe similarly spacing box-sel-ptr

* focus down to box select

* try dashed-line square

* polylines at corners

* space before close-element

* rounded version

* undo change to wrong file

Co-authored-by: mishkaio <60020191+mishkaio@users.noreply.github.com>
2020-09-29 08:43:00 +02:00
Eric Fennis
058c40a1ec Feat: Dashboard/Masonry Icon (#72)
* add brick layout icon

* Add Masonry icon

* delete other icons

* rename icon
2020-09-28 18:31:35 +02:00
Eric Fennis
6dad37a1b5 feat: Add equal icons and refactor devide icon (#56)
* Add equal icons and refactor devide icon

* update icon

* remove white space
2020-09-25 12:50:51 +02:00
Eric Fennis
85d3bb9b82 feat: 'move-horizontal', 'move-vertical', 'move-diagonal', 'mouse-pointer-2' (#49)
* add cursors

* update icons to match same length as othe move icons
2020-09-21 13:01:24 +02:00
Eric Fennis
dee5d33bcd Add image-off icon (#74) 2020-09-20 19:13:31 +02:00
Eric Fennis
a26745a3be add calculator icon (#75) 2020-09-20 19:12:52 +02:00
Lennard Scheibel
9550ec28b8 feat: Add shirt icon (#20) 2020-09-19 12:14:08 +02:00
Eric Fennis
845d6add1f feat: add more bluetooth icons (#67)
* add more bluetooth icons

* change to lines
2020-09-11 22:10:41 +02:00
Yashu Mittal
06972942cd Add bot icon (#71) 2020-09-11 22:10:24 +02:00
Eric Fennis
d33b6674f3 add Gauge icon (#66) 2020-09-11 22:10:11 +02:00
Eric Fennis
70be911f69 feat: refactor heart icon (#64)
* Add lightbulb icon

* update heart icon

* add white space
2020-09-11 22:09:40 +02:00
Eric Fennis
6f06e05a47 Add lightbulb icon (#63) 2020-09-11 22:09:27 +02:00
Eric Fennis
8a15bca8cd feat: refactor wifi-icons (#62)
* refactor wifi-icons

* add spacings
2020-09-11 22:09:13 +02:00
Alexander Barrios
5aef4e6110 Workflow that will compile font files (#68)
* Create font.yml

* Change to show logs

* Update .github/workflows/font.yml

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

* Update .github/workflows/font.yml

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

* Update .github/workflows/font.yml

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

* Update .github/workflows/font.yml

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

* Update .github/workflows/font.yml

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

* Update .github/workflows/font.yml

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

* Update .github/workflows/font.yml

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

* Update .github/workflows/font.yml

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

* Update font.yml

* Update font.yml

* Update font.yml

* Update font.yml

* Update font.yml

* Fix syntax

* Update font.yml

* Update font.yml

* Update font.yml

* Update font.yml

* Update font.yml

* Update font.yml

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-09-09 09:48:52 +02:00
Eric Fennis
e1cead9531 feat: Add separator icons (#47)
* Add separator icons

* Add more serpartor icons

* Remove other separator icons

* Shorter lines
2020-09-03 11:50:02 +02:00
dependabot[bot]
c686c1a0c3 chore(deps): Bump lodash from 4.17.15 to 4.17.20 (#59)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.20.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.20)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-30 11:12:36 +02:00
dependabot[bot]
af87274bf4 chore(deps): Bump elliptic from 6.5.2 to 6.5.3 (#58)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-29 23:18:02 +02:00
John Letey
e3e4514dcc feat: Site (#1)
* site: pull data from "icons" dir

* site: display icons

* site: remove redundant code

* site: colour mode support

* site: header

* site: order imports

* site: search

* site: add toast when copying icon

* site: styling

* site: hero

* fix: disable theme toggle transitions

* feat: Use Yarn Workspaces

* refactor: Update site deploy scripts

* refactor: Remove dark mode for now

* feat: Add site title

* refactor: Fix warning and format

* feat: Add dark mode back 👀

* feat: Escape key to reset query

* Fix by aelfric

* Add Github link

* Fix #40

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-08-29 23:16:38 +02:00
Eric Fennis
1b726f592a feat: Add flashlight icons (#55) 2020-07-24 11:58:47 +01:00
Frank Riccobono
53ba672ca6 feat: Add undo and redo icons (#48)
* feat: Add `undo` and `redo` icons

* move undo and redo icons downl to align with grid

* move starting point of arrows down to align with point

* refactor: remove extra stroke-width

* reactor: whitespace

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

* refactor: replace change points instead of using translate.

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

* refactor: use changed points instead of using translate.

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-07-21 15:18:21 +02:00
dependabot[bot]
9b56ae3b25 chore(deps): Bump lodash from 4.17.15 to 4.17.19 (#53)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-07-21 08:25:25 +01:00
zeno
bd52c058eb feat: Add table, matrix, sheet, and view icons (#9)
* feat: Add `table` icon
* feat: Add `grid` icon
* feat: Add `sheet` icon
* feat: Add `view` icon
* Refactor name `grid` -> `layout-grid`
* Refactor SVG code of `columns`

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-07-08 21:05:25 +02:00
Locness
e8befb4681 docs: Add labels to issue templates (#51)
* Update icon_request.md

* Update bug_report.md

* Use "labels" instead of "label"

* Do it for the other one
2020-07-05 17:02:33 +01:00
Eric Fennis
dd5d84d5c0 refactor: Update phone icons (#44)
* Refactor phone icons

* Add EOF
2020-07-05 16:58:33 +01:00
John Letey
031833a296 refactor: Optimise icons (#42)
* refactor: Optimise icons

* fix: Complete `contrast` icon

* refactor: Optimise `battery-charging` further
2020-07-05 12:27:23 +01:00
John Letey
02b57108c3 feat: Add library icon (#25)
* feat: Add `library` icon

* refactor: Optically align elements

* refactor: Increase size
2020-07-05 13:09:37 +02:00
Eric Fennis
a99637fc25 refactor: Update droplet icon and add flame icon (#24)
* update droplet and create flame

* Update icons/flame.svg

Co-authored-by: John Letey <johnletey@gmail.com>

* Update icons/droplet.svg

Co-authored-by: John Letey <johnletey@gmail.com>

* Update icons/flame.svg

Co-authored-by: John Letey <johnletey@gmail.com>

Co-authored-by: John Letey <johnletey@gmail.com>
2020-07-05 09:05:41 +01:00
Eric Fennis
749a235dc7 Merge pull request #34 from lscheibel/coins-icon
feat: Add `coins` icon
2020-07-04 09:36:42 +02:00
lscheibel
ce8da13110 feat: Add coins icon 2020-07-03 19:15:11 +02:00
John Letey
9a2eb1c16e refactor: Update git-commit icon (#46) 2020-07-03 09:21:51 +01:00
Lennard Scheibel
bae239bd20 feat: Add alarm-clock icon (#19)
* feat: Add `alarm-clock` icon

* refactor: Add spacing

Co-authored-by: John Letey <johnletey@gmail.com>
2020-07-02 09:45:06 +01:00
John Letey
0f43116ca2 docs: Update contact email
Closes #45
2020-07-01 17:28:35 +01:00
John Letey
d051a09232 feat: Add network icon (#35)
* feat: Add `network` icon

* refactor: Use elements

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-07-01 11:56:43 +01:00
Eric Fennis
342b2b962a feat: Add strikethrough and update underline icons (#36)
* add strikethrough and update undeline

* Add EOF

* Add spaces

Co-authored-by: John Letey <johnletey@gmail.com>

* Add spaces underline.svg

Co-authored-by: John Letey <johnletey@gmail.com>

Co-authored-by: John Letey <johnletey@gmail.com>
2020-07-01 11:46:49 +01:00
Lennard Scheibel
41836318ea feat: Add switch-camera icon (#31) 2020-07-01 09:22:02 +01:00
Lennard Scheibel
bf7a6b4503 refactor: Update camera and camera-off icons (#39) 2020-06-30 19:25:16 +01:00
Lennard Scheibel
c8ff5a12ff feat: Add highlighter icon (#32) 2020-06-30 08:40:39 +01:00
John Letey
da5b084a6b feat: Add copyleft icon (#41)
* feat: Add `copyleft` icon

* refactor: Simplify svg

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-06-29 15:32:24 +01:00
John Letey
c00ebdacca chore(react): Publish 2020-06-28 16:02:46 +01:00
John Letey
3624f449f0 feat(react): Ability to customise strokeWidth (#38) 2020-06-28 15:27:24 +01:00
Lennard Scheibel
fc76ff2687 feat: Add contrast icon (#33) 2020-06-28 14:56:27 +01:00
John Letey
456b54c8b4 feat: Add screen-share icons (#28)
* feat: Add `start-screenshare` icon

* feat: Add `start-screenshare-2` icon

* feat: Add `stop-screenshare` icon

* feat: Add `stop-screenshare-2` icon

* refactor: Update icons names

* refactor: Remove some icons for now
2020-06-28 14:55:58 +01:00
John Letey
a905faa00e feat: Add copyright icon (#29) 2020-06-28 11:18:06 +01:00
Eric Fennis
5ece90b035 docs: Update Discord invite (#27)
Update Discord Invite link and add Community section
2020-06-26 16:20:06 +01:00
John Letey
cb5d712584 feat: Add battery icons (#23)
* feat: Add `battery` icons

* refactor: Use elements for `battery-charging`

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

* refactor: Use elements for `battery-full`

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

* refactor: Use elements for `battery-low`

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

* refactor: Use elements for `battery-medium`

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

* refactor: Use elements for `battery`

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

Co-authored-by: Eric Fennis <eric.fennis@gmail.com>
2020-06-26 15:19:19 +01:00
Eric Fennis
90966d2723 feat: Add unlink icons (#10)
* add unlink icons

* Add safe zone, and add "link-2-off" icon

* Add EOF
2020-06-25 19:29:26 +01:00
Eric Fennis
513216cc6e docs: Update CONTRIBUTING file (#17)
* Update Contributing.md

* Remove Bug reporting section
2020-06-25 09:13:59 +01:00
Lennard Scheibel
efc7c9c1f6 feat: Add contact icon (#18) 2020-06-24 10:34:40 +01:00
John Letey
905eca3047 docs: Update first title in README
@locness3 😅
2020-06-24 08:57:31 +01:00
Lennard Scheibel
1fe87aa89d feat: Add snowflake icon (#21) 2020-06-24 08:20:03 +01:00
John Letey
25b20dba9b docs: Add Discord invite link 2020-06-23 19:03:59 +01:00
Eric Fennis
a106a4c3fc feat: Add languages icon (#16)
* Add languages icon

* Add end line
2020-06-23 13:23:01 +01:00
Eric Fennis
030e314413 feat: Add gamepad icons (#15)
* Add icons

* Add extra line add end of fille
2020-06-23 12:52:55 +01:00
Locness
6726eb6b15 docs: Update README (#14) 2020-06-22 10:57:53 +01:00
John Letey
0345dc1208 refactor: Update license (#12) 2020-06-19 09:35:39 +01:00
Eric Fennis
cde1f11258 feat: Add grip icons (#8) 2020-06-16 09:44:56 +01:00
John Letey
d652e795d6 feat: Add react package (#4)
* chore: Organise

* feat: Add `react` package

* refactor: Remove unneeded char
2020-06-13 12:52:10 +01:00
John Letey
6a3378ce5a feat: Add sort icons (#3)
* feat: Add `sort` icons

* refactor: Remove unnecessary icons

* chore: remove icon
2020-06-13 08:41:46 +01:00
505 changed files with 36086 additions and 17378 deletions

View File

@@ -1,13 +0,0 @@
{
"presets": [
[
"env",
{
"targets": {
"browsers": ["last 2 versions"]
}
}
],
"stage-2"
]
}

11
.editorconfig Normal file
View File

@@ -0,0 +1,11 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
quote_type = single
max_line_length = 100

View File

@@ -1,2 +1,5 @@
dist dist
build
coverage coverage
lib
tests

21
.eslintrc.js Normal file
View File

@@ -0,0 +1,21 @@
module.exports = {
env: {
browser: true,
node: true
},
extends: ['airbnb-base', 'prettier'],
plugins: ['import', 'prettier'],
rules: {
'no-console': 'off',
'no-param-reassign': 'off',
'no-shadow': 'off',
'no-use-before-define': 'off',
'prettier/prettier': [
'error',
{
singleQuote: true,
trailingComma: 'all'
}
]
}
};

View File

@@ -1,17 +0,0 @@
{
"extends": ["airbnb-base", "prettier"],
"plugins": ["import", "prettier"],
"rules": {
"no-console": ["error", { "allow": ["warn", "error"] }],
"no-param-reassign": "off",
"no-shadow": "off",
"no-use-before-define": "off",
"prettier/prettier": [
"error",
{
"singleQuote": true,
"trailingComma": "all"
}
]
}
}

View File

@@ -1,6 +1,7 @@
--- ---
name: Bug report name: Bug report
about: Create a report to help us improve about: Create a report to help us improve
labels: bug
--- ---
<!-- <!--

View File

@@ -1,6 +1,7 @@
--- ---
name: Icon request name: Icon request
about: Suggest an new icon for this project about: Suggest an new icon for this project
labels: "icon request"
--- ---
<!-- <!--

67
.github/workflows/font.yml vendored Normal file
View File

@@ -0,0 +1,67 @@
name: Build Lucide
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
Build:
runs-on: ubuntu-latest
steps:
- name: Clone 'Lucide'
uses: actions/checkout@v2
- name: Update repos
run: sudo apt-get update
- name: Install FontForge
run: sudo apt-get install zlib1g-dev fontforge
- name: Install NodeJS and Yarn
run: sudo apt-get install nodejs yarn
- name: Clone sfnt2woff-zopfli repo
run: git clone https://github.com/bramstein/sfnt2woff-zopfli.git sfnt2woff-zopfli
- name: Install and move sfnt2woff-zopfli
run: |
cd sfnt2woff-zopfli
make
sudo mv sfnt2woff-zopfli /usr/local/bin/sfnt2woff
- name: Clone woff2
run: git clone --recursive https://github.com/google/woff2.git
- name: Install woff2
run: |
cd woff2
sudo make clean all
sudo mv woff2_compress /usr/local/bin/ && sudo mv woff2_decompress /usr/local/bin/
- name: Install Font Custom dependency
run: sudo gem install fontcustom
- name: Install "outline-stroke"
run: sudo yarn add svg-outline-stroke svgson
- name: "Outline SVG"
run: mkdir converted_icons && node scripts/outline_svg.js
- name: Build 'Lucide'
run: echo "Building Lucide font" && fontcustom compile ./converted_icons -h -n Lucide -o build -F
- name: Zip 'Lucide'
run: zip -r Lucide.zip build
- name: 'Upload to Artifacts'
uses: actions/upload-artifact@v1.0.0
with:
name: Lucide
path: build

99
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,99 @@
name: Release to NPM
on:
push:
tags:
- 'v*'
jobs:
build-and-deploy:
if: github.repository == 'lucide-icons/lucide'
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Get the version
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/\v}
- uses: actions/checkout@v2
with:
clean: true
- name: Set Auth Token
run: npm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }}
# Build lucide
- name: Install Dependencies Lucide
run: yarn --pure-lockfile
- name: Build lucide package
run: yarn build
- name: Test lucide package
run: yarn test
# Build lucide-react
- name: Install Dependencies lucide-react
run: yarn --pure-lockfile
working-directory: packages/lucide-react
- name: Build lucide-react
run: yarn build
working-directory: packages/lucide-react
- name: Test lucide-react
run: yarn test
working-directory: packages/lucide-react
# Build lucide-vue
- name: Install Dependencies lucide-vue
run: yarn --pure-lockfile
working-directory: packages/lucide-vue
- name: Build lucide-vue
run: yarn build
working-directory: packages/lucide-vue
- name: Test lucide-vue
run: yarn test
working-directory: packages/lucide-vue
# Publish lucide
- name: Set package.json version lucide
run: yarn version --new-version ${{ steps.get_version.outputs.VERSION }} --no-git-tag-version
- name: publish lucide
run: yarn publish
# Publish lucide-react
- name: Set package.json version lucide-react
run: yarn version --new-version ${{ steps.get_version.outputs.VERSION }} --no-git-tag-version
working-directory: packages/lucide-react
- name: publish lucide-react
run: yarn publish
working-directory: packages/lucide-react
# Publish lucide-vue
- name: Set package.json version lucide-vue
run: yarn version --new-version ${{ steps.get_version.outputs.VERSION }} --no-git-tag-version
working-directory: packages/lucide-vue
- name: publish lucide-vue
run: yarn publish
working-directory: packages/lucide-vue
- name: Commit package.json
run: |
git add package.json
git add packages/lucide-react/package.json
git add packages/lucide-vue/package.json
git -c user.name="Lucide Bot" -c user.email="lucide-bot@users.noreply.github.com" \
commit -m ":package: Bump version to ${{ steps.get_version.outputs.VERSION }}" --no-verify --quiet
git remote set-url --push origin https://lucide-bot:$GITHUB_TOKEN@github.com/$GITHUB_REPOSITORY.git
git push origin HEAD:master

6
.gitignore vendored
View File

@@ -1,6 +1,12 @@
.DS_Store .DS_Store
.next
.now
node_modules node_modules
dist dist
build
/lib
sandbox sandbox
stash stash
coverage coverage
stats
*.log

View File

@@ -1,3 +0,0 @@
{
"*.js": "eslint"
}

16
.npmignore Normal file
View File

@@ -0,0 +1,16 @@
.github
packages
stats
node_modules
tests
scripts
site
src
build
babel.config.js
categories.json
jest.config.js
netlify.toml
rollup.config.js
rollup.plugins.js
tags.json

View File

@@ -1,19 +0,0 @@
language: node_js
cache:
directories:
- node_modules
notifications:
email: false
node_js: 8
before_script:
- npm prune
script:
- npm run all
after_success:
- npx codecov
- npx babel-node ./bin/sync-algolia.js
deploy:
provider: script
skip_cleanup: true
script:
- npx semantic-release

View File

@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
## Enforcement ## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at cole@colebemis.com. All reported by contacting the project team at johnletey@gmail.com. All
complaints will be reviewed and investigated and will result in a response that complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident. obligated to maintain confidentiality with regard to the reporter of an incident.

View File

@@ -2,13 +2,11 @@
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1: :+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
The following is a set of guidelines for contributing to Feather. Feel free to propose changes to this document in a pull request. The following is a set of guidelines for contributing to Lucide. Feel free to propose changes to this document in a pull request.
## Pull Requests ## Pull Requests
> **Note:** At the moment we are not accepting pull requests containing _**icons**_. The best way to contribute an icon is to create an issue with a screenshot and link to an SVG of your icon. Feel free to open a pull-request to contribute to this project.
Pull requests for new features, bug fixes, etc. are often appreciated. Please checkout the [project roadmap](https://github.com/colebemis/feather#roadmap) and raise an issue to discuss any of the items on the list.
**Working on your first Pull Request?** You can learn how from this *free* series **Working on your first Pull Request?** You can learn how from this *free* series
[How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github)
@@ -19,54 +17,25 @@ Guidelines for pull requests:
- __Make sure the target of your pull request is the relevant branch__. Most of bugfix or new feature should go to the `master` branch. - __Make sure the target of your pull request is the relevant branch__. Most of bugfix or new feature should go to the `master` branch.
- __Include only related work__. If your pull request has unrelated commit, it won't be accepted. - __Include only related work__. If your pull request has unrelated commit, it won't be accepted.
### Pull Requests Including Icons
#### Guidelines
Please make sure you follow the icon guidelines, that should be followed to keep quality and consistency when making icons for Lucide
Read it here: [ICON_GUIDELINES](docs/ICON_DESIGN_GUIDE.md)
#### Submitting Mulitple Icons
If you want submit multiple icons, please separate the icons and group them. That makes reviewing the icons easier and keep the thread clean and scoped.
So don't submit multiple icons in one PR that have noting to do with each other.
So for example don't create one PR with icons: `arrow-up`, `bicycle`, `arrow-down`.
Seperate them by two PRs; 'pr-01' `arrow`, `arrow-down` and 'pr-02' `bicycle`.
## Icon Requests ## Icon Requests
Before creating an icon request, please search to see if someone has requested the icon already. If there is an open request, please add a :+1:. Before creating an icon request, please search to see if someone has requested the icon already. If there is an open request, please add a :+1:.
If the icon has not already been requested, [create an issue](https://github.com/colebemis/feather/issues/new?title=Icon%20Request:) with a title of `Icon request: <icon name>` and add as much information as possible. If the icon has not already been requested, [create an issue](https://github.com/lucide-icons/lucide/issues/new?title=Icon%20Request:) with a title of `Icon request: <icon name>` and add as much information as possible.
## Bug Reports ## Icon Requests from Feather
If you are a designer who wants to contribute to Lucide but you don't know what icons to work on, then have a look at the Requests from Feather. All open, unfinished and valid requests can be found in [Feather Icon Requests](https://github.com/lucide-icons/lucide/issues/119).
Before reporting an issue, please search to see if someone has filed a similar issue before. If there is already an open issue, please add a :+1: and/or leave a comment with additional information.
When creating a new issue make sure to include the following:
- Version of `Feather` in use. Are you running from source/master? Are you using a released build? Which release?
- Your environment. What is your operating system? 32 or 64 bits?
- Step to reproduce. Even if the step is only one line change, __include it!__ Include the actual result and what you expected.
- Any message or error you get in the console, if you do.
- A screenshot of any visual bug.
Here is what a great bug report would look like:
```
## Prerequisites
Version: Release v3.1.0
Running from: Import using webpack
Operating system: Mac OSX
Bits: 64 bits
## Step to reproduce
- Import `check` icon
- Add to a React component/view
- Run the react app
- Notice that the `check` isn't rendering correctly which seems a encoding problem
### Actual behavior:
- Import `check` icon
- Add to a React component/view
- Run the react app
- Check is displayed with correct encoding (e.g UTF-8)
## Any message or error
No console output
...
## Resources
No resources
...
```

30
LICENSE
View File

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

475
README.md
View File

@@ -1,404 +1,203 @@
# Feather <p align=center><img width="410" src="https://lucide.dev/logo-text.svg" alt="Lucide Logo"></p>
[![Build status](https://img.shields.io/travis/feathericons/feather/master.svg?style=flat-square)](https://travis-ci.org/feathericons/feather) # Lucide
[![Coverage](https://img.shields.io/codecov/c/github/feathericons/feather/master.svg?style=flat-square)](https://codecov.io/gh/feathericons/feather)
[![npm downloads](https://img.shields.io/npm/dm/feather-icons.svg?style=flat-square)](https://www.npmjs.com/package/feather-icons)
[![npm version](https://img.shields.io/npm/v/feather-icons.svg?style=flat-square)](https://www.npmjs.com/package/feather-icons)
[![CDNJS version](https://img.shields.io/cdnjs/v/feather-icons.svg?style=flat-square)](https://cdnjs.com/libraries/feather-icons)
[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://www.paypal.me/colebemis/5)
## What is Feather? ![NPM](https://img.shields.io/npm/l/lucide)
[![npm](https://img.shields.io/npm/v/lucide)](https://www.npmjs.com/package/lucide)
[![Discord](https://img.shields.io/discord/723074157486800936?label=chat&logo=discord&logoColor=%23ffffff&colorB=%237289DA)](https://discord.gg/EH6nSts)
Feather is a collection of simply beautiful open source icons. Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency, and flexibility. ## What is Lucide?
https://feathericons.com Lucide is a community-run fork of [Feather Icons](https://github.com/feathericons/feather), open for anyone to contribute icons.
```shell
npm install feather-icons
```
## Table of Contents ## Table of Contents
* [Quick Start](#quick-start) * [Installation](#installation)
* [Package managers](#package-managers)
* [CDN](#cdn)
* [Usage](#usage) * [Usage](#usage)
* [Client-side JavaScript](#client-side-javascript) * [Unpkg](#with-unpkg)
* [Node](#node) * [ESModules](#with-esmodules)
* [SVG Sprite](#svg-sprite) * [Options](#additional-options)
* [Treeshake library](#treeshake-the-library-only-use-the-icons-you-use)
* [Custom binding](#custom-element-binding)
* [React](#with-react)
* [Vue](#with-vue)
* [Figma](#figma) * [Figma](#figma)
* [API Reference](#api-reference)
* [`feather.icons`](#feathericons)
* [`feather.icons[name].toSvg()`](#feathericonsnametosvgattrs)
* [`feather.replace()`](#featherreplaceattrs)
* [(DEPRECATED) `feather.toSvg()`](#deprecated-feathertosvgname-attrs)
* [Contributing](#contributing) * [Contributing](#contributing)
* [Related Projects](#related-projects) * [Community](#community)
* [License](#license) * [License](#license)
## Quick Start ## Installation
Start with this [CodePen Template](https://codepen.io/pen?template=WOJZdM) to begin prototyping with Feather in the browser. ### Package Managers
Or copy and paste the following code snippet into a blank `html` file. ``` bash
npm install lucide
#or
yarn add lucide
```
```html ### CDN
<!DOCTYPE html>
<html lang="en">
<title></title>
<script src="https://unpkg.com/feather-icons"></script>
<body>
<!-- example icon --> ``` html
<i data-feather="circle"></i> <!-- Development version -->
<script src="https://unpkg.com/lucide@latest/dist/umd/lucide.js"></script>
<script> <!-- Production version -->
feather.replace() <script src="https://unpkg.com/lucide@latest"></script>
</script>
</body>
</html>
``` ```
## Usage ## Usage
At its core, Feather is a collection of [SVG](https://svgontheweb.com/#svg) files. This means that you can use Feather icons in all the same ways you can use SVGs (e.g. `img`, `background-image`, `inline`, `object`, `embed`, `iframe`). Here's a helpful article detailing the many ways SVGs can be used on the web: [SVG on the Web Implementation Options](https://svgontheweb.com/#implementation) At its core, Lucide is a collection of [SVG](https://svgontheweb.com/#svg) files. This means that you can use Feather icons in all the same ways you can use SVGs (e.g. `img`, `background-image`, `inline`, `object`, `embed`, `iframe`). Here's a helpful article detailing the many ways SVGs can be used on the web: [SVG on the Web Implementation Options](https://svgontheweb.com/#implementation)
The following are additional ways you can use Feather. The following are additional ways you can use Lucide.
With the Javascript library you can easily incorporate the icon you want in your webpage.
### Client-side JavaScript ### With unpkg
#### 1. Install Here is a complete example with unpkg
> **Note:** If you intend to use Feather with a CDN, you can skip this installation step.
Install with [npm](https://docs.npmjs.com/getting-started/what-is-npm).
```shell
npm install feather-icons --save
```
Or just copy [`feather.js`](https://unpkg.com/feather-icons/dist/feather.js) or [`feather.min.js`](https://unpkg.com/feather-icons/dist/feather.min.js) into your project directory. You don't need both `feather.js` and `feather.min.js`.
#### 2. Include
Include `feather.js` or `feather.min.js` with a `<script>` tag:
```html ```html
<script src="path/to/dist/feather.js"></script> <!DOCTYPE html>
<body>
<i icon-name="volume-2" class="my-class"></i>
<i icon-name="x"></i>
<i icon-name="menu"></i>
<script src="https://unpkg.com/lucide@latest"></script>
<script>
lucide.createIcons();
</script>
</body>
``` ```
> **Note:** `feather.js` and `feather.min.js` are located in the `dist` directory of the npm package. ### With ESModules
Or load the script from a CDN provider: To reduce bundle size, lucide is built to be fully treeshakable.
The `createIcons` function will search for HTMLElements with the attribute `icon-name` and replace it with the svg from the given icon name.
```html ```html
<!-- choose one --> <!-- Your HTML file -->
<script src="https://unpkg.com/feather-icons"></script> <i icon-name="menu"></i>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
``` ```
After including the script, `feather` will be available as a global variable.
#### 3. Use
To use an icon on your page, add a `data-feather` attribute with the icon name to an element:
```html
<i data-feather="circle"></i>
```
See the complete list of icons at [feathericons.com](https://feathericons.com).
#### 4. Replace
Call the `feather.replace()` method:
```html
<script>
feather.replace()
</script>
```
All elements that have a `data-feather` attribute will be replaced with SVG markup corresponding to their `data-feather` attribute value. See the [API Reference](#api-reference) for more information about `feather.replace()`.
### Node
#### 1. Install
Install with [npm](https://docs.npmjs.com/getting-started/what-is-npm):
```shell
npm install feather-icons --save
```
#### 2. Require
```js ```js
const feather = require('feather-icons') import { createIcons, icons } from 'lucide';
// Caution, this will import all the icons and bundle them.
createIcons({icons});
// Recommended way, to include only the icons you need.
import { createIcons, Menu, ArrowRight, Globe } from 'lucide';
createIcons({
icons: {
Menu,
ArrowRight,
Globe,
},
});
``` ```
#### 3. Use #### Additional Options
In the `createIcons` function you can pass some extra parameters to adjust the `nameAttr` or add custom attributes like for example classes.
Here is a full example:
```js ```js
feather.icons.x import { createIcons } from 'lucide';
// {
// name: 'x',
// contents: '<line ... /><line ... />`,
// tags: ['cancel', 'close', 'delete', 'remove'],
// attrs: {
// class: 'feather feather-x',
// 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',
// },
// toSvg: [Function],
// }
feather.icons.x.toSvg() createIcons({
// <svg class="feather feather-x" ...><line ... /><line ... /></svg> attrs: {
class: ['my-custom-class', 'icon'],
feather.icons.x.toSvg({ class: 'foo bar', 'stroke-width': 1, color: 'red' }) 'stroke-width': 1,
// <svg class="feather feather-x foo bar" stroke-width="1" color="red" ...><line ... /><line ... /></svg> stroke: '#333',
},
nameAttr: 'icon-name', // atrribute for the icon name.
});
``` ```
See the [API Reference](#api-reference) for more information about the available properties and methods of the `feather` object. #### Treeshake the library, only use the icons you use
### SVG Sprite ```js
import { createIcons, Menu, ArrowRight, Globe } from 'lucide';
#### 1. Install createIcons({
icons: {
> **Note:** If you intend to use Feather with a CDN, you can skip this installation step. Menu,
ArrowRight,
Install with [npm](https://docs.npmjs.com/getting-started/what-is-npm). Globe,
},
```shell });
npm install feather-icons --save
``` ```
Or just copy [`feather-sprite.svg`](https://unpkg.com/feather-icons/dist/feather-sprite.svg) into your project directory. #### Custom Element binding
#### 2. Use ```js
import { createElement, Menu } from 'lucide';
Include an icon on your page with the following markup: const menuIcon = createElement(Menu); // Returns HTMLElement (svg)
```html // set custom attributes with browser native functions
<svg menuIcon.setAttribute('stroke', '#333');
width="24" menuIcon.classList.add('my-icon-class');
height="24"
fill="none" // Append HTMLElement in webpage
stroke="currentColor" const myApp = document.getElementById('app');
stroke-width="2" myApp.appendChild(menuIcon);
stroke-linecap="round"
stroke-linejoin="round"
>
<use xlink:href="path/to/feather-sprite.svg#circle"/>
</svg>
``` ```
> **Note:** `circle` in the above example can be replaced with any valid icon name. See the complete list of icon names at [feathericons.com](https://feathericons.com). ### With React
However, this markup can be simplified using a simple CSS class to avoid repetition of SVG attributes between icons: You can also use the Lucide library using the react package.
```css ```sh
.feather { yarn add lucide-react
width: 24px;
height: 24px; # or
stroke: currentColor;
stroke-width: 2; npm install lucide-react
stroke-linecap: round;
stroke-linejoin: round;
fill: none;
}
``` ```
```html For more details, see the [documentation](https://github.com/lucide-icons/lucide/blob/master/packages/lucide-react/README.md).
<svg class="feather">
<use xlink:href="path/to/dist/feather-sprite.svg#circle"/> ### With Vue
</svg>
You can also use the Lucide library using the Vue package.
```sh
yarn add lucide-vue
# or
npm install lucide-vue
``` ```
For more details, see the [documentation](https://github.com/lucide-icons/lucide/blob/master/packages/lucide-vue/README.md).
### Figma ### Figma
Feather is available as a [Figma component library](https://www.figma.com/file/dyJRSFTIajik4cdkcXN8yA3K/Feather-Component-Library). To use the components, log in to your Figma account and **duplicate** the file to your drafts.
## API Reference You can use the components from [this Figma file](https://www.figma.com/file/g0UipfQlRfGrntKPxZknM7/Featherity).
### `feather.icons`
An object with data about every icon.
#### Usage
```js
feather.icons.x
// {
// name: 'x',
// contents: '<line ... /><line ... />',
// tags: ['cancel', 'close', 'delete', 'remove'],
// attrs: {
// class: 'feather feather-x',
// 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',
// },
// toSvg: [Function],
// }
feather.icons.x.toString()
// '<line ... /><line ... />'
```
> **Note:** `x` in the above example can be replaced with any valid icon name. See the complete list of icon names at [feathericons.com](https://feathericons.com). Icons with multi-word names (e.g. `arrow-right`) **cannot** be accessed using dot notation (e.g. `feather.icons.x`). Instead, use bracket notation (e.g. `feather.icons['arrow-right']`).
[View Source](https://github.com/colebemis/feather/blob/master/src/icons.js)
---
### `feather.icons[name].toSvg([attrs])`
Returns an SVG string.
#### Parameters
| Name | Type | Description |
| --------- | ------ | ----------- |
| `attrs` (optional) | Object | Key-value pairs in the `attrs` object will be mapped to HTML attributes on the `<svg>` tag (e.g. `{ foo: 'bar' }` maps to `foo="bar"`). All default attributes on the `<svg>` tag can be overridden with the `attrs` object. |
> **Hint:** You might find these SVG attributes helpful for manipulating icons:
> * [`color`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/color)
> * [`width`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/width)
> * [`height`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/height)
> * [`stroke-width`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-width)
> * [`stroke-linecap`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap)
> * [`stroke-linejoin`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linejoin)
#### Usage
```js
feather.icons.circle.toSvg()
// '<svg class="feather feather-circle" 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"><circle cx="12" cy="12" r="10"></circle></svg>'
feather.icons.circle.toSvg({ 'stroke-width': 1 })
// '<svg class="feather feather-circle" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>'
feather.icons.circle.toSvg({ class: 'foo bar' })
// '<svg class="feather feather-circle foo bar" 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"><circle cx="12" cy="12" r="10"></circle></svg>'
```
[View Source](https://github.com/colebemis/feather/blob/master/src/icon.js)
---
### `feather.replace([attrs])`
Replaces all elements that have a `data-feather` attribute with SVG markup corresponding to the element's `data-feather` attribute value.
#### Parameters
| Name | Type | Description |
| ---------- | ------ | ----------- |
| `attrs` (optional) | Object | Key-value pairs in the `attrs` object will be mapped to HTML attributes on the `<svg>` tag (e.g. `{ foo: 'bar' }` maps to `foo="bar"`). All default attributes on the `<svg>` tag can be overridden with the `attrs` object. |
#### Usage
> **Note:** `feather.replace()` only works in a browser environment.
Simple usage:
```html
<i data-feather="circle"></i>
<!--
<i> will be replaced with:
<svg class="feather feather-circle" 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"><circle cx="12" cy="12" r="10"></circle></svg>
-->
<script>
feather.replace()
</script>
```
You can pass `feather.replace()` an `attrs` object:
```html
<i data-feather="circle"></i>
<!--
<i> will be replaced with:
<svg class="feather feather-circle foo bar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>
-->
<script>
feather.replace({ class: 'foo bar', 'stroke-width': 1 })
</script>
```
All attributes on the placeholder element (i.e. `<i>`) will be copied to the `<svg>` tag:
```html
<i data-feather="circle" id="my-circle" class="foo bar" stroke-width="1"></i>
<!--
<i> will be replaced with:
<svg id="my-circle" class="feather feather-circle foo bar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>
-->
<script>
feather.replace()
</script>
```
[View Source](https://github.com/colebemis/feather/blob/master/src/replace.js)
---
### (DEPRECATED) `feather.toSvg(name, [attrs])`
> **Note:** `feather.toSvg()` is deprecated. Please use `feather.icons[name].toSvg()` instead.
Returns an SVG string.
#### Parameters
| Name | Type | Description |
| --------- | ------ | ----------- |
| `name` | string | Icon name |
| `attrs` (optional) | Object | Key-value pairs in the `attrs` object will be mapped to HTML attributes on the `<svg>` tag (e.g. `{ foo: 'bar' }` maps to `foo="bar"`). All default attributes on the `<svg>` tag can be overridden with the `attrs` object. |
#### Usage
```js
feather.toSvg('circle')
// '<svg class="feather feather-circle" 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"><circle cx="12" cy="12" r="10"></circle></svg>'
feather.toSvg('circle', { 'stroke-width': 1 })
// '<svg class="feather feather-circle" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>'
feather.toSvg('circle', { class: 'foo bar' })
// '<svg class="feather feather-circle foo bar" 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"><circle cx="12" cy="12" r="10"></circle></svg>'
```
[View Source](https://github.com/colebemis/feather/blob/master/src/to-svg.js)
## Contributing ## Contributing
For more info on how to contribute please see the [contribution guidelines](https://github.com/colebemis/feather/blob/master/CONTRIBUTING.md). For more info on how to contribute please see the [contribution guidelines](https://github.com/lucide-icons/lucide/blob/master/CONTRIBUTING.md).
Caught a mistake or want to contribute to the documentation? [Edit this page on Github](https://github.com/colebemis/feather/blob/master/README.md) Caught a mistake or want to contribute to the documentation? [Edit this page on Github](https://github.com/lucide-icons/lucide/blob/master/README.md)
## Related Projects ## Community
- [angular-feather](https://github.com/michaelbazos/angular-feather) - Feather icons for Angular applications Join the community on our [Discord](https://discord.gg/EH6nSts) server!
- [elm-feather](https://github.com/1602/elm-feather) - Feather icons for Elm applications
- [react-feather](https://github.com/carmelopullara/react-feather) - Feather icons as React components
- [sketch-feather](https://github.com/odmln/sketch-feather) - Feather icons as a Sketch library
- [vue-feather-icons](https://github.com/egoist/vue-feather-icons) - Feather icons as Vue components
- [php-feather](https://github.com/Pixelrobin/php-feather) - Feather icons as a PHP Library
- [django-feather](https://pypi.org/project/django-feather/) - Feather icons as Django Template Tag
- [svelte-feather-icons](https://github.com/dylanblokhuis/svelte-feather-icons) - Feather icons as Svelte components
## License ## License
Feather is licensed under the [MIT License](https://github.com/colebemis/feather/blob/master/LICENSE). Lucide is licensed under the [ISC License](https://github.com/lucide-icons/lucide/blob/master/LICENSE).
<p align="center">
<a href="https://vercel.com?utm_source=lucide&utm_campaign=oss">
<img src="./site/public/vercel.svg" alt="Powered by Vercel" width="200" />
</a>
</p>

27
babel.config.js Normal file
View File

@@ -0,0 +1,27 @@
module.exports = {
presets: [
[
'@babel/env',
{
loose: true,
modules: false,
},
],
],
env: {
test: {
presets: ['@babel/env'],
plugins: ['@babel/plugin-transform-runtime'],
},
dev: {
plugins: [
[
'transform-inline-environment-variables',
{
include: ['NODE_ENV'],
},
],
],
},
},
};

View File

@@ -1,6 +0,0 @@
{
"rules": {
"import/no-extraneous-dependencies": "off",
"no-console": "off"
}
}

View File

@@ -1,8 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`builds object correctly 1`] = `
Object {
"icon1": "<line x1=\\"23\\" y1=\\"1\\" x2=\\"1\\" y2=\\"23\\"></line><line x1=\\"1\\" y1=\\"1\\" x2=\\"23\\" y2=\\"23\\"></line>",
"icon2": "<circle cx=\\"12\\" cy=\\"12\\" r=\\"11\\"></circle>",
}
`;

View File

@@ -1,3 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`builds sprite correctly 1`] = `"<svg xmlns=\\"http://www.w3.org/2000/svg\\"><defs><symbol id=\\"icon1\\" viewBox=\\"0 0 24 24\\"><line x1=\\"23\\" y1=\\"1\\" x2=\\"1\\" y2=\\"23\\"></line><line x1=\\"1\\" y1=\\"1\\" x2=\\"23\\" y2=\\"23\\"></line></symbol><symbol id=\\"icon2\\" viewBox=\\"0 0 24 24\\"><circle cx=\\"12\\" cy=\\"12\\" r=\\"11\\"></circle></symbol></defs></svg>"`;

View File

@@ -1,26 +0,0 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`processes SVG correctly 1`] = `
"<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\\"
>
<line x1=\\"23\\" y1=\\"1\\" x2=\\"1\\" y2=\\"23\\" />
<line x1=\\"1\\" y1=\\"1\\" x2=\\"23\\" y2=\\"23\\" />
</svg>
"
`;
exports[`rejects when passed unparsable SVG string 1`] = `
[Error: Error in parsing SVG: Unclosed root tag
Line: 0
Column: 10
Char: ]
`;

View File

@@ -1,17 +0,0 @@
/* eslint-env jest */
import buildIconsObject from '../build-icons-object';
const SVG_FILES = {
'icon1.svg':
'<svg\n xmlns="http://www.w3.org/2000/svg"\n width="24"\n height="24"\n viewBox="0 0 24 24"\n>\n <line x1="23" y1="1" x2="1" y2="23" />\n <line x1="1" y1="1" x2="23" y2="23" />\n</svg>',
'icon2.svg':
'<svg\n xmlns="http://www.w3.org/2000/svg"\n width="24"\n height="24"\n viewBox="0 0 24 24"\n>\n <circle cx="12" cy="12" r="11" />\n</svg>',
};
function getSvg(svgFile) {
return SVG_FILES[svgFile];
}
test('builds object correctly', () => {
expect(buildIconsObject(Object.keys(SVG_FILES), getSvg)).toMatchSnapshot();
});

View File

@@ -1,12 +0,0 @@
/* eslint-env jest */
import buildSpriteString from '../build-sprite-string';
const icons = {
icon1:
'<line x1="23" y1="1" x2="1" y2="23"></line><line x1="1" y1="1" x2="23" y2="23"></line>',
icon2: '<circle cx="12" cy="12" r="11"></circle>',
};
test('builds sprite correctly', () => {
expect(buildSpriteString(icons)).toMatchSnapshot();
});

View File

@@ -1,15 +0,0 @@
/* eslint-env jest */
import processSvg from '../process-svg';
test('processes SVG correctly', () => {
const SVG =
'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><title>Title</title><line x1="23" y1="1" x2="1" y2="23" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/><line x1="1" y1="1" x2="23" y2="23" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/></svg>';
expect(processSvg(SVG)).resolves.toMatchSnapshot();
});
test('rejects when passed unparsable SVG string', () => {
const UNPARSABLE_SVG = '<svg></svg';
expect(processSvg(UNPARSABLE_SVG)).rejects.toMatchSnapshot();
});

View File

@@ -1,19 +0,0 @@
import fs from 'fs';
import path from 'path';
import buildIconsObject from './build-icons-object';
const IN_DIR = path.resolve(__dirname, '../icons');
const OUT_FILE = path.resolve(__dirname, '../dist/icons.json');
console.log(`Building ${OUT_FILE}...`);
const svgFiles = fs
.readdirSync(IN_DIR)
.filter(file => path.extname(file) === '.svg');
const getSvg = svgFile => fs.readFileSync(path.join(IN_DIR, svgFile));
const icons = buildIconsObject(svgFiles, getSvg);
fs.writeFileSync(OUT_FILE, JSON.stringify(icons));

View File

@@ -1,28 +0,0 @@
import DEFAULT_ATTRS from '../src/default-attrs.json';
/**
* Build an SVG sprite string containing SVG symbols.
* @param {Object} icons
* @returns {string}
*/
function buildSpriteString(icons) {
const symbols = Object.keys(icons)
.map(icon => toSvgSymbol(icon, icons[icon]))
.join('');
return `<svg xmlns="${DEFAULT_ATTRS.xmlns}"><defs>${symbols}</defs></svg>`;
}
/**
* Create an SVG symbol string.
* @param {string} name - Icon name
* @param {string} contents - SVG contents
* @returns {string}
*/
function toSvgSymbol(name, contents) {
return `<symbol id="${name}" viewBox="${DEFAULT_ATTRS.viewBox}">${
contents
}</symbol>`;
}
export default buildSpriteString;

View File

@@ -1,10 +0,0 @@
import fs from 'fs';
import path from 'path';
import icons from '../dist/icons.json';
import buildSpriteString from './build-sprite-string';
const OUT_FILE = path.resolve(__dirname, '../dist/feather-sprite.svg');
console.log(`Building ${OUT_FILE}...`);
fs.writeFileSync(OUT_FILE, buildSpriteString(icons));

View File

@@ -1,13 +0,0 @@
import fs from 'fs';
import path from 'path';
import icons from '../src/icons';
const OUT_DIR = path.resolve(__dirname, '../dist/icons');
console.log(`Building SVGs in ${OUT_DIR}...`);
Object.keys(icons).forEach(name => {
const svg = icons[name].toSvg();
fs.writeFileSync(path.join(OUT_DIR, `${name}.svg`), svg);
});

View File

@@ -1,25 +0,0 @@
#!/bin/bash
# Process SVG files
npx babel-node bin/process-svgs.js
# Create dist directory
npx rimraf dist
mkdir dist
# Build icons.json
npx babel-node bin/build-icons-json.js
# Build SVG sprite
npx babel-node bin/build-sprite.js
# Create dist/icons directory
npx rimraf dist/icons
mkdir dist/icons
# Build SVG icons
npx babel-node bin/build-svgs.js
# Build JavaScript library
npx webpack --output-filename feather.js --mode development
npx webpack --output-filename feather.min.js --mode production

View File

@@ -1,18 +0,0 @@
import fs from 'fs';
import path from 'path';
import processSvg from './process-svg';
const IN_DIR = path.resolve(__dirname, '../icons');
console.log(`Processing SVGs in ${IN_DIR}...`);
fs
.readdirSync(IN_DIR)
.filter(file => path.extname(file) === '.svg')
.forEach(svgFile => {
const svg = fs.readFileSync(path.join(IN_DIR, svgFile));
processSvg(svg).then(svg =>
fs.writeFileSync(path.join(IN_DIR, svgFile), svg),
);
});

View File

@@ -1,73 +0,0 @@
import algolia from 'algoliasearch';
import icons from '../dist/icons.json';
import tags from '../src/tags.json';
const ALGOLIA_APP_ID = '5EEOG744D0';
if (
process.env.TRAVIS_PULL_REQUEST === 'false' &&
process.env.TRAVIS_BRANCH === 'master'
) {
syncAlgolia();
} else {
console.log('Skipped Algolia sync.');
}
function syncAlgolia() {
// ALGOLIA_ADMIN_KEY must be added as an environment variable in Travis CI
const client = algolia(ALGOLIA_APP_ID, process.env.ALGOLIA_ADMIN_KEY);
console.log('Initializing target and temporary indexes...');
const index = client.initIndex('icons');
const indexTmp = client.initIndex('icons_tmp');
console.log(
"Copying target index's settings, synonyms and rules into temporary index...",
);
scopedCopyIndex(client, index.indexName, indexTmp.indexName)
.then(() => {
const objects = Object.keys(icons).map(name => ({
name,
tags: tags[name] || [],
}));
console.log('Adding objects to the temporary index...');
return addObjects(indexTmp, objects);
})
.then(() => {
console.log('Moving temporary index to target index...');
return moveIndex(client, indexTmp.indexName, index.indexName);
});
}
function scopedCopyIndex(
client,
indexNameSrc,
indexNameDest,
scope = ['settings', 'synonyms', 'rules'],
) {
return new Promise((resolve, reject) => {
client.copyIndex(indexNameSrc, indexNameDest, scope, (error, contents) => {
if (error) reject(error);
resolve(contents);
});
});
}
function addObjects(index, objects) {
return new Promise((resolve, reject) => {
index.addObjects(objects, (error, contents) => {
if (error) reject(error);
resolve(contents);
});
});
}
function moveIndex(client, indexNameSrc, indexNameDest) {
return new Promise((resolve, reject) => {
client.moveIndex(indexNameSrc, indexNameDest, (error, contents) => {
if (error) reject(error);
resolve(contents);
});
});
}

19
categories.json Normal file
View File

@@ -0,0 +1,19 @@
{
"arrows": [],
"brands": [],
"code": [],
"connectivity": ["airplay"],
"cursors": [],
"development": [],
"devices": ["alarm-clock"],
"file-system": [],
"layout": [],
"maths": ["activity"],
"multimedia": [],
"notifications": ["alert-circle", "alert-octagon", "alert-triangle"],
"nature": [],
"shopping": [],
"shapes": [],
"sports": [],
"text-edit": ["align-center","align-right","align-left","align-justify" ]
}

View File

@@ -1,8 +0,0 @@
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'scope-case': [0],
'subject-case': [2, 'always', 'sentence-case'],
'header-max-length': [0],
},
};

78
docs/ICON_DESIGN_GUIDE.md Normal file
View File

@@ -0,0 +1,78 @@
# Icon Design Guide
Here are rules that should be followed to keep quality and consistency when making icons for Lucide.
## Summary of the rules we have
1. Icons must be designed on a **24 by 24 pixels** canvas.
2. Icons must have a **1 pixel padding** within the canvas.
3. Icons must have a **stroke width of 2 pixels**.
4. Icons must use **round joins**.
5. Icons must use **round caps**.
6. Icons must use **centered strokes**.
7. Shapes (such as rectangles) in icons must have **border radius of 2 pixels**.
8. Distinct elements must have **2 pixels of spacing between each other**.
## The Rules Visualized
### 1. Icons must be designed on a 24 by 24 pixels canvas.
![24px-24px](images/24px-24px.png?raw=true "24px-24px")
### 2. Icons must have a 1 pixel padding within the canvas.
![1px-padding](images/1px-padding.png?raw=true "1px-padding")
### 3. Icons must have a stroke width of 2 pixels.
![2px-stroke](images/2px-stroke.png?raw=true "2px-stroke")
### 4. Icons must use round joins.
![round-joints](images/round-joints.png?raw=true "round-joints")
### 5. Icons must use round caps.
![round-caps](images/round-caps.png?raw=true "round-caps")
### 6. Icons must use centered strokes.
![centered-strokes](images/centered-strokes.png?raw=true "centered-strokes")
### 7. Shapes (such as squares) in icons must have border radius of 2 pixels.
![2px-border-radius](images/2px-border-radius.png?raw=true "2px-border-radius")
### 8. Distinct elements must have 2 pixels of spacing between each other.
![2px-element-spacing](images/2px-element-spacing.png?raw=true "2px-element-spacing")
## Code Conventions
Before an icon is added to the library, we like to have readable and optimized svg code.
### Global Attributes
For each icon these attributes are applied, corresponding to the above rules.
```xml
<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"
>
<!-- SVGElements -->
</svg>
```
### Minify paths
Code of paths can get really big.
To reduce file size we like to minify the code.
We recommend to use the [SVGOMG](https://jakearchibald.github.io/svgomg/) to minify paths.

37
docs/INKSCAPE_GUIDE.md Normal file
View File

@@ -0,0 +1,37 @@
# Inkscape Setup Guide
This guide shows the steps to setup Inkscape for creating icons that conform to the Featherity design
guidelines.
## Setting up The Canvas
When opening a new document, Inkscape will create a canvas of a default size. To change the size to 24x24:
1. Open the Document Properties dialog (File -> Document Properties).
2. On the “Page Size” tab, under “Custom Size” set the Units to `px` and set both Height and Width to 24.
![Setting Page Size](images/page-size.png?raw=true "Setting Page Size")
3. On the “Grid” tab, select `Rectangular Grid` and click “New Grid”.
![Setting Grid Properties](images/grid-1.png?raw=true "Setting Grid Properties")
4. Set the Grid Units to `px` and set Spacing X and Spacing Y both to 1.
![Setting Grid Properties](images/grid-2.png?raw=true "Setting Grid Properties")
5. Close the Document Properties dialog.
6. To center the canvas in the viewport, select View -> Zoom -> Drawing.
## Setting up The Paths
1. Create a path or shape.
2. With the path selected, open the Stroke and Fill panel by pressing `Ctrl+Shift+F` on your keyboard.
![Stroke Style Properties](images/strokes.png?raw=true "Setting Grid Properties")
3. On the “Stroke Style” tab:
* Set Stroke Width to `2px`.
* Select the rounded join type.
* Select the rounded cap type.
4. If the shape is a rectangle, select the rectangle and in the top of the screen below the menu bar, set `Rx` and `Ry` to `2px`.
![Rectangle Radius Properties](images/corner-radius.png?raw=true "Rectangle Radius Properties")
## Saving A File
1. When ready to save the file, click Save As and select “Optimized SVG” as the file type.
![Save As](images/save-as.png?raw=true "Save as")
2. After clicking Save, to conform with the other icons in the package, set Pretty Printing to use spaces and set the indentation depth to 2.
![Optimize](images/optimize-settings.png?raw=true "Optimize")

BIN
docs/images/1px-padding.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
docs/images/24px-24px.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
docs/images/2px-stroke.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
docs/images/grid-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
docs/images/grid-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
docs/images/page-size.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
docs/images/round-caps.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
docs/images/save-as.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
docs/images/strokes.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -1,17 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Feather</title>
</head>
<body>
<i data-feather="eye"></i>
<i data-feather="heart"></i>
<i data-feather="feather"></i>
<script src="https://unpkg.com/feather-icons"></script>
<script>
feather.replace()
</script>
</body>
</html>

View File

@@ -9,6 +9,6 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1" /> <path d="M5 17H4a2 2 0 01-2-2V5a2 2 0 012-2h16a2 2 0 012 2v10a2 2 0 01-2 2h-1" />
<polygon points="12 15 17 21 7 21 12 15" /> <polygon points="12 15 17 21 7 21 12 15" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 344 B

After

Width:  |  Height:  |  Size: 338 B

18
icons/alarm-check.svg Normal file
View File

@@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 21a8 8 0 100-16 8 8 0 000 16z" />
<path d="M5 3L2 6" />
<path d="M22 6l-3-3" />
<path d="M6 19l-2 2" />
<path d="M18 19l2 2" />
<path d="M9 13l2 2 4-4" />
</svg>

After

Width:  |  Height:  |  Size: 388 B

View File

@@ -9,5 +9,10 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" /> <circle cx="12" cy="13" r="8" />
<path d="M12 9v4l2 2" />
<path d="M5 3L2 6" />
<path d="M22 6l-3-3" />
<path d="M6 19l-2 2" />
<path d="M18 19l2 2" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 376 B

After

Width:  |  Height:  |  Size: 372 B

18
icons/alarm-minus.svg Normal file
View File

@@ -0,0 +1,18 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 21a8 8 0 100-16 8 8 0 000 16z" />
<path d="M5 3L2 6" />
<path d="M22 6l-3-3" />
<path d="M6 19l-2 2" />
<path d="M18 19l2 2" />
<path d="M8 13h8" />
</svg>

After

Width:  |  Height:  |  Size: 382 B

19
icons/alarm-plus.svg Normal file
View File

@@ -0,0 +1,19 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 21a8 8 0 100-16 8 8 0 000 16z" />
<path d="M5 3L2 6" />
<path d="M22 6l-3-3" />
<path d="M6 19l-2 2" />
<path d="M18 19l2 2" />
<path d="M12 9v8" />
<path d="M8 13h8" />
</svg>

After

Width:  |  Height:  |  Size: 405 B

14
icons/album.svg Normal file
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"
>
<rect x="3" y="3" width="18" height="18" rx="2" ry="2" />
<polyline points="11 3 11 11 14 8 17 11 17 3" />
</svg>

After

Width:  |  Height:  |  Size: 319 B

View File

@@ -9,7 +9,7 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z" /> <path d="M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z" />
<line x1="12" y1="9" x2="12" y2="13" /> <line x1="12" y1="9" x2="12" y2="13" />
<line x1="12" y1="17" x2="12.01" y2="17" /> <line x1="12" y1="17" x2="12.01" y2="17" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 400 B

After

Width:  |  Height:  |  Size: 395 B

View File

@@ -9,8 +9,7 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<line x1="18" y1="10" x2="6" y2="10" />
<line x1="21" y1="6" x2="3" y2="6" /> <line x1="21" y1="6" x2="3" y2="6" />
<line x1="21" y1="14" x2="3" y2="14" /> <line x1="17" y1="12" x2="7" y2="12" />
<line x1="18" y1="18" x2="6" y2="18" /> <line x1="19" y1="18" x2="5" y2="18" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 332 B

View File

@@ -9,8 +9,7 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<line x1="21" y1="10" x2="3" y2="10" /> <line x1="3" y1="6" x2="21" y2="6" />
<line x1="21" y1="6" x2="3" y2="6" /> <line x1="3" y1="12" x2="21" y2="12" />
<line x1="21" y1="14" x2="3" y2="14" /> <line x1="3" y1="18" x2="21" y2="18" />
<line x1="21" y1="18" x2="3" y2="18" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 332 B

View File

@@ -9,8 +9,7 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<line x1="17" y1="10" x2="3" y2="10" />
<line x1="21" y1="6" x2="3" y2="6" /> <line x1="21" y1="6" x2="3" y2="6" />
<line x1="21" y1="14" x2="3" y2="14" /> <line x1="15" y1="12" x2="3" y2="12" />
<line x1="17" y1="18" x2="3" y2="18" /> <line x1="17" y1="18" x2="3" y2="18" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 332 B

View File

@@ -9,8 +9,7 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<line x1="21" y1="10" x2="7" y2="10" />
<line x1="21" y1="6" x2="3" y2="6" /> <line x1="21" y1="6" x2="3" y2="6" />
<line x1="21" y1="14" x2="3" y2="14" /> <line x1="21" y1="12" x2="9" y2="12" />
<line x1="21" y1="18" x2="7" y2="18" /> <line x1="21" y1="18" x2="7" y2="18" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 332 B

View File

@@ -11,5 +11,5 @@
> >
<circle cx="12" cy="5" r="3" /> <circle cx="12" cy="5" r="3" />
<line x1="12" y1="22" x2="12" y2="8" /> <line x1="12" y1="22" x2="12" y2="8" />
<path d="M5 12H2a10 10 0 0 0 20 0h-3" /> <path d="M5 12H2a10 10 0 0020 0h-3" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 327 B

After

Width:  |  Height:  |  Size: 325 B

13
icons/arrow-big-down.svg Normal file
View File

@@ -0,0 +1,13 @@
<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="M9 3h6v11h4l-7 7-7-7h4z" />
</svg>

After

Width:  |  Height:  |  Size: 247 B

13
icons/arrow-big-left.svg Normal file
View File

@@ -0,0 +1,13 @@
<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="M3 12l7-7v4h11v6H10v4z" />
</svg>

After

Width:  |  Height:  |  Size: 246 B

13
icons/arrow-big-right.svg Normal file
View File

@@ -0,0 +1,13 @@
<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 12l-7-7v4H3v6h11v4z" />
</svg>

After

Width:  |  Height:  |  Size: 247 B

13
icons/arrow-big-up.svg Normal file
View File

@@ -0,0 +1,13 @@
<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="M9 21V10H5l7-7 7 7h-4v11z" />
</svg>

After

Width:  |  Height:  |  Size: 249 B

15
icons/asterisk.svg Normal file
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="M12 6v12" />
<path d="M17.196 9L6.804 15" />
<path d="M6.804 9l10.392 6" />
</svg>

After

Width:  |  Height:  |  Size: 299 B

View File

@@ -10,5 +10,5 @@
stroke-linejoin="round" stroke-linejoin="round"
> >
<circle cx="12" cy="12" r="4" /> <circle cx="12" cy="12" r="4" />
<path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94" /> <path d="M16 8v5a3 3 0 006 0v-1a10 10 0 10-3.92 7.94" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 305 B

After

Width:  |  Height:  |  Size: 302 B

14
icons/axe.svg Normal file
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="M14 12l-8.501 8.501a2.12 2.12 0 01-2.998 0h-.002a2.12 2.12 0 010-2.998L11 9.002" />
<path d="M9 7l4-4 6 6h3l-.13.648a7.648 7.648 0 01-5.081 5.756L15 16v-3z" />
</svg>

After

Width:  |  Height:  |  Size: 381 B

View File

@@ -9,7 +9,7 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19" /> <path d="M7 7H3.78A1.73 1.73 0 002 8.67v6.66A1.73 1.73 0 003.78 17H6m8-10h2.22A1.73 1.73 0 0118 8.67v6.66A1.73 1.73 0 0116.22 17H13" />
<line x1="23" y1="13" x2="23" y2="11" /> <polyline points="11 7 8 12 12 12 9 17" />
<polyline points="11 6 7 12 13 12 9 18" /> <line x1="22" x2="22" y1="11" y2="13" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 397 B

After

Width:  |  Height:  |  Size: 434 B

17
icons/battery-full.svg Normal file
View File

@@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect x="2" y="7" width="16" height="10" rx="2" ry="2" />
<line x1="22" x2="22" y1="11" y2="13" />
<line x1="6" x2="6" y1="10" y2="14" />
<line x1="10" x2="10" y1="10" y2="14" />
<line x1="14" x2="14" y1="10" y2="14" />
</svg>

After

Width:  |  Height:  |  Size: 438 B

15
icons/battery-low.svg Normal file
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"
>
<rect x="2" y="7" width="16" height="10" rx="2" ry="2" />
<line x1="22" x2="22" y1="11" y2="13" />
<line x1="6" x2="6" y1="10" y2="14" />
</svg>

After

Width:  |  Height:  |  Size: 352 B

16
icons/battery-medium.svg Normal file
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"
>
<rect x="2" y="7" width="16" height="10" rx="2" ry="2" />
<line x1="22" x2="22" y1="11" y2="13" />
<line x1="6" x2="6" y1="10" y2="14" />
<line x1="10" x2="10" y1="10" y2="14" />
</svg>

After

Width:  |  Height:  |  Size: 395 B

View File

@@ -9,6 +9,6 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<rect x="1" y="6" width="18" height="12" rx="2" ry="2" /> <rect x="2" y="7" width="16" height="10" rx="2" ry="2" />
<line x1="23" y1="13" x2="23" y2="11" /> <line x1="22" x2="22" y1="11" y2="13" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 311 B

After

Width:  |  Height:  |  Size: 311 B

15
icons/beaker.svg Normal file
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="M4.5 3h15" />
<path d="M6 3v16a2 2 0 002 2h8a2 2 0 002-2V3" />
<path d="M6 14h12" />
</svg>

After

Width:  |  Height:  |  Size: 308 B

15
icons/bell-minus.svg Normal file
View File

@@ -0,0 +1,15 @@
<svg
width="24"
height="24"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M13.73 21a2 2 0 01-3.46 0" />
<path d="M21 5h-6" />
<path d="M18.021 9C18.29 15.193 21 17 21 17H3s3-2 3-9a6 6 0 017-5.916" />
</svg>

After

Width:  |  Height:  |  Size: 349 B

View File

@@ -9,9 +9,9 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M13.73 21a2 2 0 0 1-3.46 0" /> <path d="M13.73 21a2 2 0 01-3.46 0" />
<path d="M18.63 13A17.89 17.89 0 0 1 18 8" /> <path d="M18.63 13A17.888 17.888 0 0118 8" />
<path d="M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14" /> <path d="M6.26 6.26A5.86 5.86 0 006 8c0 7-3 9-3 9h14" />
<path d="M18 8a6 6 0 0 0-9.33-5" /> <path d="M18 8a6 6 0 00-9.33-5" />
<line x1="1" y1="1" x2="23" y2="23" /> <path d="M2 2l20 20" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 438 B

After

Width:  |  Height:  |  Size: 419 B

16
icons/bell-plus.svg Normal file
View File

@@ -0,0 +1,16 @@
<svg
width="24"
height="24"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M18.387 12C19.198 15.799 21 17 21 17H3s3-2 3-9a6 6 0 017-5.916" />
<path d="M13.73 21a2 2 0 01-3.46 0" />
<path d="M18 2v6" />
<path d="M21 5h-6" />
</svg>

After

Width:  |  Height:  |  Size: 374 B

View File

@@ -9,6 +9,6 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" /> <path d="M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9" />
<path d="M13.73 21a2 2 0 0 1-3.46 0" /> <path d="M13.73 21a2 2 0 01-3.46 0" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 309 B

After

Width:  |  Height:  |  Size: 306 B

15
icons/bike.svg Normal file
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"
>
<circle cx="5.5" cy="17.5" r="3.5" />
<circle cx="18.5" cy="17.5" r="3.5" />
<path d="M15 6a1 1 0 100-2 1 1 0 000 2zm-3 11.5V14l-3-3 4-3 2 3h2" />
</svg>

After

Width:  |  Height:  |  Size: 361 B

16
icons/binary.svg Normal file
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="M10 4H6v6h4V4z" />
<path d="M18 14h-4v6h4v-6z" />
<path d="M14 4h2v6m-2 0h4" />
<path d="M6 14h2v6m-2 0h4" />
</svg>

After

Width:  |  Height:  |  Size: 335 B

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="M7 7l10 10-5 5V2l5 5L7 17" />
<line x1="18" y1="12" y2="12" x2="21" />
<line x1="3" y1="12" y2="12" x2="6" />
</svg>

After

Width:  |  Height:  |  Size: 333 B

15
icons/bluetooth-off.svg Normal file
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="M17 17l-5 5V12l-5 5" />
<path d="M2 2l20 20" />
<path d="M14.5 9.5L17 7l-5-5v4.5" />
</svg>

After

Width:  |  Height:  |  Size: 308 B

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="M7 7l10 10-5 5V2l5 5L7 17" />
<path d="M20.83 14.83a4 4 0 000-5.66" />
<path d="M18 12h.01" />
</svg>

After

Width:  |  Height:  |  Size: 318 B

View File

@@ -9,5 +9,5 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<polyline points="6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5" /> <path d="M7 7l10 10-5 5V2l5 5L7 17" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 249 B

View File

@@ -9,6 +9,6 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z" /> <path d="M6 4h8a4 4 0 014 4 4 4 0 01-4 4H6z" />
<path d="M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z" /> <path d="M6 12h9a4 4 0 014 4 4 4 0 01-4 4H6z" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 309 B

View File

@@ -9,6 +9,6 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" /> <path d="M2 3h6a4 4 0 014 4v14a3 3 0 00-3-3H2z" />
<path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" /> <path d="M22 3h-6a4 4 0 00-4 4v14a3 3 0 013-3h7z" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 322 B

After

Width:  |  Height:  |  Size: 316 B

View File

@@ -9,6 +9,6 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20" /> <path d="M4 19.5A2.5 2.5 0 016.5 17H20" />
<path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z" /> <path d="M6.5 2H20v20H6.5A2.5 2.5 0 014 19.5v-15A2.5 2.5 0 016.5 2z" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 333 B

After

Width:  |  Height:  |  Size: 327 B

View File

@@ -9,5 +9,5 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z" /> <path d="M19 21l-7-5-7 5V5a2 2 0 012-2h10a2 2 0 012 2z" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 273 B

After

Width:  |  Height:  |  Size: 269 B

17
icons/bot.svg Normal file
View File

@@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect x="3" y="11" width="18" height="10" rx="2" />
<circle cx="12" cy="5" r="2" />
<path d="M12 7v4" />
<line x1="8" y1="16" x2="8" y2="16" />
<line x1="16" y1="16" x2="16" y2="16" />
</svg>

After

Width:  |  Height:  |  Size: 403 B

24
icons/box-select.svg Normal file
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="M4 2a2 2 0 00-2 2" />
<line x1="8" y1="2" x2="10" y2="2" />
<line x1="14" y1="2" x2="16" y2="2" />
<path d="M4 22a2 2 0 01-2-2" />
<line x1="22" y1="8" x2="22" y2="10" />
<line x1="22" y1="14" x2="22" y2="16" />
<path d="M22 20a2 2 0 01-2 2" />
<line x1="14" y1="22" x2="16" y2="22" />
<line x1="8" y1="22" x2="10" y2="22" />
<path d="M20 2a2 2 0 012 2" />
<line x1="2" y1="14" x2="2" y2="16" />
<line x1="2" y1="8" x2="2" y2="10" />
</svg>

After

Width:  |  Height:  |  Size: 675 B

View File

@@ -9,7 +9,7 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z" /> <path d="M21 16V8a2 2 0 00-1-1.73l-7-4a2 2 0 00-2 0l-7 4A2 2 0 003 8v8a2 2 0 001 1.73l7 4a2 2 0 002 0l7-4A2 2 0 0021 16z" />
<polyline points="3.27 6.96 12 12.01 20.73 6.96" /> <polyline points="3.27 6.96 12 12.01 20.73 6.96" />
<line x1="12" y1="22.08" x2="12" y2="12" /> <line x1="12" y1="22.08" x2="12" y2="12" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 445 B

After

Width:  |  Height:  |  Size: 435 B

View File

@@ -10,5 +10,5 @@
stroke-linejoin="round" stroke-linejoin="round"
> >
<rect x="2" y="7" width="20" height="14" rx="2" ry="2" /> <rect x="2" y="7" width="20" height="14" rx="2" ry="2" />
<path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" /> <path d="M16 21V5a2 2 0 00-2-2h-4a2 2 0 00-2 2v16" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 326 B

After

Width:  |  Height:  |  Size: 324 B

14
icons/brush.svg Normal file
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="M9.06 11.9l8.07-8.06a2.85 2.85 0 114.03 4.03l-8.06 8.08" />
<path d="M7.07 14.94c-1.66 0-3 1.35-3 3.02 0 1.33-2.5 1.52-2 2.02 1.08 1.1 2.49 2.02 4 2.02 2.2 0 4-1.8 4-4.04a3.01 3.01 0 00-3-3.02z" />
</svg>

After

Width:  |  Height:  |  Size: 419 B

23
icons/building.svg Normal file
View File

@@ -0,0 +1,23 @@
<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"
>
<rect x="4" y="2" width="16" height="20" rx="2" ry="2" />
<path d="M9 22v-4h6v4" />
<path d="M8 6h.01" />
<path d="M16 6h.01" />
<path d="M12 6h.01" />
<path d="M12 10h.01" />
<path d="M12 14h.01" />
<path d="M16 10h.01" />
<path d="M16 14h.01" />
<path d="M8 10h.01" />
<path d="M8 14h.01" />
</svg>

After

Width:  |  Height:  |  Size: 524 B

15
icons/bus.svg Normal file
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="M19 17h2l.64-2.54a6 6 0 000-2.92l-1.07-4.27A3 3 0 0017.66 5H4a2 2 0 00-2 2v10h2m10 0h-4" />
<circle cx="6.5" cy="17.5" r="2.5" />
<circle cx="16.5" cy="17.5" r="2.5" />
</svg>

After

Width:  |  Height:  |  Size: 392 B

22
icons/calculator.svg Normal file
View File

@@ -0,0 +1,22 @@
<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"
>
<rect x="4" y="2" width="16" height="20" rx="2" />
<line x1="8" x2="16" y1="6" y2="6" />
<line x1="16" x2="16" y1="14" y2="18" />
<path d="M16 10h.01" />
<path d="M12 10h.01" />
<path d="M8 10h.01" />
<path d="M12 14h.01" />
<path d="M8 14h.01" />
<path d="M12 18h.01" />
<path d="M8 18h.01" />
</svg>

After

Width:  |  Height:  |  Size: 523 B

View File

@@ -9,6 +9,7 @@
stroke-linecap="round" stroke-linecap="round"
stroke-linejoin="round" stroke-linejoin="round"
> >
<line x1="1" y1="1" x2="23" y2="23" /> <line x1="2" y1="2" x2="22" y2="22" />
<path d="M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56" /> <path d="M9.5 4h5L17 7h3a2 2 0 012 2v7.5M7 7H4a2 2 0 00-2 2v9a2 2 0 002 2h16" />
<path d="M14.121 15.121A3 3 0 119.88 10.88" />
</svg> </svg>

Before

Width:  |  Height:  |  Size: 367 B

After

Width:  |  Height:  |  Size: 381 B

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