Compare commits
59 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bd3f24f160 | ||
|
|
8f6062317f | ||
|
|
8f63d828af | ||
|
|
fc2fac9ca4 | ||
|
|
cf13cef475 | ||
|
|
485ae6f531 | ||
|
|
398421367c | ||
|
|
8832051f96 | ||
|
|
ce80469ecc | ||
|
|
12f2b29ac7 | ||
|
|
7b7ee1fe63 | ||
|
|
baee6032c6 | ||
|
|
deae140a6e | ||
|
|
ca90159fce | ||
|
|
03e287f2c1 | ||
|
|
b79aebe284 | ||
|
|
a21600984d | ||
|
|
8b09a5c1ef | ||
|
|
66ac072870 | ||
|
|
c073a2c529 | ||
|
|
cedf113b54 | ||
|
|
571cab88ee | ||
|
|
68c5ed6097 | ||
|
|
85efb8e1b6 | ||
|
|
00c3487dff | ||
|
|
cec73c5217 | ||
|
|
8f1c7eb737 | ||
|
|
0dd10483c9 | ||
|
|
a0c447cece | ||
|
|
7cf928e94c | ||
|
|
8caf6efe72 | ||
|
|
a9fec942ff | ||
|
|
00cbc81331 | ||
|
|
4e3af5c601 | ||
|
|
632dda526a | ||
|
|
c858240c01 | ||
|
|
1fb70e67ee | ||
|
|
b533cf8480 | ||
|
|
51fd3af446 | ||
|
|
f3c3fea228 | ||
|
|
29574a6385 | ||
|
|
5c96b8d848 | ||
|
|
2c38fac9b1 | ||
|
|
0b88415247 | ||
|
|
9b25845258 | ||
|
|
49973ff32b | ||
|
|
714f63d0d3 | ||
|
|
762cf32666 | ||
|
|
216f42cdcb | ||
|
|
b80c2805b2 | ||
|
|
d80a267c81 | ||
|
|
07fa908631 | ||
|
|
1bdf6febac | ||
|
|
78e1057515 | ||
|
|
9d6d0c340d | ||
|
|
77f3f49ce7 | ||
|
|
a55620d6ba | ||
|
|
dad9648e20 | ||
|
|
b3b39afb95 |
21
.eslintrc.js
Normal 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'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"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"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
25
.github/workflows/font.yml
vendored
@@ -2,21 +2,31 @@ name: Build Lucide
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ master ]
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
jobs:
|
jobs:
|
||||||
Build:
|
Build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Clone 'Lucide'
|
- name: Clone 'Lucide'
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Update repos
|
||||||
|
run: sudo apt-get update
|
||||||
|
|
||||||
- name: Install FontForge
|
- name: Install FontForge
|
||||||
run: sudo apt-get install zlib1g-dev fontforge woff2
|
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
|
- name: Clone sfnt2woff-zopfli repo
|
||||||
run: git clone https://github.com/bramstein/sfnt2woff-zopfli.git sfnt2woff-zopfli
|
run: git clone https://github.com/bramstein/sfnt2woff-zopfli.git sfnt2woff-zopfli
|
||||||
|
|
||||||
|
|
||||||
- name: Install and move sfnt2woff-zopfli
|
- name: Install and move sfnt2woff-zopfli
|
||||||
run: |
|
run: |
|
||||||
cd sfnt2woff-zopfli
|
cd sfnt2woff-zopfli
|
||||||
@@ -26,6 +36,7 @@ jobs:
|
|||||||
- name: Clone woff2
|
- name: Clone woff2
|
||||||
run: git clone --recursive https://github.com/google/woff2.git
|
run: git clone --recursive https://github.com/google/woff2.git
|
||||||
|
|
||||||
|
|
||||||
- name: Install woff2
|
- name: Install woff2
|
||||||
run: |
|
run: |
|
||||||
cd woff2
|
cd woff2
|
||||||
@@ -34,12 +45,20 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Font Custom dependency
|
- name: Install Font Custom dependency
|
||||||
run: sudo gem install fontcustom
|
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'
|
- name: Build 'Lucide'
|
||||||
run: echo "Building Featherity font" && fontcustom compile ./icons -h -n Featherity -o build -F
|
run: echo "Building Lucide font" && fontcustom compile ./converted_icons -h -n Lucide -o build -F
|
||||||
|
|
||||||
|
|
||||||
- name: Zip 'Lucide'
|
- name: Zip 'Lucide'
|
||||||
run: zip -r Featherity.zip build
|
run: zip -r Lucide.zip build
|
||||||
|
|
||||||
- name: 'Upload to Artifacts'
|
- name: 'Upload to Artifacts'
|
||||||
uses: actions/upload-artifact@v1.0.0
|
uses: actions/upload-artifact@v1.0.0
|
||||||
|
|||||||
2
.gitignore
vendored
@@ -4,7 +4,7 @@
|
|||||||
node_modules
|
node_modules
|
||||||
dist
|
dist
|
||||||
build
|
build
|
||||||
lib
|
/lib
|
||||||
sandbox
|
sandbox
|
||||||
stash
|
stash
|
||||||
coverage
|
coverage
|
||||||
|
|||||||
@@ -4,3 +4,4 @@ stats
|
|||||||
node_modules
|
node_modules
|
||||||
tests
|
tests
|
||||||
scripts
|
scripts
|
||||||
|
site
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
:+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 Featherity. 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
|
||||||
|
|
||||||
@@ -17,8 +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/lucide-icons/lucide/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.
|
||||||
|
|
||||||
|
## 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).
|
||||||
|
|||||||
34
README.md
@@ -1,3 +1,5 @@
|
|||||||
|
<p align=center><img width="410" src="https://lucide.netlify.app/logo-text.svg" alt="Lucide Logo"></p>
|
||||||
|
|
||||||
# Lucide
|
# Lucide
|
||||||
|
|
||||||

|

|
||||||
@@ -8,13 +10,21 @@
|
|||||||
|
|
||||||
Lucide is a community-run fork of [Feather Icons](https://github.com/feathericons/feather), open for anyone to contribute icons.
|
Lucide is a community-run fork of [Feather Icons](https://github.com/feathericons/feather), open for anyone to contribute icons.
|
||||||
|
|
||||||
Note that we are completely independent from Feather, so **icons submitted here won't get added to Feather Icons or its associated librairies**.
|
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
|
|
||||||
|
* [Installation](#installation)
|
||||||
|
* [Package managers](#package-managers)
|
||||||
|
* [CDN](#cdn)
|
||||||
* [Usage](#usage)
|
* [Usage](#usage)
|
||||||
|
* [Unpkg](#with-unpkg)
|
||||||
|
* [ESModules](#with-esmodules)
|
||||||
|
* [Options](#additional-options)
|
||||||
|
* [Treeshake library](#treeshake-the-library-only-use-the-icons-you-use)
|
||||||
|
* [Custom binding](#custom-element-binding)
|
||||||
|
* [React](#with-react)
|
||||||
* [Figma](#figma)
|
* [Figma](#figma)
|
||||||
* [Contributing](#contributing)
|
* [Contributing](#contributing)
|
||||||
|
* [Community](#community)
|
||||||
* [License](#license)
|
* [License](#license)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
@@ -64,7 +74,7 @@ Here is a complete example with unpkg
|
|||||||
|
|
||||||
### With ESModules
|
### With ESModules
|
||||||
|
|
||||||
To reduce bundle size, lucide is build to be fully threeshakeble.
|
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.
|
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
|
||||||
@@ -75,7 +85,7 @@ The `createIcons` function will search for HTMLElements with the attribute `icon
|
|||||||
```js
|
```js
|
||||||
import { createIcons, icons } from 'lucide';
|
import { createIcons, icons } from 'lucide';
|
||||||
|
|
||||||
// Caustion, this will import all the icons and bundle them.
|
// Caution, this will import all the icons and bundle them.
|
||||||
createIcons({icons});
|
createIcons({icons});
|
||||||
|
|
||||||
// Recommended way, to include only the icons you need.
|
// Recommended way, to include only the icons you need.
|
||||||
@@ -109,7 +119,7 @@ createIcons({
|
|||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Threeshake the library, only use the icons you use
|
#### Treeshake the library, only use the icons you use
|
||||||
|
|
||||||
```js
|
```js
|
||||||
import { createIcons, Menu, ArrowRight, Globe } from 'lucide';
|
import { createIcons, Menu, ArrowRight, Globe } from 'lucide';
|
||||||
@@ -139,6 +149,20 @@ const myApp = document.getElementById('app');
|
|||||||
myApp.appendChild(menuIcon);
|
myApp.appendChild(menuIcon);
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### With React
|
||||||
|
|
||||||
|
You can also use the Lucide library using the react package.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn add lucide-react
|
||||||
|
|
||||||
|
# or
|
||||||
|
|
||||||
|
npm install lucide-react
|
||||||
|
```
|
||||||
|
|
||||||
|
For more details, see the [documentation](https://github.com/lucide-icons/lucide/blob/master/packages/lucide-react/README.md).
|
||||||
|
|
||||||
### Figma
|
### Figma
|
||||||
|
|
||||||
You can use the components from [this Figma file](https://www.figma.com/file/g0UipfQlRfGrntKPxZknM7/Featherity).
|
You can use the components from [this Figma file](https://www.figma.com/file/g0UipfQlRfGrntKPxZknM7/Featherity).
|
||||||
|
|||||||
19
categories.json
Normal 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" ]
|
||||||
|
}
|
||||||
78
docs/ICON_DESIGN_GUIDE.md
Normal 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.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 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 squares) in icons must have border radius of 2 pixels.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### 8. Distinct elements must have 2 pixels of spacing between each other.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 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
@@ -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.
|
||||||
|

|
||||||
|
3. On the “Grid” tab, select `Rectangular Grid` and click “New Grid”.
|
||||||
|

|
||||||
|
4. Set the Grid Units to `px` and set Spacing X and Spacing Y both to 1.
|
||||||
|

|
||||||
|
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.
|
||||||
|

|
||||||
|
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`.
|
||||||
|

|
||||||
|
|
||||||
|
## Saving A File
|
||||||
|
|
||||||
|
1. When ready to save the file, click Save As and select “Optimized SVG” as the file type.
|
||||||
|

|
||||||
|
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.
|
||||||
|

|
||||||
BIN
docs/images/1px-padding.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/images/24px-24px.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/images/2px-border-radius.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
docs/images/2px-element-spacing.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/images/2px-stroke.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
docs/images/centered-strokes.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
docs/images/corner-radius.png
Normal file
|
After Width: | Height: | Size: 2.7 KiB |
BIN
docs/images/grid-1.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
docs/images/grid-2.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
docs/images/optimize-settings.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
docs/images/page-size.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
docs/images/round-caps.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/images/round-joints.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
docs/images/save-as.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
docs/images/strokes.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
14
icons/album.svg
Normal 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 |
@@ -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 |
@@ -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 |
@@ -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 |
@@ -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 |
14
icons/axe.svg
Normal 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 12-8.501 8.501c-0.828 0.828-2.17 0.828-2.998 0-1e-3 -1e-3 -1e-3 -1e-3 -2e-3 -0-0.828-0.828-0.828-2.17 0-2.998l8.501-8.501" />
|
||||||
|
<path d="m9 7 4-4 6 6h3s-0.051 0.254-0.13 0.648c-0.538 2.691-2.477 4.888-5.081 5.756-1.003 0.334-1.789 0.596-1.789 0.596v-3z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 480 B |
15
icons/beaker.svg
Normal 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/bike.svg
Normal 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 2zM12 17.5V14l-3-3 4-3 2 3h2" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 361 B |
1
icons/brush.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg width="24" height="24" fill="none" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><path d="M9.06 11.909l8.07-8.073a2.852 2.852 0 014.034 0 2.855 2.855 0 010 4.036l-8.069 8.073m-6.027-1.009c-1.66 0-3.001 1.352-3.001 3.028 0 1.322-2.501 1.513-2 2.018 1.08 1.09 2.49 2.018 4 2.018 2.212 0 4.002-1.806 4.002-4.036 0-1.676-1.34-3.028-3-3.028z"/></svg>
|
||||||
|
After Width: | Height: | Size: 417 B |
23
icons/building.svg
Normal 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
@@ -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 |
@@ -10,6 +10,6 @@
|
|||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<line x1="2" y1="2" x2="22" y2="22" />
|
<line x1="2" y1="2" x2="22" y2="22" />
|
||||||
<path d="M9.5 4h5L17 7h3a2 2 0 012 2v7.5M7 7H4a2 2 0 00-2 2v9a2 2 0 002 2h16"/>
|
<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"/>
|
<path d="M14.121 15.121A3 3 0 119.88 10.88" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 379 B After Width: | Height: | Size: 381 B |
15
icons/car.svg
Normal 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="M14 16H9m10 0h3v-3.15a1 1 0 00-.84-.99L16 11l-2.7-3.6a1 1 0 00-.8-.4H5.24a2 2 0 00-1.8 1.1l-.8 1.63A6 6 0 002 12.42V16h2" />
|
||||||
|
<circle cx="6.5" cy="16.5" r="2.5" />
|
||||||
|
<circle cx="16.5" cy="16.5" r="2.5" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 425 B |
17
icons/clover.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M16.2 3.8a2.7 2.7 0 00-3.81 0l-.4.38-.4-.4a2.7 2.7 0 00-3.82 0C6.73 4.85 6.67 6.64 8 8l4 4 4-4c1.33-1.36 1.27-3.15.2-4.2z" />
|
||||||
|
<path d="M8 8c-1.36-1.33-3.15-1.27-4.2-.2a2.7 2.7 0 000 3.81l.38.4-.4.4a2.7 2.7 0 000 3.82C4.85 17.27 6.64 17.33 8 16" />
|
||||||
|
<path d="M16 16c1.36 1.33 3.15 1.27 4.2.2a2.7 2.7 0 000-3.81l-.38-.4.4-.4a2.7 2.7 0 000-3.82C19.15 6.73 17.36 6.67 16 8" />
|
||||||
|
<path d="M7.8 20.2a2.7 2.7 0 003.81 0l.4-.38.4.4a2.7 2.7 0 003.82 0c1.06-1.06 1.12-2.85-.21-4.21l-4-4-4 4c-1.33 1.36-1.27 3.15-.2 4.2z" />
|
||||||
|
<path d="M7 17L2 22" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 762 B |
13
icons/crown.svg
Normal 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="M2 4L5 16H19L22 4L16 11L12 4L8 11L2 4ZM5 20H19" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 270 B |
15
icons/file-check-2.svg
Normal 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 22h14a2 2 0 002-2V7.5L14.5 2H6a2 2 0 00-2 2v4" />
|
||||||
|
<path d="M14 2v6h6" />
|
||||||
|
<path d="M3 15l2 2 4-4" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 326 B |
15
icons/file-check.svg
Normal 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="M14.5 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V7.5L14.5 2z" />
|
||||||
|
<polyline points="14 2 14 8 20 8" />
|
||||||
|
<path d="M9 15l2 2 4-4" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 356 B |
16
icons/file-code.svg
Normal 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="M4 22h14a2 2 0 002-2V7.5L14.5 2H6a2 2 0 00-2 2v4" />
|
||||||
|
<path d="M14 2v6h6" />
|
||||||
|
<path d="M9 18l3-3-3-3" />
|
||||||
|
<path d="M5 12l-3 3 3 3" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 356 B |
17
icons/file-digit.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M4 22h14a2 2 0 002-2V7.5L14.5 2H6a2 2 0 00-2 2v4" />
|
||||||
|
<path d="M14 2v6h6" />
|
||||||
|
<path d="M10 12h2v6" />
|
||||||
|
<rect x="2" y="12" width="4" height="6" />
|
||||||
|
<path d="M10 18h4" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 392 B |
15
icons/file-minus-2.svg
Normal 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 22h14a2 2 0 002-2V7.5L14.5 2H6a2 2 0 00-2 2v4" />
|
||||||
|
<path d="M14 2v6h6" />
|
||||||
|
<path d="M3 15h6" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 320 B |
@@ -9,7 +9,7 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" />
|
<path d="M14.5 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V7.5L14.5 2z" />
|
||||||
<polyline points="14 2 14 8 20 8" />
|
<polyline points="14 2 14 8 20 8" />
|
||||||
<line x1="9" y1="15" x2="15" y2="15" />
|
<line x1="9" y1="15" x2="15" y2="15" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 369 B |
16
icons/file-plus-2.svg
Normal 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="M4 22h14a2 2 0 002-2V7.5L14.5 2H6a2 2 0 00-2 2v4" />
|
||||||
|
<path d="M14 2v6h6" />
|
||||||
|
<path d="M3 15h6" />
|
||||||
|
<path d="M6 12v6" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 343 B |
@@ -9,7 +9,7 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" />
|
<path d="M14.5 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V7.5L14.5 2z" />
|
||||||
<polyline points="14 2 14 8 20 8" />
|
<polyline points="14 2 14 8 20 8" />
|
||||||
<line x1="12" y1="18" x2="12" y2="12" />
|
<line x1="12" y1="18" x2="12" y2="12" />
|
||||||
<line x1="9" y1="15" x2="15" y2="15" />
|
<line x1="9" y1="15" x2="15" y2="15" />
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 406 B After Width: | Height: | Size: 412 B |
16
icons/file-search.svg
Normal 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="M4 22h14a2 2 0 002-2V7.5L14.5 2H6a2 2 0 00-2 2v3" />
|
||||||
|
<path d="M14 2v6h6" />
|
||||||
|
<path d="M5 17a3 3 0 100-6 3 3 0 000 6z" />
|
||||||
|
<path d="M9 18l-1.5-1.5" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 373 B |
@@ -9,9 +9,9 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" />
|
<path d="M14.5 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V7.5L14.5 2z" />
|
||||||
<polyline points="14 2 14 8 20 8" />
|
<polyline points="14 2 14 8 20 8" />
|
||||||
<line x1="16" y1="13" x2="8" y2="13" />
|
<line x1="16" y1="13" x2="8" y2="13" />
|
||||||
<line x1="16" y1="17" x2="8" y2="17" />
|
<line x1="16" y1="17" x2="8" y2="17" />
|
||||||
<polyline points="10 9 9 9 8 9" />
|
<line x1="10" y1="9" x2="8" y2="9" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 451 B |
16
icons/file-x-2.svg
Normal 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="M4 22h14a2 2 0 002-2V7.5L14.5 2H6a2 2 0 00-2 2v4" />
|
||||||
|
<path d="M14 2v6h6" />
|
||||||
|
<path d="M3 12.5l5 5" />
|
||||||
|
<path d="M8 12.5l-5 5" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 352 B |
16
icons/file-x.svg
Normal 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="M14.5 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V7.5L14.5 2z" />
|
||||||
|
<polyline points="14 2 14 8 20 8" />
|
||||||
|
<line x1="9.5" y1="12.5" x2="14.5" y2="17.5" />
|
||||||
|
<line x1="14.5" y1="12.5" x2="9.5" y2="17.5" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 427 B |
@@ -9,6 +9,6 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z" />
|
<path d="M14.5 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V7.5L14.5 2z" />
|
||||||
<polyline points="13 2 13 9 20 9" />
|
<polyline points="14 2 14 8 20 8" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 321 B After Width: | Height: | Size: 327 B |
15
icons/files.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M15.5 2H8.6c-.4 0-.8.2-1.1.5-.3.3-.5.7-.5 1.1v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8c.4 0 .8-.2 1.1-.5.3-.3.5-.7.5-1.1V6.5L15.5 2z" />
|
||||||
|
<path d="M3 7.6v12.8c0 .4.2.8.5 1.1.3.3.7.5 1.1.5h9.8" />
|
||||||
|
<path d="M15 2v5h5" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 438 B |
15
icons/flask-conical.svg
Normal 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="M10 2v8L4.72 20.55a1 1 0 00.9 1.45h12.76a1 1 0 00.9-1.45L14 10V2" />
|
||||||
|
<path d="M8.5 2h7" />
|
||||||
|
<path d="M7 16h10" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 336 B |
17
icons/flask-round.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M10 2v7.31" />
|
||||||
|
<path d="M14 9.3V1.99" />
|
||||||
|
<path d="M8.5 2h7" />
|
||||||
|
<path d="M14 9.3a6.5 6.5 0 11-4 0" />
|
||||||
|
<path d="M5.58 16.5h12.85" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 358 B |
@@ -9,6 +9,6 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M12 15l3.5-3.5"/>
|
<path d="M12 15l3.5-3.5" />
|
||||||
<path d="M20.3 18c.4-1 .7-2.2.7-3.4C21 9.8 17 6 12 6s-9 3.8-9 8.6c0 1.2.3 2.4.7 3.4"/>
|
<path d="M20.3 18c.4-1 .7-2.2.7-3.4C21 9.8 17 6 12 6s-9 3.8-9 8.6c0 1.2.3 2.4.7 3.4" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 326 B After Width: | Height: | Size: 328 B |
17
icons/gavel.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M14 13l-7.5 7.5c-.83.83-2.17.83-3 0 0 0 0 0 0 0a2.12 2.12 0 010-3L11 10" />
|
||||||
|
<path d="M16 16l6-6" />
|
||||||
|
<path d="M8 8l6-6" />
|
||||||
|
<path d="M9 7l8 8" />
|
||||||
|
<path d="M21 11l-8-8" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 396 B |
15
icons/hammer.svg
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M15 12l-8.5 8.5c-.83.83-2.17.83-3 0 0 0 0 0 0 0a2.12 2.12 0 010-3L12 9" />
|
||||||
|
<path d="M17.64 15L22 10.64" />
|
||||||
|
<path d="M20.91 11.7l-1.25-1.25c-.6-.6-.93-1.4-.93-2.25v-.86L16.01 4.6a5.56 5.56 0 00-3.94-1.64H9l.92.82A6.18 6.18 0 0112 8.4v1.56l2 2h2.47l2.26 1.91" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 484 B |
16
icons/hand.svg
Normal 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="M18 11V6a2 2 0 00-2-2v0a2 2 0 00-2 2v0" />
|
||||||
|
<path d="M14 10V4a2 2 0 00-2-2v0a2 2 0 00-2 2v2" />
|
||||||
|
<path d="M10 10.5V6a2 2 0 00-2-2v0a2 2 0 00-2 2v8" />
|
||||||
|
<path d="M18 8a2 2 0 114 0v6a8 8 0 01-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 012.83-2.82L7 15" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 480 B |
16
icons/hard-hat.svg
Normal 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="M2 18a1 1 0 001 1h18a1 1 0 001-1v-2a1 1 0 00-1-1H3a1 1 0 00-1 1v2z" />
|
||||||
|
<path d="M10 10V5a1 1 0 011-1h2a1 1 0 011 1v5" />
|
||||||
|
<path d="M4 15v-3a6 6 0 016-6h0" />
|
||||||
|
<path d="M14 6h0a6 6 0 016 6v3" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 417 B |
@@ -9,6 +9,6 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<path d="M9 11l-6 6v3h9l3-3"/>
|
<path d="M9 11l-6 6v3h9l3-3" />
|
||||||
<path d="M22 12l-4.6 4.6a2 2 0 01-2.8 0l-5.2-5.2a2 2 0 010-2.8L14 4"/>
|
<path d="M22 12l-4.6 4.6a2 2 0 01-2.8 0l-5.2-5.2a2 2 0 010-2.8L14 4" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 314 B After Width: | Height: | Size: 316 B |
16
icons/indent.svg
Normal 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"
|
||||||
|
>
|
||||||
|
<polyline points="3 8 7 12 3 16" />
|
||||||
|
<line x1="21" y1="12" x2="11" y2="12" />
|
||||||
|
<line x1="21" y1="6" x2="11" y2="6" />
|
||||||
|
<line x1="21" y1="18" x2="11" y2="18" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 373 B |
14
icons/laptop-2.svg
Normal 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="4" width="18" height="12" rx="2" ry="2" />
|
||||||
|
<line x1="2" y1="20" x2="22" y2="20" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 310 B |
13
icons/laptop.svg
Normal 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="M20 16V7a2 2 0 00-2-2H6a2 2 0 00-2 2v9m16 0H4m16 0l1.28 2.55a1 1 0 01-.9 1.45H3.62a1 1 0 01-.9-1.45L4 16" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 364 B |
17
icons/lasso-select.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M7 22a5 5 0 01-2-4" />
|
||||||
|
<path d="M7 16.93c.96.43 1.96.74 2.99.91" />
|
||||||
|
<path d="M3.34 14A6.8 6.8 0 012 10c0-4.42 4.48-8 10-8s10 3.58 10 8a7.19 7.19 0 01-.33 2" />
|
||||||
|
<path d="M5 18a2 2 0 100-4 2 2 0 000 4z" />
|
||||||
|
<path d="M14.33 22h-.09a.35.35 0 01-.24-.32v-10a.34.34 0 01.33-.34c.08 0 .15.03.21.08l7.34 6a.33.33 0 01-.21.59h-4.49l-2.57 3.85a.35.35 0 01-.28.14v0z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 588 B |
15
icons/lasso.svg
Normal 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 22a5 5 0 01-2-4" />
|
||||||
|
<path d="M3.3 14A6.8 6.8 0 012 10c0-4.4 4.5-8 10-8s10 3.6 10 8-4.5 8-10 8a12 12 0 01-5-1" />
|
||||||
|
<path d="M5 18a2 2 0 100-4 2 2 0 000 4z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 385 B |
18
icons/layout-list.svg
Normal 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"
|
||||||
|
>
|
||||||
|
<rect x="3" y="14" width="7" height="7" />
|
||||||
|
<rect x="3" y="3" width="7" height="7" />
|
||||||
|
<line x1="14" y1="4" x2="21" y2="4" />
|
||||||
|
<line x1="14" y1="9" x2="21" y2="9" />
|
||||||
|
<line x1="14" y1="15" x2="21" y2="15" />
|
||||||
|
<line x1="14" y1="20" x2="21" y2="20" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 465 B |
18
icons/list-checks.svg
Normal 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"
|
||||||
|
>
|
||||||
|
<line x1="10" y1="6" x2="21" y2="6" />
|
||||||
|
<line x1="10" y1="12" x2="21" y2="12" />
|
||||||
|
<line x1="10" y1="18" x2="21" y2="18" />
|
||||||
|
<polyline points="3 6 4 7 6 5" />
|
||||||
|
<polyline points="3 12 4 13 6 11" />
|
||||||
|
<polyline points="3 18 4 19 6 17" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 449 B |
18
icons/list-ordered.svg
Normal 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"
|
||||||
|
>
|
||||||
|
<line x1="10" y1="6" x2="21" y2="6" />
|
||||||
|
<line x1="10" y1="12" x2="21" y2="12" />
|
||||||
|
<line x1="10" y1="18" x2="21" y2="18" />
|
||||||
|
<path d="M4 6H5V10" />
|
||||||
|
<path d="M4 10H6" />
|
||||||
|
<path d="M6 18H4C4 17 6 16 6 15C6 13.9999 5 13.5 4 14" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 443 B |
18
icons/locate-fixed.svg
Normal 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"
|
||||||
|
>
|
||||||
|
<line x1="2" x2="5" y1="12" y2="12" />
|
||||||
|
<line x1="19" x2="22" y1="12" y2="12" />
|
||||||
|
<line x1="12" x2="12" y1="2" y2="5" />
|
||||||
|
<line x1="12" x2="12" y1="19" y2="22" />
|
||||||
|
<circle cx="12" cy="12" r="7" />
|
||||||
|
<circle cx="12" cy="12" r="3" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 446 B |
17
icons/locate.svg
Normal 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"
|
||||||
|
>
|
||||||
|
<line x1="2" x2="5" y1="12" y2="12" />
|
||||||
|
<line x1="19" x2="22" y1="12" y2="12" />
|
||||||
|
<line x1="12" x2="12" y1="2" y2="5" />
|
||||||
|
<line x1="12" x2="12" y1="19" y2="22" />
|
||||||
|
<circle cx="12" cy="12" r="7" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 411 B |
@@ -9,7 +9,7 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<line x1="3" y1="12" x2="21" y2="12" />
|
<line x1="4" y1="12" x2="20" y2="12" />
|
||||||
<line x1="3" y1="6" x2="21" y2="6" />
|
<line x1="4" y1="6" x2="20" y2="6" />
|
||||||
<line x1="3" y1="18" x2="21" y2="18" />
|
<line x1="4" y1="18" x2="20" y2="18" />
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 332 B After Width: | Height: | Size: 332 B |
17
icons/monitor-off.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="M17 17H4a2 2 0 01-2-2V5c0-1.5 1-2 1-2" />
|
||||||
|
<path d="M22 15V5a2 2 0 00-2-2H9" />
|
||||||
|
<path d="M8 21h8" />
|
||||||
|
<path d="M12 17v4" />
|
||||||
|
<path d="M2 2l20 20" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 373 B |
16
icons/outdent.svg
Normal 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"
|
||||||
|
>
|
||||||
|
<polyline points="7 8 3 12 7 16" />
|
||||||
|
<line x1="21" y1="12" x2="11" y2="12" />
|
||||||
|
<line x1="21" y1="6" x2="11" y2="6" />
|
||||||
|
<line x1="21" y1="18" x2="11" y2="18" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 373 B |
17
icons/palette.svg
Normal 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"
|
||||||
|
>
|
||||||
|
<circle cx="13.5" cy="6.5" r="0.5" />
|
||||||
|
<circle cx="17.5" cy="10.5" r="0.5" />
|
||||||
|
<circle cx="8.5" cy="7.5" r="0.5" />
|
||||||
|
<circle cx="6.5" cy="12.5" r="0.5" />
|
||||||
|
<path d="M12 2.0C6.5 2.0 2 6.5 2 12C2 17.5 6.5 22 12 22C12.9258 22 13.6484 21.2539 13.6484 20.3125C13.6484 19.875 13.4687 19.4766 13.2109 19.1875C12.9219 18.8984 12.7734 18.5352 12.7734 18.0625C12.7734 17.1172 13.5 16.3945 14.4414 16.3945H16.4375C19.4883 16.3945 21.9922 13.8906 21.9922 10.8398C21.9648 6.01172 17.4609 2.0 12 2.0Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 705 B |
15
icons/pipette.svg
Normal 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="M2 22l2-2h3l7-7" />
|
||||||
|
<path d="M4 20v-3l7-7" />
|
||||||
|
<path d="M14.29 13.3a1 1 0 001.41 0l.8-.8c.27-.27.27-.72 0-1s-.28-.72 0-1l4.08-4.08a2 2 0 000-2.83l-.17-.17a2 2 0 00-2.83 0L13.5 7.51c-.28.27-.73.27-1 0s-.73-.28-1 0l-.8.79a1 1 0 000 1.41l3.59 3.59z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 472 B |
13
icons/plane.svg
Normal 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="M17.8 19.2L16 11L19.5 7.5C21 6 21.5 4 21 3C20 2.5 18 3 16.5 4.5L13 8L4.8 6.2C4.3 6.1 3.9 6.3 3.7 6.7L3.4 7.2C3.2 7.7 3.3 8.2 3.7 8.5L9 12L7 15H4L3 16L6 18L8 21L9 20V17L12 15L15.5 20.3C15.8 20.7 16.3 20.8 16.8 20.6L17.3 20.4C17.7 20.1 17.9 19.7 17.8 19.2Z" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 478 B |
23
icons/qr-code.svg
Normal 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="2" y="2" width="8" height="8" />
|
||||||
|
<path d="M6 6H6.01" />
|
||||||
|
<rect x="14" y="2" width="8" height="8" />
|
||||||
|
<path d="M18 6H18.01" />
|
||||||
|
<rect x="2" y="14" width="8" height="8" />
|
||||||
|
<path d="M6 18H6.01" />
|
||||||
|
<path d="M14 14H14.01" />
|
||||||
|
<path d="M18 18H18.01" />
|
||||||
|
<path d="M18 22L22 22L22 18" />
|
||||||
|
<path d="M14 18V22" />
|
||||||
|
<path d="M22 14L18 14" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 563 B |
17
icons/ruler.svg
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="24"
|
||||||
|
height="24"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="none"
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-width="2"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-linejoin="round"
|
||||||
|
>
|
||||||
|
<path d="m16.0 2.0 6 6-14 14-6-6 14-14" />
|
||||||
|
<path d="m7.5 10.5 2 2" />
|
||||||
|
<path d="m10.5 7.5 2 2" />
|
||||||
|
<path d="m13.5 4.5 2 2" />
|
||||||
|
<path d="m4.5 13.5 2 2" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 379 B |
15
icons/shovel.svg
Normal 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="M2 22v-5l5-5 5 5-5 5z" />
|
||||||
|
<path d="M9.5 14.5L16 8" />
|
||||||
|
<path d="M17 2l5 5-.5.5a3.53 3.53 0 01-5 0s0 0 0 0a3.53 3.53 0 010-5L17 2" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 355 B |
15
icons/timer.svg
Normal 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"
|
||||||
|
>
|
||||||
|
<line x1="10" x2="14" y1="2" y2="2" />
|
||||||
|
<line x1="12" x2="15" y1="14" y2="11" />
|
||||||
|
<circle cx="12" cy="14" r="8" />
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 327 B |
@@ -9,8 +9,7 @@
|
|||||||
stroke-linecap="round"
|
stroke-linecap="round"
|
||||||
stroke-linejoin="round"
|
stroke-linejoin="round"
|
||||||
>
|
>
|
||||||
<rect x="1" y="3" width="15" height="13" />
|
<path d="M10 17h4V5H2v12h3M20 17h2v-3.34a4 4 0 00-1.17-2.83L19 9h-5v8h1" />
|
||||||
<polygon points="16 8 20 8 23 11 23 16 16 16 16 8" />
|
<circle cx="7.5" cy="17.5" r="2.5" />
|
||||||
<circle cx="5.5" cy="18.5" r="2.5" />
|
<circle cx="17.5" cy="17.5" r="2.5" />
|
||||||
<circle cx="18.5" cy="18.5" r="2.5" />
|
|
||||||
</svg>
|
</svg>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 391 B After Width: | Height: | Size: 367 B |
|
Before Width: | Height: | Size: 376 B After Width: | Height: | Size: 376 B |
5
netlify.toml
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
[build]
|
||||||
|
base = "site/"
|
||||||
|
publish = "build/"
|
||||||
|
command = "yarn deploy"
|
||||||
|
ignore = "git diff --quiet origin/master HEAD ../icons ../site"
|
||||||
35
package.json
@@ -1,27 +1,28 @@
|
|||||||
{
|
{
|
||||||
"name": "lucide",
|
"name": "lucide",
|
||||||
"description": "Lucide is a community-run fork of Feather Icons, open for anyone to contribute icons.",
|
"description": "Lucide is a community-run fork of Feather Icons, open for anyone to contribute icons.",
|
||||||
"version": "0.1.1",
|
"version": "0.12.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"amdName": "lucide",
|
"homepage": "https://lucide.netlify.app",
|
||||||
"homepage": "https://featherity.netlify.app",
|
|
||||||
"url": "https://github.com/owner/project/issues",
|
|
||||||
"repository": "github:lucide-icons/lucide",
|
"repository": "github:lucide-icons/lucide",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/lucide-icons/lucide/issues"
|
||||||
|
},
|
||||||
|
"amdName": "lucide",
|
||||||
"source": "build/lucide.js",
|
"source": "build/lucide.js",
|
||||||
"main": "dist/cjs/lucide.js",
|
"main": "dist/cjs/lucide.js",
|
||||||
"main:umd": "dist/umd/lucide.js",
|
"main:umd": "dist/umd/lucide.js",
|
||||||
"module": "lib/lucide.js",
|
"module": "dist/esm/lucide.js",
|
||||||
"unpkg": "dist/umd/lucide.min.js",
|
"unpkg": "dist/umd/lucide.min.js",
|
||||||
"sideEffects": false,
|
"sideEffects": false,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "babel-watch --watch src",
|
"start": "babel-watch --watch src",
|
||||||
"clean": "rimraf lib && rimraf dist && rimraf build",
|
"clean": "rimraf dist && rimraf build",
|
||||||
"build": "yarn clean && yarn build:move && yarn build:icons && yarn build:es && yarn build:esbrowser && yarn build:bundles",
|
"build": "yarn clean && yarn build:move && yarn build:icons && yarn build:es && yarn build:bundles",
|
||||||
"build:move": "cp -av src build",
|
"build:move": "cp -av src build",
|
||||||
"build:icons": "npx babel-node ./scripts/buildIcons.js --presets @babel/env",
|
"build:icons": "npx babel-node ./scripts/buildIcons.js --presets @babel/env",
|
||||||
"build:es": "babel build -d lib --source-maps --ignore '**/*.test.js','**/__mocks__'",
|
"build:es": "babel build -d dist/esm",
|
||||||
"build:esbrowser": "BROWSER_COMPAT=true yarn build:es -d dist/esm",
|
"build:bundles": "rollup -c rollup.config.js",
|
||||||
"build:bundles": "BROWSER_COMPAT=true rollup -c rollup.config.js",
|
|
||||||
"optimize": "npx babel-node ./scripts/optimizeSvgs.js --presets @babel/env",
|
"optimize": "npx babel-node ./scripts/optimizeSvgs.js --presets @babel/env",
|
||||||
"test": "jest"
|
"test": "jest"
|
||||||
},
|
},
|
||||||
@@ -31,20 +32,23 @@
|
|||||||
"@babel/cli": "^7.10.5",
|
"@babel/cli": "^7.10.5",
|
||||||
"@babel/core": "^7.11.1",
|
"@babel/core": "^7.11.1",
|
||||||
"@babel/node": "^7.10.5",
|
"@babel/node": "^7.10.5",
|
||||||
|
"@babel/plugin-transform-runtime": "^7.11.5",
|
||||||
"@babel/preset-env": "^7.11.0",
|
"@babel/preset-env": "^7.11.0",
|
||||||
"@rollup/plugin-babel": "^5.0.0",
|
"@rollup/plugin-babel": "^5.0.0",
|
||||||
"babel-jest": "^26.3.0",
|
"babel-jest": "^26.3.0",
|
||||||
"babel-plugin-add-import-extension": "^1.4.3",
|
"babel-plugin-add-import-extension": "^1.4.3",
|
||||||
"cheerio": "^1.0.0-rc.2",
|
"cheerio": "^1.0.0-rc.2",
|
||||||
|
"core-js": "3",
|
||||||
"eslint": "^4.19.1",
|
"eslint": "^4.19.1",
|
||||||
"eslint-config-airbnb-base": "^12.1.0",
|
"eslint-config-airbnb-base": "^12.1.0",
|
||||||
"eslint-config-prettier": "^2.9.0",
|
"eslint-config-prettier": "^2.9.0",
|
||||||
"eslint-plugin-import": "^2.5.0",
|
"eslint-plugin-import": "^2.5.0",
|
||||||
"eslint-plugin-prettier": "^2.5.0",
|
"eslint-plugin-prettier": "^2.5.0",
|
||||||
"html-minifier": "^3.5.8",
|
"html-minifier": "^3.5.8",
|
||||||
|
"htmlparser2": "^4.1.0",
|
||||||
"jest": "^26.4.2",
|
"jest": "^26.4.2",
|
||||||
"lodash": "^4.17.19",
|
"minimist": "^1.2.5",
|
||||||
"prettier": "^1.8.2",
|
"prettier": "1.17.1",
|
||||||
"rollup": "^2.7.3",
|
"rollup": "^2.7.3",
|
||||||
"rollup-plugin-commonjs": "^10.1.0",
|
"rollup-plugin-commonjs": "^10.1.0",
|
||||||
"rollup-plugin-license": "^2.0.0",
|
"rollup-plugin-license": "^2.0.0",
|
||||||
@@ -53,12 +57,5 @@
|
|||||||
"rollup-plugin-terser": "^5.2.0",
|
"rollup-plugin-terser": "^5.2.0",
|
||||||
"rollup-plugin-visualizer": "^4.1.0",
|
"rollup-plugin-visualizer": "^4.1.0",
|
||||||
"svgo": "^1.3.2"
|
"svgo": "^1.3.2"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/plugin-transform-runtime": "^7.11.5",
|
|
||||||
"core-js": "3",
|
|
||||||
"htmlparser2": "^4.1.0",
|
|
||||||
"lodash-es": "^4.17.15",
|
|
||||||
"prop-types": "^15.7.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
73
packages/lucide-react/README.md
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
# Lucide React
|
||||||
|
|
||||||
|
Use the lucide icon library in you react app.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```sh
|
||||||
|
yarn add lucide-react
|
||||||
|
|
||||||
|
# or
|
||||||
|
|
||||||
|
npm install lucide-react
|
||||||
|
```
|
||||||
|
|
||||||
|
## How to use
|
||||||
|
|
||||||
|
It's build with ESmodules so it's completely threeshakable.
|
||||||
|
Each icon can be imported as an react component.
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
You can pass additional props to adjust the icon.
|
||||||
|
|
||||||
|
``` js
|
||||||
|
import { Camera } from 'lucide-react';
|
||||||
|
// Returns ReactComponent
|
||||||
|
|
||||||
|
// Usage
|
||||||
|
const App = () => {
|
||||||
|
return <Camera color="red" size={48}/>
|
||||||
|
};
|
||||||
|
|
||||||
|
export default App;
|
||||||
|
```
|
||||||
|
|
||||||
|
### Props
|
||||||
|
|
||||||
|
| name | type | default
|
||||||
|
| ------------ | -------- | --------
|
||||||
|
| `size` | *Number* | 24
|
||||||
|
| `color` | *String* | currentColor
|
||||||
|
| `strokeWidth`| *Number* | 2
|
||||||
|
|
||||||
|
### Custom props
|
||||||
|
|
||||||
|
You can also pass custom props that will be added in the svg as attributes.
|
||||||
|
|
||||||
|
``` js
|
||||||
|
// Usage
|
||||||
|
const App = () => {
|
||||||
|
return <Camera fill="red"/>
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
### One generic icon component
|
||||||
|
|
||||||
|
It is possible to create one generic icon component to load icons.
|
||||||
|
|
||||||
|
> :warning: Example below importing all EsModules, caution using this example, not recommended when you using bundlers.
|
||||||
|
|
||||||
|
#### Icon Component Example
|
||||||
|
|
||||||
|
``` js
|
||||||
|
import * as icons from 'lucide-react';
|
||||||
|
|
||||||
|
const Icon = ({name, color, size}) => {
|
||||||
|
const LucideIcon = icons[name];
|
||||||
|
|
||||||
|
return <LucideIcon color={color} size={size} />
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Icon;
|
||||||
|
```
|
||||||
4
packages/lucide-react/babel.config.js
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
// module.exports = require('../../babel.config');
|
||||||
|
module.exports = {
|
||||||
|
presets: ['react-app'],
|
||||||
|
};
|
||||||
12
packages/lucide-react/jest.config.js
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
module.exports = {
|
||||||
|
verbose: true,
|
||||||
|
roots: ['<rootDir>/src/', '<rootDir>/tests/'],
|
||||||
|
moduleFileExtensions: ['js'],
|
||||||
|
transformIgnorePatterns: [`/node_modules`],
|
||||||
|
moduleNameMapper: {
|
||||||
|
'^@/(.*)$': '<rootDir>/src/$1',
|
||||||
|
},
|
||||||
|
transform: {
|
||||||
|
'^.+\\.js$': 'babel-jest',
|
||||||
|
},
|
||||||
|
};
|
||||||
37
packages/lucide-react/package.json
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"name": "lucide-react",
|
||||||
|
"description": "Lucide React package, Lucide is a community-run fork of Feather Icons, open for anyone to contribute icons.",
|
||||||
|
"version": "0.12.0",
|
||||||
|
"license": "ISC",
|
||||||
|
"amdName": "lucide-react",
|
||||||
|
"source": "build/lucide-react.js",
|
||||||
|
"main": "dist/cjs/lucide-react.js",
|
||||||
|
"main:umd": "dist/umd/lucide-react.js",
|
||||||
|
"module": "dist/esm/lucide-react.js",
|
||||||
|
"unpkg": "dist/umd/lucide-react.min.js",
|
||||||
|
"repository": "github:lucide-icons/lucide",
|
||||||
|
"author": "Eric Fennis",
|
||||||
|
"scripts": {
|
||||||
|
"build": "yarn clean && yarn build:move && yarn build:icons && yarn build:es && yarn build:bundles",
|
||||||
|
"clean": "rm -rf dist && rm -rf build",
|
||||||
|
"build:move": "cp -av src build",
|
||||||
|
"build:icons": "yarn --cwd ../../ build:icons --output=../packages/lucide-react/build --templateSrc=../packages/lucide-react/scripts/exportTemplate --camelizeAttrs --renderUniqueKey",
|
||||||
|
"build:es": "yarn --cwd ../../ babel packages/lucide-react/build -d packages/lucide-react/dist/esm",
|
||||||
|
"build:bundles": "yarn --cwd ../../ rollup -c packages/lucide-react/rollup.config.js",
|
||||||
|
"test": "jest"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"prop-types": "^15.7.2",
|
||||||
|
"react": "^17.0.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"babel-preset-react-app": "^10.0.0",
|
||||||
|
"jest": "^26.6.3",
|
||||||
|
"lucide": "file:../..",
|
||||||
|
"react-test-renderer": "^17.0.1"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"prop-types": "^15.7.2",
|
||||||
|
"react": "^17.0.1"
|
||||||
|
}
|
||||||
|
}
|
||||||
47
packages/lucide-react/rollup.config.js
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
const plugins = require('lucide/rollup.plugins');
|
||||||
|
const pkg = require('./package.json');
|
||||||
|
|
||||||
|
const outputFileName = pkg.name;
|
||||||
|
const rootDir = 'packages/lucide-react'; // It runs from the root
|
||||||
|
const outputDir = `${rootDir}/dist`;
|
||||||
|
const inputs = [`${rootDir}/build/lucide-react.js`];
|
||||||
|
const bundles = [
|
||||||
|
{
|
||||||
|
format: 'umd',
|
||||||
|
inputs,
|
||||||
|
outputDir,
|
||||||
|
minify: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
format: 'umd',
|
||||||
|
inputs,
|
||||||
|
outputDir,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
format: 'cjs',
|
||||||
|
inputs,
|
||||||
|
outputDir,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const configs = bundles
|
||||||
|
.map(({ inputs, outputDir, format, minify }) =>
|
||||||
|
inputs.map(input => ({
|
||||||
|
input,
|
||||||
|
plugins: plugins(pkg, minify),
|
||||||
|
external: ['react', 'prop-types'],
|
||||||
|
output: {
|
||||||
|
name: outputFileName,
|
||||||
|
file: `${outputDir}/${format}/${outputFileName}${minify ? '.min' : ''}.js`,
|
||||||
|
format,
|
||||||
|
sourcemap: true,
|
||||||
|
globals: {
|
||||||
|
react: 'react',
|
||||||
|
'prop-types': 'PropTypes',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})),
|
||||||
|
)
|
||||||
|
.flat();
|
||||||
|
|
||||||
|
export default configs;
|
||||||
7
packages/lucide-react/scripts/exportTemplate.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
export default ({ componentName, node }) => `
|
||||||
|
import createReactComponent from '../createReactComponent';
|
||||||
|
|
||||||
|
const ${componentName} = createReactComponent('${componentName}', ${node});
|
||||||
|
|
||||||
|
export default ${componentName};
|
||||||
|
`;
|
||||||
31
packages/lucide-react/src/createReactComponent.js
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import { forwardRef, createElement } from 'react';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
|
export default (iconName, [tag, attrs, children]) => {
|
||||||
|
const Component = forwardRef(
|
||||||
|
({ color = 'currentColor', size = 24, strokeWidth = 2, ...rest }, ref) =>
|
||||||
|
createElement(
|
||||||
|
tag,
|
||||||
|
{
|
||||||
|
ref,
|
||||||
|
...attrs,
|
||||||
|
width: size,
|
||||||
|
height: size,
|
||||||
|
color,
|
||||||
|
strokeWidth,
|
||||||
|
...rest,
|
||||||
|
},
|
||||||
|
children.map(([childTag, childAttrs]) => createElement(childTag, childAttrs)),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
Component.propTypes = {
|
||||||
|
color: PropTypes.string,
|
||||||
|
size: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
||||||
|
width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
||||||
|
};
|
||||||
|
|
||||||
|
Component.displayName = `${iconName}`;
|
||||||
|
|
||||||
|
return Component;
|
||||||
|
};
|
||||||
5
packages/lucide-react/src/icons/index.js
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
/*
|
||||||
|
Icons exports.
|
||||||
|
|
||||||
|
Will be generated
|
||||||
|
*/
|
||||||
1
packages/lucide-react/src/lucide-react.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from './icons';
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`Using lucide icon components should adjust the size, stroke color and stroke width 1`] = `
|
||||||
|
<svg
|
||||||
|
color="currentColor"
|
||||||
|
fill="none"
|
||||||
|
height={48}
|
||||||
|
stroke="red"
|
||||||
|
strokeLinecap="round"
|
||||||
|
strokeLinejoin="round"
|
||||||
|
strokeWidth={4}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
width={48}
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<rect
|
||||||
|
height="18"
|
||||||
|
rx="2"
|
||||||
|
ry="2"
|
||||||
|
width="18"
|
||||||
|
x="3"
|
||||||
|
y="3"
|
||||||
|
/>
|
||||||
|
<line
|
||||||
|
x1="3"
|
||||||
|
x2="21"
|
||||||
|
y1="9"
|
||||||
|
y2="9"
|
||||||
|
/>
|
||||||
|
<line
|
||||||
|
x1="3"
|
||||||
|
x2="21"
|
||||||
|
y1="15"
|
||||||
|
y2="15"
|
||||||
|
/>
|
||||||
|
<line
|
||||||
|
x1="9"
|
||||||
|
x2="9"
|
||||||
|
y1="3"
|
||||||
|
y2="21"
|
||||||
|
/>
|
||||||
|
<line
|
||||||
|
x1="15"
|
||||||
|
x2="15"
|
||||||
|
y1="3"
|
||||||
|
y2="21"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`Using lucide icon components should render an component 1`] = `
|
||||||
|
<svg
|
||||||
|
color="currentColor"
|
||||||
|
fill="none"
|
||||||
|
height={24}
|
||||||
|
stroke="currentColor"
|
||||||
|
strokeLinecap="round"
|
||||||
|
strokeLinejoin="round"
|
||||||
|
strokeWidth={2}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
width={24}
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
>
|
||||||
|
<rect
|
||||||
|
height="18"
|
||||||
|
rx="2"
|
||||||
|
ry="2"
|
||||||
|
width="18"
|
||||||
|
x="3"
|
||||||
|
y="3"
|
||||||
|
/>
|
||||||
|
<line
|
||||||
|
x1="3"
|
||||||
|
x2="21"
|
||||||
|
y1="9"
|
||||||
|
y2="9"
|
||||||
|
/>
|
||||||
|
<line
|
||||||
|
x1="3"
|
||||||
|
x2="21"
|
||||||
|
y1="15"
|
||||||
|
y2="15"
|
||||||
|
/>
|
||||||
|
<line
|
||||||
|
x1="9"
|
||||||
|
x2="9"
|
||||||
|
y1="3"
|
||||||
|
y2="21"
|
||||||
|
/>
|
||||||
|
<line
|
||||||
|
x1="15"
|
||||||
|
x2="15"
|
||||||
|
y1="3"
|
||||||
|
y2="21"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
`;
|
||||||
27
packages/lucide-react/tests/lucide-react.spec.js
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import renderer from 'react-test-renderer';
|
||||||
|
import { Grid } from '..'
|
||||||
|
|
||||||
|
describe('Using lucide icon components', () => {
|
||||||
|
it('should render an component', () => {
|
||||||
|
const component = renderer.create(
|
||||||
|
<Grid/>,
|
||||||
|
);
|
||||||
|
|
||||||
|
let tree = component.toJSON();
|
||||||
|
expect(tree).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should adjust the size, stroke color and stroke width', () => {
|
||||||
|
const component = renderer.create(
|
||||||
|
<Grid
|
||||||
|
size={48}
|
||||||
|
stroke="red"
|
||||||
|
strokeWidth={4}
|
||||||
|
/>,
|
||||||
|
);
|
||||||
|
|
||||||
|
let tree = component.toJSON();
|
||||||
|
expect(tree).toMatchSnapshot();
|
||||||
|
});
|
||||||
|
})
|
||||||
4643
packages/lucide-react/yarn.lock
Normal file
@@ -1,140 +0,0 @@
|
|||||||
const cheerio = require("cheerio");
|
|
||||||
const fs = require("fs");
|
|
||||||
const path = require("path");
|
|
||||||
const prettier = require("prettier");
|
|
||||||
const upperCamelCase = require("uppercamelcase");
|
|
||||||
|
|
||||||
const directory = path.join(process.cwd(), "../../icons");
|
|
||||||
|
|
||||||
function getAllData() {
|
|
||||||
const fileNames = fs.readdirSync(directory);
|
|
||||||
|
|
||||||
return fileNames.map((fileName) => {
|
|
||||||
const name = fileName.replace(/\.svg$/, "");
|
|
||||||
const fullPath = path.join(directory, `${name}.svg`);
|
|
||||||
const fileContents = fs.readFileSync(fullPath, "utf8");
|
|
||||||
|
|
||||||
const $ = cheerio.load(fileContents);
|
|
||||||
const content = $("svg").html();
|
|
||||||
|
|
||||||
return {
|
|
||||||
name,
|
|
||||||
src: fileContents,
|
|
||||||
content,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const icons = getAllData();
|
|
||||||
|
|
||||||
const dir = path.join(process.cwd(), "src/icons");
|
|
||||||
|
|
||||||
if (!fs.existsSync(dir)) {
|
|
||||||
fs.mkdirSync(dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
const initialTypeDefinitions = `/// <reference types="react" />
|
|
||||||
import { FC, SVGAttributes } from "react";
|
|
||||||
|
|
||||||
interface Props extends SVGAttributes<SVGElement> {
|
|
||||||
color?: string;
|
|
||||||
size?: string | number;
|
|
||||||
width?: string | number;
|
|
||||||
}
|
|
||||||
|
|
||||||
type Icon = FC<Props>;
|
|
||||||
`;
|
|
||||||
|
|
||||||
fs.writeFileSync(path.join(process.cwd(), "src", "index.js"), "", "utf-8");
|
|
||||||
fs.writeFileSync(
|
|
||||||
path.join(process.cwd(), "src", "index.d.ts"),
|
|
||||||
initialTypeDefinitions,
|
|
||||||
"utf-8"
|
|
||||||
);
|
|
||||||
|
|
||||||
const attrsToString = (attrs) => {
|
|
||||||
return Object.keys(attrs)
|
|
||||||
.map((key) => {
|
|
||||||
if (
|
|
||||||
key === "width" ||
|
|
||||||
key === "height" ||
|
|
||||||
key === "stroke" ||
|
|
||||||
key === "strokeWidth"
|
|
||||||
) {
|
|
||||||
return key + "={" + attrs[key] + "}";
|
|
||||||
}
|
|
||||||
if (key === "rest") {
|
|
||||||
return "{...rest}";
|
|
||||||
}
|
|
||||||
return key + '="' + attrs[key] + '"';
|
|
||||||
})
|
|
||||||
.join(" ");
|
|
||||||
};
|
|
||||||
|
|
||||||
icons.forEach((i) => {
|
|
||||||
const location = path.join(process.cwd(), "src/icons", `${i.name}.js`);
|
|
||||||
const ComponentName = i.name === "github" ? "GitHub" : upperCamelCase(i.name);
|
|
||||||
const defaultAttrs = {
|
|
||||||
xmlns: "http://www.w3.org/2000/svg",
|
|
||||||
width: "size",
|
|
||||||
height: "size",
|
|
||||||
viewBox: "0 0 24 24",
|
|
||||||
fill: "none",
|
|
||||||
stroke: "color",
|
|
||||||
strokeWidth: "width",
|
|
||||||
strokeLinecap: "round",
|
|
||||||
strokeLinejoin: "round",
|
|
||||||
rest: "...rest",
|
|
||||||
};
|
|
||||||
|
|
||||||
const element = `
|
|
||||||
import React, { forwardRef } from "react";
|
|
||||||
import PropTypes from "prop-types";
|
|
||||||
|
|
||||||
const ${ComponentName} = forwardRef(({ color = "currentColor", size = 24, width = 2, ...rest }, ref) => {
|
|
||||||
return (
|
|
||||||
<svg ref={ref} ${attrsToString(defaultAttrs)}>
|
|
||||||
${i.content}
|
|
||||||
</svg>
|
|
||||||
)
|
|
||||||
});
|
|
||||||
|
|
||||||
${ComponentName}.propTypes = {
|
|
||||||
color: PropTypes.string,
|
|
||||||
size: PropTypes.oneOfType([
|
|
||||||
PropTypes.string,
|
|
||||||
PropTypes.number
|
|
||||||
]),
|
|
||||||
width: PropTypes.oneOfType([
|
|
||||||
PropTypes.string,
|
|
||||||
PropTypes.number
|
|
||||||
]),
|
|
||||||
}
|
|
||||||
|
|
||||||
${ComponentName}.displayName = "${ComponentName}"
|
|
||||||
|
|
||||||
export default ${ComponentName}
|
|
||||||
`;
|
|
||||||
|
|
||||||
fs.writeFileSync(
|
|
||||||
location,
|
|
||||||
prettier.format(element, { parser: "babel" }),
|
|
||||||
"utf-8"
|
|
||||||
);
|
|
||||||
|
|
||||||
console.log("Successfully built", ComponentName);
|
|
||||||
|
|
||||||
const exportString = `export { default as ${ComponentName} } from "./icons/${i.name}";\n`;
|
|
||||||
fs.appendFileSync(
|
|
||||||
path.join(process.cwd(), "src", "index.js"),
|
|
||||||
exportString,
|
|
||||||
"utf-8"
|
|
||||||
);
|
|
||||||
|
|
||||||
const exportTypeString = `export const ${ComponentName}: Icon;\n`;
|
|
||||||
fs.appendFileSync(
|
|
||||||
path.join(process.cwd(), "src", "index.d.ts"),
|
|
||||||
exportTypeString,
|
|
||||||
"utf-8"
|
|
||||||
);
|
|
||||||
});
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "lucide-react",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "React component for lucide icons",
|
|
||||||
"main": "src/index.js",
|
|
||||||
"typings": "src/index.d.ts",
|
|
||||||
"author": "John Letey",
|
|
||||||
"license": "ISC",
|
|
||||||
"scripts": {
|
|
||||||
"compile": "rm -rf src/icons && node bin/build.js"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"cheerio": "^1.0.0-rc.3",
|
|
||||||
"prettier": "^2.0.5",
|
|
||||||
"uppercamelcase": "^3.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||