Compare commits
178 Commits
Author | SHA1 | Date | |
---|---|---|---|
db2364f996 | |||
3a07390450 | |||
7395097bac | |||
c381800c96 | |||
f81cd40fdc | |||
a7e39d665f | |||
7da2950653 | |||
d657e8aa56 | |||
508003d9d3 | |||
734f3f5114 | |||
a08d064842 | |||
14ee355852 | |||
4d61ba72bf | |||
a718a7e9c3 | |||
8263ca93c4 | |||
b15b4a7535 | |||
9e0dcca265 | |||
23603b8217 | |||
dca4f121b8 | |||
91118a67b6 | |||
3e9da32dca | |||
080262a2bf | |||
466b3f0494 | |||
c05985d348 | |||
ffce177ff4 | |||
c3b87eb62c | |||
5047ddb568 | |||
965c0a3d47 | |||
3c64e93543 | |||
10e4e38ae1 | |||
5a991dddea | |||
8f658193d2 | |||
7b8ff33195 | |||
8263c2231e | |||
74aafa1b4e | |||
f27d8b0f8e | |||
5d42ac8398 | |||
7a17d77409 | |||
6cdea52f27 | |||
eb106953ae | |||
e6e6679596 | |||
cd27b8869e | |||
3e4918be74 | |||
1889a0ab79 | |||
cbee1d1114 | |||
ee26fe5e7a | |||
09d2db7775 | |||
8f62ded210 | |||
51bb931937 | |||
0a130b77e0 | |||
55c84ac47c | |||
c440ee596c | |||
51faf5738e | |||
fff965df89 | |||
9b1fca0ded | |||
8da557c9dd | |||
48735d20a0 | |||
fcd491c8a2 | |||
70b1a47b56 | |||
fcd9e44681 | |||
0bbc3f61dc | |||
ac50475a45 | |||
e105533ac1 | |||
e5d9dffac4 | |||
eced6f7414 | |||
f949102033 | |||
61803f2129 | |||
8aec53b331 | |||
156c0919c9 | |||
179b482c03 | |||
a23698d5be | |||
fb057f1f94 | |||
21bb9fe6d6 | |||
c63f478ff5 | |||
b424fa779d | |||
01698dea84 | |||
ae8e149850 | |||
9f49fd9560 | |||
742f452232 | |||
962870d51c | |||
ba1b12a712 | |||
5045ec3b78 | |||
0d65b5761b | |||
fcf9aec131 | |||
2ee03d261c | |||
dc3c0cc47e | |||
d5ba74d93b | |||
9b157b399d | |||
c978b1cb4e | |||
bd129d9dcf | |||
90133ea33e | |||
1a210808c5 | |||
400f34afc2 | |||
1da9dd43b2 | |||
6e7693e6da | |||
32810336ec | |||
e374f72cb6 | |||
28e74c6e2b | |||
3183ae1ef6 | |||
703b1a7882 | |||
9dffc53b3a | |||
741ac5632c | |||
ad3c8a94d0 | |||
76f29d8565 | |||
23b17b9c55 | |||
1d3283d81d | |||
5031cacbdd | |||
894dcfd6a6 | |||
765985a5e3 | |||
87f272275a | |||
17fb9c99a9 | |||
9167bfc36d | |||
fb0ae8054e | |||
d2369242f1 | |||
d33cb6ecf9 | |||
b22f3b4515 | |||
94531bbe7c | |||
a3527829b8 | |||
e697b3a927 | |||
920bd45776 | |||
cbd3c6184b | |||
93dd65f8c5 | |||
031f305c83 | |||
1180d2d8b4 | |||
3422f0aaf7 | |||
b3655c438f | |||
5a8a8b7d93 | |||
ba33c8312e | |||
b157434645 | |||
6adadf4319 | |||
7ea765f04f | |||
2dbe78fc02 | |||
0dce8a8fb9 | |||
ed0e08a451 | |||
b5331a253d | |||
ada2681ad4 | |||
c7d417e19b | |||
6999eeba10 | |||
9e681f8f89 | |||
1f5bb6e1dc | |||
fbdff6452c | |||
1f87e256b6 | |||
5596f66525 | |||
1d3807c005 | |||
a7fe66e4b4 | |||
c85cb6556b | |||
3ad661ecae | |||
4ae3fa8093 | |||
e3a3cd6727 | |||
73111225b0 | |||
d5e7e14e5b | |||
a29480d769 | |||
84b8428ee9 | |||
f6984951a9 | |||
e70ae51980 | |||
dd9a0b0fe1 | |||
44d6501a8a | |||
483a3f1738 | |||
827d2be993 | |||
58c2ec781f | |||
4ba17e488b | |||
d79db8d1e8 | |||
c908b6ab31 | |||
1014f53d2a | |||
1f7216a6c7 | |||
5df24f02b7 | |||
f527932e2b | |||
8161cd71b5 | |||
1af2cf5a73 | |||
eb8e3d6e30 | |||
c847a2b195 | |||
9d3a802eb2 | |||
10a1b217ef | |||
080d5b4187 | |||
f329a1ef64 | |||
b817fe2605 | |||
f58b75faf0 | |||
ef4f52918b |
13
.babelrc
@ -1,4 +1,13 @@
|
||||
{
|
||||
"presets": ["es2015"],
|
||||
"plugins": ["transform-object-rest-spread"]
|
||||
"presets": [
|
||||
[
|
||||
"env",
|
||||
{
|
||||
"targets": {
|
||||
"browsers": ["last 2 versions"]
|
||||
}
|
||||
}
|
||||
],
|
||||
"stage-2"
|
||||
]
|
||||
}
|
||||
|
@ -1 +1,2 @@
|
||||
dist
|
||||
dist
|
||||
coverage
|
10
.github/ISSUE_TEMPLATE.md
vendored
@ -1,10 +0,0 @@
|
||||
<!--
|
||||
If you'd like to request an icon, please provide the following information:
|
||||
- icon name
|
||||
- at least one use case
|
||||
- screenshots of similar icons
|
||||
|
||||
Please create one issue for each icon request.
|
||||
-->
|
||||
|
||||
|
67
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
---
|
||||
|
||||
<!--
|
||||
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 👍 and/or leave a comment with additional information.
|
||||
-->
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* Version:
|
||||
* Are you running from source/master:
|
||||
* Are you using a released build:
|
||||
* Operating system:
|
||||
* Bits:
|
||||
|
||||
## Step to reproduce
|
||||
|
||||
*(Type here)*
|
||||
|
||||
### Actual behavior
|
||||
|
||||
## Any message or error
|
||||
|
||||
*(Type here)*
|
||||
|
||||
## Resources
|
||||
|
||||
* Links
|
||||
* Screenshots
|
||||
|
||||
|
||||
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
|
||||
...
|
||||
```
|
14
.github/ISSUE_TEMPLATE/icon_request.md
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
---
|
||||
name: Icon request
|
||||
about: Suggest an new icon for this project
|
||||
---
|
||||
|
||||
<!--
|
||||
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 👍.
|
||||
-->
|
||||
|
||||
## Icon Request
|
||||
|
||||
* Icon name:
|
||||
* Use case:
|
||||
* Screenshots of similar icons:
|
22
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
name: CI
|
||||
|
||||
on: push
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Use Node.js 16.x
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 16.x
|
||||
cache: 'npm'
|
||||
- run: npm ci
|
||||
- run: npm run all
|
||||
- name: Release
|
||||
if: github.ref_name == 'master'
|
||||
run: npx semantic-release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
|
||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
1
.gitignore
vendored
@ -3,3 +3,4 @@ node_modules
|
||||
dist
|
||||
sandbox
|
||||
stash
|
||||
coverage
|
10
.travis.yml
@ -8,6 +8,12 @@ node_js: 8
|
||||
before_script:
|
||||
- npm prune
|
||||
script:
|
||||
- npm start
|
||||
- npm run all
|
||||
after_success:
|
||||
- npm run semantic-release
|
||||
- npx codecov
|
||||
- npx babel-node ./bin/sync-algolia.js
|
||||
deploy:
|
||||
provider: script
|
||||
skip_cleanup: true
|
||||
script:
|
||||
- npx semantic-release
|
||||
|
@ -8,10 +8,10 @@ The following is a set of guidelines for contributing to Feather. Feel free to p
|
||||
|
||||
> **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.
|
||||
|
||||
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.
|
||||
Pull requests for new features, bug fixes, etc. are often appreciated.
|
||||
|
||||
**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/courses/how-to-contribute-to-an-open-source-project-on-github)
|
||||
|
||||
Guidelines for pull requests:
|
||||
- __Make your commit messages as descriptive as possible.__ Include as much information as you can. Explain anything that the file diffs themselves won’t make apparent.
|
||||
@ -37,24 +37,36 @@ When creating a new issue make sure to include the following:
|
||||
- A screenshot of any visual bug.
|
||||
|
||||
Here is what a great bug report would look like:
|
||||
|
||||
```
|
||||
Check not rendering properly
|
||||
## Prerequisites
|
||||
|
||||
Version: Release v3.1.0
|
||||
Downloaded from: Import using webpack
|
||||
OS: Mac OSX
|
||||
Running from: Import using webpack
|
||||
Operating system: Mac OSX
|
||||
Bits: 64 bits
|
||||
|
||||
## Step to reproduce
|
||||
|
||||
How 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 result:
|
||||
|
||||
### 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
|
||||
...
|
||||
```
|
||||
|
145
README.md
@ -1,38 +1,35 @@
|
||||
# Feather
|
||||
|
||||
[](https://travis-ci.org/feathericons/feather)
|
||||
[](https://npm-stat.com/charts.html?package=feather-icons&from=2017-06-01)
|
||||
[](https://travis-ci.org/feathericons/feather)
|
||||
[](https://codecov.io/gh/feathericons/feather)
|
||||
[](https://www.npmjs.com/package/feather-icons)
|
||||
[](https://www.npmjs.com/package/feather-icons)
|
||||
[](https://cdnjs.com/libraries/feather-icons)
|
||||
[](https://www.paypal.me/colebemis/5)
|
||||
|
||||
## What is Feather?
|
||||
|
||||
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 readability.
|
||||
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.
|
||||
|
||||
https://feathericons.com
|
||||
|
||||
```sh
|
||||
```shell
|
||||
npm install feather-icons
|
||||
```
|
||||
|
||||
**Sponsored by**
|
||||
|
||||
<a href="https://stdlib.com">
|
||||
<img src="https://stdlib.com/static/images/stdlib-logo-wordmark-128.png" width="128" />
|
||||
</a>
|
||||
|
||||
## Table of Contents
|
||||
|
||||
* [Quick Start](#quick-start)
|
||||
* [Usage](#usage)
|
||||
* [Client-side](#client-side)
|
||||
* [Client-side JavaScript](#client-side-javascript)
|
||||
* [Node](#node)
|
||||
* [SVG Sprite](#svg-sprite)
|
||||
* [Figma](#figma)
|
||||
* [API Reference](#api-reference)
|
||||
* [`feather.icons`](#feathericons)
|
||||
* [`feather.icons[name].toSvg()`](#feathericonsnametosvgattrs)
|
||||
* [`feather.replace()`](#featherreplaceattrs)
|
||||
* [[Deprecated] `feather.toSvg()`](#deprecated-feathertosvgname-attrs)
|
||||
* [Roadmap](#roadmap)
|
||||
* [(DEPRECATED) `feather.toSvg()`](#deprecated-feathertosvgname-attrs)
|
||||
* [Contributing](#contributing)
|
||||
* [Related Projects](#related-projects)
|
||||
* [License](#license)
|
||||
@ -47,7 +44,7 @@ Or copy and paste the following code snippet into a blank `html` file.
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<title></title>
|
||||
<script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script>
|
||||
<script src="https://unpkg.com/feather-icons"></script>
|
||||
<body>
|
||||
|
||||
<!-- example icon -->
|
||||
@ -66,7 +63,7 @@ At its core, Feather is a collection of [SVG](https://svgontheweb.com/#svg) file
|
||||
|
||||
The following are additional ways you can use Feather.
|
||||
|
||||
### Client-side
|
||||
### Client-side JavaScript
|
||||
|
||||
#### 1. Install
|
||||
|
||||
@ -74,7 +71,7 @@ The following are additional ways you can use Feather.
|
||||
|
||||
Install with [npm](https://docs.npmjs.com/getting-started/what-is-npm).
|
||||
|
||||
```
|
||||
```shell
|
||||
npm install feather-icons --save
|
||||
```
|
||||
|
||||
@ -82,25 +79,27 @@ Or just copy [`feather.js`](https://unpkg.com/feather-icons/dist/feather.js) or
|
||||
|
||||
#### 2. Include
|
||||
|
||||
Include `feather.js` or `feather.min.js` with a `<script>` tag. These files are located in the `dist` directory of the npm package.
|
||||
Include `feather.js` or `feather.min.js` with a `<script>` tag:
|
||||
|
||||
```html
|
||||
<script src="path/to/dist/feather.js"></script>
|
||||
```
|
||||
|
||||
Or load the script from a CDN provider.
|
||||
> **Note:** `feather.js` and `feather.min.js` are located in the `dist` directory of the npm package.
|
||||
|
||||
Or load the script from a CDN provider:
|
||||
|
||||
```html
|
||||
<!-- choose one -->
|
||||
<script src="https://unpkg.com/feather-icons"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
||||
<script src="https://unpkg.com/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.
|
||||
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>
|
||||
@ -110,7 +109,7 @@ See the complete list of icons at [feathericons.com](https://feathericons.com).
|
||||
|
||||
#### 4. Replace
|
||||
|
||||
Call the `feather.replace()` method.
|
||||
Call the `feather.replace()` method:
|
||||
|
||||
```html
|
||||
<script>
|
||||
@ -123,15 +122,15 @@ All elements that have a `data-feather` attribute will be replaced with SVG mark
|
||||
### Node
|
||||
#### 1. Install
|
||||
|
||||
Install with [npm](https://docs.npmjs.com/getting-started/what-is-npm).
|
||||
Install with [npm](https://docs.npmjs.com/getting-started/what-is-npm):
|
||||
|
||||
```
|
||||
```shell
|
||||
npm install feather-icons --save
|
||||
```
|
||||
|
||||
#### 2. Require
|
||||
|
||||
```javascript
|
||||
```js
|
||||
const feather = require('feather-icons')
|
||||
```
|
||||
|
||||
@ -154,7 +153,8 @@ feather.icons.x
|
||||
// 'stroke-width': 2,
|
||||
// 'stroke-linecap': 'round',
|
||||
// 'stroke-linejoin': 'round',
|
||||
// }
|
||||
// },
|
||||
// toSvg: [Function],
|
||||
// }
|
||||
|
||||
feather.icons.x.toSvg()
|
||||
@ -166,6 +166,62 @@ feather.icons.x.toSvg({ class: 'foo bar', 'stroke-width': 1, color: 'red' })
|
||||
|
||||
See the [API Reference](#api-reference) for more information about the available properties and methods of the `feather` object.
|
||||
|
||||
### SVG Sprite
|
||||
|
||||
#### 1. Install
|
||||
|
||||
> **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-sprite.svg`](https://unpkg.com/feather-icons/dist/feather-sprite.svg) into your project directory.
|
||||
|
||||
#### 2. Use
|
||||
|
||||
Include an icon on your page with the following markup:
|
||||
|
||||
```html
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<use 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).
|
||||
|
||||
However, this markup can be simplified using a simple CSS class to avoid repetition of SVG attributes between icons:
|
||||
|
||||
```css
|
||||
.feather {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
stroke: currentColor;
|
||||
stroke-width: 2;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
fill: none;
|
||||
}
|
||||
```
|
||||
|
||||
```html
|
||||
<svg class="feather">
|
||||
<use href="path/to/dist/feather-sprite.svg#circle"/>
|
||||
</svg>
|
||||
```
|
||||
### 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
|
||||
|
||||
### `feather.icons`
|
||||
@ -191,13 +247,16 @@ feather.icons.x
|
||||
// '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)
|
||||
|
||||
---
|
||||
@ -212,9 +271,17 @@ Returns an SVG string.
|
||||
| --------- | ------ | ----------- |
|
||||
| `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
|
||||
|
||||
```javascript
|
||||
```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>'
|
||||
|
||||
@ -287,7 +354,7 @@ All attributes on the placeholder element (i.e. `<i>`) will be copied to the `<s
|
||||
|
||||
---
|
||||
|
||||
### [Deprecated] `feather.toSvg(name, [attrs])`
|
||||
### (DEPRECATED) `feather.toSvg(name, [attrs])`
|
||||
|
||||
> **Note:** `feather.toSvg()` is deprecated. Please use `feather.icons[name].toSvg()` instead.
|
||||
|
||||
@ -302,7 +369,7 @@ Returns an SVG string.
|
||||
|
||||
#### Usage
|
||||
|
||||
```javascript
|
||||
```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>'
|
||||
|
||||
@ -315,15 +382,6 @@ feather.toSvg('circle', { class: 'foo bar' })
|
||||
|
||||
[View Source](https://github.com/colebemis/feather/blob/master/src/to-svg.js)
|
||||
|
||||
## Roadmap
|
||||
|
||||
- [ ] Write icon design guidelines
|
||||
- [ ] Track code coverage
|
||||
- [ ] Improve SVG accessibility
|
||||
- [ ] Handle usage of custom icons
|
||||
- [ ] Add usage examples
|
||||
- [ ] Make `<feather-icon>` web component
|
||||
|
||||
## Contributing
|
||||
|
||||
For more info on how to contribute please see the [contribution guidelines](https://github.com/colebemis/feather/blob/master/CONTRIBUTING.md).
|
||||
@ -332,11 +390,20 @@ Caught a mistake or want to contribute to the documentation? [Edit this page on
|
||||
|
||||
## Related Projects
|
||||
|
||||
- [feathericons.dev](http://feathericons.dev) - Feather viewer featuring [30+ brand icons](https://feathericons.dev/?iconset=brands) and [40+ payment services icons](https://feathericons.dev/?iconset=payments)
|
||||
- [angular-feather](https://github.com/michaelbazos/angular-feather) - Feather icons for Angular applications
|
||||
- [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-icon](https://github.com/mage3k/vue-feather-icon) - Feather icons as Vue components
|
||||
- [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
|
||||
- [wp-php-feather](https://github.com/reatlat/wp-php-feather) - Feather icons as a WordPress template tag
|
||||
- [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
|
||||
- [gulp-feather](https://github.com/oToToT/gulp-feather) - Feather icons renderng using gulp
|
||||
- [astro-feather](https://github.com/gabrlyg/astro-feather) - Feather icons as Astro components
|
||||
- [qwik-feather-icons](https://github.com/yeyon/qwik-feather-icons) - Feather icons for Qwik, the Resumable Framework
|
||||
- [figma-feather](https://github.com/kevintoepfer/figma-feather) – Feather icons as a Figma component
|
||||
|
||||
## License
|
||||
|
||||
|
6
bin/.eslintrc.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"rules": {
|
||||
"import/no-extraneous-dependencies": "off",
|
||||
"no-console": "off"
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
// 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>"`;
|
12
bin/__tests__/build-sprite-string.test.js
Normal file
@ -0,0 +1,12 @@
|
||||
/* 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();
|
||||
});
|
@ -6,7 +6,7 @@ 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}`); // eslint-disable-line no-console
|
||||
console.log(`Building ${OUT_FILE}...`);
|
||||
|
||||
const svgFiles = fs
|
||||
.readdirSync(IN_DIR)
|
||||
|
@ -1,12 +1,11 @@
|
||||
/* eslint-disable import/no-extraneous-dependencies */
|
||||
import path from 'path';
|
||||
import cheerio from 'cheerio';
|
||||
import { minify } from 'html-minifier';
|
||||
|
||||
/**
|
||||
* Build an object in the format: `{ <name>: <contents> }`.
|
||||
* @param {string[]} svgFiles - A list of file names.
|
||||
* @param {Function} getSvg - A function that returns the contents of an SVG file.
|
||||
* @param {string[]} svgFiles - A list of filenames.
|
||||
* @param {Function} getSvg - A function that returns the contents of an SVG file given a filename.
|
||||
* @returns {Object}
|
||||
*/
|
||||
function buildIconsObject(svgFiles, getSvg) {
|
||||
@ -26,6 +25,7 @@ function buildIconsObject(svgFiles, getSvg) {
|
||||
/**
|
||||
* Get contents between opening and closing `<svg>` tags.
|
||||
* @param {string} svg
|
||||
* @returns {string}
|
||||
*/
|
||||
function getSvgContents(svg) {
|
||||
const $ = cheerio.load(svg);
|
||||
|
28
bin/build-sprite-string.js
Normal file
@ -0,0 +1,28 @@
|
||||
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;
|
10
bin/build-sprite.js
Normal file
@ -0,0 +1,10 @@
|
||||
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));
|
@ -4,7 +4,7 @@ import icons from '../src/icons';
|
||||
|
||||
const OUT_DIR = path.resolve(__dirname, '../dist/icons');
|
||||
|
||||
console.log(`Building SVGs in ${OUT_DIR}`); // eslint-disable-line no-console
|
||||
console.log(`Building SVGs in ${OUT_DIR}...`);
|
||||
|
||||
Object.keys(icons).forEach(name => {
|
||||
const svg = icons[name].toSvg();
|
||||
|
25
bin/build.sh
@ -1,14 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
./node_modules/.bin/babel-node bin/process-svgs.js
|
||||
# Process SVG files
|
||||
npx babel-node bin/process-svgs.js
|
||||
|
||||
./node_modules/.bin/rimraf dist
|
||||
# Create dist directory
|
||||
npx rimraf dist
|
||||
mkdir dist
|
||||
./node_modules/.bin/babel-node bin/build-icons-json.js
|
||||
|
||||
./node_modules/.bin/rimraf dist/icons
|
||||
# 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
|
||||
./node_modules/.bin/babel-node bin/build-svgs.js
|
||||
|
||||
./node_modules/.bin/webpack --output-filename feather.js
|
||||
./node_modules/.bin/webpack --output-filename feather.min.js -p
|
||||
# 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
|
||||
|
@ -1,4 +1,3 @@
|
||||
/* eslint-disable import/no-extraneous-dependencies */
|
||||
import Svgo from 'svgo';
|
||||
import cheerio from 'cheerio';
|
||||
import { format } from 'prettier';
|
||||
@ -8,7 +7,7 @@ import DEFAULT_ATTRS from '../src/default-attrs.json';
|
||||
/**
|
||||
* Process SVG string.
|
||||
* @param {string} svg - An SVG string.
|
||||
* @param {Promise<string>}
|
||||
* @returns {Promise<string>}
|
||||
*/
|
||||
function processSvg(svg) {
|
||||
return (
|
||||
|
@ -5,7 +5,7 @@ import processSvg from './process-svg';
|
||||
|
||||
const IN_DIR = path.resolve(__dirname, '../icons');
|
||||
|
||||
console.log(`Processing SVGs in ${IN_DIR}`); // eslint-disable-line no-console
|
||||
console.log(`Processing SVGs in ${IN_DIR}...`);
|
||||
|
||||
fs
|
||||
.readdirSync(IN_DIR)
|
||||
|
73
bin/sync-algolia.js
Normal file
@ -0,0 +1,73 @@
|
||||
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);
|
||||
});
|
||||
});
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
module.exports = {
|
||||
extends: ['@commitlint/config-angular'],
|
||||
extends: ['@commitlint/config-conventional'],
|
||||
rules: {
|
||||
'subject-case': 'sentence-case',
|
||||
'scope-case': [0],
|
||||
'subject-case': [2, 'always', 'sentence-case'],
|
||||
'header-max-length': [0],
|
||||
},
|
||||
};
|
||||
|
@ -3,20 +3,13 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Feather</title>
|
||||
<!--
|
||||
To build feather.min.js run
|
||||
$ npm run build
|
||||
in the root directory, or use the already built package available on unpkg.com.
|
||||
-->
|
||||
<script src="../dist/feather.min.js"></script>
|
||||
<!-- <script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script> -->
|
||||
</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>
|
||||
|
@ -11,5 +11,5 @@
|
||||
>
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
<line x1="12" y1="8" x2="12" y2="12" />
|
||||
<line x1="12" y1="16" x2="12" y2="16" />
|
||||
<line x1="12" y1="16" x2="12.01" y2="16" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 332 B |
@ -11,5 +11,5 @@
|
||||
>
|
||||
<polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2" />
|
||||
<line x1="12" y1="8" x2="12" y2="12" />
|
||||
<line x1="12" y1="16" x2="12" y2="16" />
|
||||
<line x1="12" y1="16" x2="12.01" y2="16" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 387 B After Width: | Height: | Size: 390 B |
@ -11,5 +11,5 @@
|
||||
>
|
||||
<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" />
|
||||
<line x1="12" y1="9" x2="12" y2="13" />
|
||||
<line x1="12" y1="17" x2="12" y2="17" />
|
||||
<line x1="12" y1="17" x2="12.01" y2="17" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 397 B After Width: | Height: | Size: 400 B |
15
icons/archive.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"
|
||||
>
|
||||
<polyline points="21 8 21 21 3 21 3 8" />
|
||||
<rect x="1" y="3" width="22" height="5" />
|
||||
<line x1="10" y1="12" x2="14" y2="12" />
|
||||
</svg>
|
After Width: | Height: | Size: 340 B |
@ -9,6 +9,9 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M8.56 2.9A7 7 0 0 1 19 9v4m-2 4H2a3 3 0 0 0 3-3V9a7 7 0 0 1 .78-3.22M13.73 21a2 2 0 0 1-3.46 0" />
|
||||
<path d="M13.73 21a2 2 0 0 1-3.46 0" />
|
||||
<path d="M18.63 13A17.89 17.89 0 0 1 18 8" />
|
||||
<path d="M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14" />
|
||||
<path d="M18 8a6 6 0 0 0-9.33-5" />
|
||||
<line x1="1" y1="1" x2="23" y2="23" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 438 B |
@ -9,5 +9,6 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M22 17H2a3 3 0 0 0 3-3V9a7 7 0 0 1 14 0v5a3 3 0 0 0 3 3zm-8.27 4a2 2 0 0 1-3.46 0" />
|
||||
<path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9" />
|
||||
<path d="M13.73 21a2 2 0 0 1-3.46 0" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 309 B |
@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12.89 1.45l8 4A2 2 0 0 1 22 7.24v9.53a2 2 0 0 1-1.11 1.79l-8 4a2 2 0 0 1-1.79 0l-8-4a2 2 0 0 1-1.1-1.8V7.24a2 2 0 0 1 1.11-1.79l8-4a2 2 0 0 1 1.78 0z" />
|
||||
<polyline points="2.32 6.16 12 11 21.68 6.16" />
|
||||
<line x1="12" y1="22.76" x2="12" y2="11" />
|
||||
<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" />
|
||||
<polyline points="3.27 6.96 12 12.01 20.73 6.96" />
|
||||
<line x1="12" y1="22.08" x2="12" y2="12" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 445 B |
@ -10,5 +10,5 @@
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6" />
|
||||
<line x1="2" y1="20" x2="2" y2="20" />
|
||||
<line x1="2" y1="20" x2="2.01" y2="20" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 372 B After Width: | Height: | Size: 375 B |
@ -9,6 +9,6 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M22 11.07V12a10 10 0 1 1-5.93-9.14" />
|
||||
<polyline points="23 3 12 14 9 11" />
|
||||
<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14" />
|
||||
<polyline points="22 4 12 14.01 9 11.01" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 298 B After Width: | Height: | Size: 304 B |
@ -9,6 +9,6 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<polyline points="9 11 12 14 23 3" />
|
||||
<polyline points="9 11 12 14 22 4" />
|
||||
<path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 321 B After Width: | Height: | Size: 321 B |
@ -10,10 +10,10 @@
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25" />
|
||||
<line x1="8" y1="16" x2="8" y2="16" />
|
||||
<line x1="8" y1="20" x2="8" y2="20" />
|
||||
<line x1="12" y1="18" x2="12" y2="18" />
|
||||
<line x1="12" y1="22" x2="12" y2="22" />
|
||||
<line x1="16" y1="16" x2="16" y2="16" />
|
||||
<line x1="16" y1="20" x2="16" y2="20" />
|
||||
<line x1="8" y1="16" x2="8.01" y2="16" />
|
||||
<line x1="8" y1="20" x2="8.01" y2="20" />
|
||||
<line x1="12" y1="18" x2="12.01" y2="18" />
|
||||
<line x1="12" y1="22" x2="12.01" y2="22" />
|
||||
<line x1="16" y1="16" x2="16.01" y2="16" />
|
||||
<line x1="16" y1="20" x2="16.01" y2="20" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 526 B After Width: | Height: | Size: 544 B |
18
icons/codesandbox.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"
|
||||
>
|
||||
<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" />
|
||||
<polyline points="7.5 4.21 12 6.81 16.5 4.21" />
|
||||
<polyline points="7.5 19.79 7.5 14.6 3 12" />
|
||||
<polyline points="21 12 16.5 14.6 16.5 19.79" />
|
||||
<polyline points="3.27 6.96 12 12.01 20.73 6.96" />
|
||||
<line x1="12" y1="22.08" x2="12" y2="12" />
|
||||
</svg>
|
After Width: | Height: | Size: 595 B |
17
icons/coffee.svg
Normal file
@ -0,0 +1,17 @@
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
height="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M18 8h1a4 4 0 0 1 0 8h-1" />
|
||||
<path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z" />
|
||||
<line x1="6" y1="1" x2="6" y2="4" />
|
||||
<line x1="10" y1="1" x2="10" y2="4" />
|
||||
<line x1="14" y1="1" x2="14" y2="4" />
|
||||
</svg>
|
After Width: | Height: | Size: 427 B |
13
icons/columns.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18" />
|
||||
</svg>
|
After Width: | Height: | Size: 313 B |
15
icons/database.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"
|
||||
>
|
||||
<ellipse cx="12" cy="5" rx="9" ry="3" />
|
||||
<path d="M21 12c0 1.66-4 3-9 3s-9-1.34-9-3" />
|
||||
<path d="M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5" />
|
||||
</svg>
|
After Width: | Height: | Size: 351 B |
16
icons/divide-circle.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"
|
||||
>
|
||||
<line x1="8" y1="12" x2="16" y2="12" />
|
||||
<line x1="12" y1="16" x2="12" y2="16" />
|
||||
<line x1="12" y1="8" x2="12" y2="8" />
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
</svg>
|
After Width: | Height: | Size: 370 B |
16
icons/divide-square.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"
|
||||
>
|
||||
<rect x="3" y="3" width="18" height="18" rx="2" ry="2" />
|
||||
<line x1="8" y1="12" x2="16" y2="12" />
|
||||
<line x1="12" y1="16" x2="12" y2="16" />
|
||||
<line x1="12" y1="8" x2="12" y2="8" />
|
||||
</svg>
|
After Width: | Height: | Size: 394 B |
15
icons/divide.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="12" cy="6" r="2" />
|
||||
<line x1="5" y1="12" x2="19" y2="12" />
|
||||
<circle cx="12" cy="18" r="2" />
|
||||
</svg>
|
After Width: | Height: | Size: 319 B |
14
icons/dollar-sign.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"
|
||||
>
|
||||
<line x1="12" y1="1" x2="12" y2="23" />
|
||||
<path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6" />
|
||||
</svg>
|
After Width: | Height: | Size: 315 B |
14
icons/dribbble.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"
|
||||
>
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
<path d="M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32" />
|
||||
</svg>
|
After Width: | Height: | Size: 406 B |
@ -1,13 +1,13 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<polygon points="16 3 21 8 8 21 3 21 3 16 16 3" />
|
||||
<path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 261 B After Width: | Height: | Size: 279 B |
@ -1,14 +1,14 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<polygon points="14 2 18 6 7 17 3 17 3 13 14 2" />
|
||||
<line x1="3" y1="22" x2="21" y2="22" />
|
||||
<path d="M12 20h9" />
|
||||
<path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 303 B |
@ -1,14 +1,14 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M20 14.66V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.34" />
|
||||
<polygon points="18 2 22 6 12 16 8 16 8 12 18 2" />
|
||||
<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" />
|
||||
<path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 341 B After Width: | Height: | Size: 353 B |
@ -11,5 +11,5 @@
|
||||
>
|
||||
<path d="M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z" />
|
||||
<line x1="16" y1="8" x2="2" y2="22" />
|
||||
<line x1="17" y1="15" x2="9" y2="15" />
|
||||
<line x1="17.5" y1="15" x2="9" y2="15" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 356 B |
17
icons/figma.svg
Normal file
@ -0,0 +1,17 @@
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z" />
|
||||
<path d="M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z" />
|
||||
<path d="M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z" />
|
||||
<path d="M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z" />
|
||||
<path d="M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z" />
|
||||
</svg>
|
After Width: | Height: | Size: 534 B |
13
icons/framer.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7" />
|
||||
</svg>
|
After Width: | Height: | Size: 266 B |
16
icons/frown.svg
Normal file
@ -0,0 +1,16 @@
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
height="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
<path d="M16 16s-1.5-2-4-2-4 2-4 2" />
|
||||
<line x1="9" y1="9" x2="9.01" y2="9" />
|
||||
<line x1="15" y1="9" x2="15.01" y2="9" />
|
||||
</svg>
|
After Width: | Height: | Size: 371 B |
17
icons/gift.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"
|
||||
>
|
||||
<polyline points="20 12 20 22 4 22 4 12" />
|
||||
<rect x="2" y="7" width="20" height="5" />
|
||||
<line x1="12" y1="22" x2="12" y2="7" />
|
||||
<path d="M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z" />
|
||||
<path d="M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z" />
|
||||
</svg>
|
After Width: | Height: | Size: 459 B |
16
icons/git-branch.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"
|
||||
>
|
||||
<line x1="6" y1="3" x2="6" y2="15" />
|
||||
<circle cx="18" cy="6" r="3" />
|
||||
<circle cx="6" cy="18" r="3" />
|
||||
<path d="M18 9a9 9 0 0 1-9 9" />
|
||||
</svg>
|
After Width: | Height: | Size: 351 B |
15
icons/git-commit.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="12" cy="12" r="4" />
|
||||
<line x1="1.05" y1="12" x2="7" y2="12" />
|
||||
<line x1="17.01" y1="12" x2="22.96" y2="12" />
|
||||
</svg>
|
After Width: | Height: | Size: 336 B |
15
icons/git-merge.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="18" cy="18" r="3" />
|
||||
<circle cx="6" cy="6" r="3" />
|
||||
<path d="M6 21V9a9 9 0 0 0 9 9" />
|
||||
</svg>
|
After Width: | Height: | Size: 313 B |
16
icons/git-pull-request.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"
|
||||
>
|
||||
<circle cx="18" cy="18" r="3" />
|
||||
<circle cx="6" cy="6" r="3" />
|
||||
<path d="M13 6h3a2 2 0 0 1 2 2v7" />
|
||||
<line x1="6" y1="9" x2="6" y2="21" />
|
||||
</svg>
|
After Width: | Height: | Size: 355 B |
@ -11,6 +11,6 @@
|
||||
>
|
||||
<line x1="22" y1="12" x2="2" y2="12" />
|
||||
<path d="M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" />
|
||||
<line x1="6" y1="16" x2="6" y2="16" />
|
||||
<line x1="10" y1="16" x2="10" y2="16" />
|
||||
<line x1="6" y1="16" x2="6.01" y2="16" />
|
||||
<line x1="10" y1="16" x2="10.01" y2="16" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 456 B After Width: | Height: | Size: 462 B |
@ -9,7 +9,7 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" />
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
<line x1="12" y1="17" x2="12" y2="17" />
|
||||
<path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" />
|
||||
<line x1="12" y1="17" x2="12.01" y2="17" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 339 B After Width: | Height: | Size: 342 B |
13
icons/hexagon.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="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" />
|
||||
</svg>
|
After Width: | Height: | Size: 345 B |
@ -11,5 +11,5 @@
|
||||
>
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
<line x1="12" y1="16" x2="12" y2="12" />
|
||||
<line x1="12" y1="8" x2="12" y2="8" />
|
||||
<line x1="12" y1="8" x2="12.01" y2="8" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 331 B |
@ -11,5 +11,5 @@
|
||||
>
|
||||
<rect x="2" y="2" width="20" height="20" rx="5" ry="5" />
|
||||
<path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z" />
|
||||
<line x1="17.5" y1="6.5" x2="17.5" y2="6.5" />
|
||||
<line x1="17.5" y1="6.5" x2="17.51" y2="6.5" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 380 B After Width: | Height: | Size: 381 B |
13
icons/key.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4" />
|
||||
</svg>
|
After Width: | Height: | Size: 343 B |
15
icons/linkedin.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="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z" />
|
||||
<rect x="2" y="9" width="4" height="12" />
|
||||
<circle cx="4" cy="4" r="2" />
|
||||
</svg>
|
After Width: | Height: | Size: 380 B |
@ -12,7 +12,7 @@
|
||||
<line x1="8" y1="6" x2="21" y2="6" />
|
||||
<line x1="8" y1="12" x2="21" y2="12" />
|
||||
<line x1="8" y1="18" x2="21" y2="18" />
|
||||
<line x1="3" y1="6" x2="3" y2="6" />
|
||||
<line x1="3" y1="12" x2="3" y2="12" />
|
||||
<line x1="3" y1="18" x2="3" y2="18" />
|
||||
<line x1="3" y1="6" x2="3.01" y2="6" />
|
||||
<line x1="3" y1="12" x2="3.01" y2="12" />
|
||||
<line x1="3" y1="18" x2="3.01" y2="18" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 462 B |
16
icons/meh.svg
Normal file
@ -0,0 +1,16 @@
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
height="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
<line x1="8" y1="15" x2="16" y2="15" />
|
||||
<line x1="9" y1="9" x2="9.01" y2="9" />
|
||||
<line x1="15" y1="9" x2="15.01" y2="9" />
|
||||
</svg>
|
After Width: | Height: | Size: 372 B |
14
icons/mouse-pointer.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="M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z" />
|
||||
<path d="M13 13l6 6" />
|
||||
</svg>
|
After Width: | Height: | Size: 290 B |
@ -1,14 +1,15 @@
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M9 17H5a2 2 0 0 0-2 2 2 2 0 0 0 2 2h2a2 2 0 0 0 2-2zm12-2h-4a2 2 0 0 0-2 2 2 2 0 0 0 2 2h2a2 2 0 0 0 2-2z" />
|
||||
<polyline points="9 17 9 5 21 3 21 15" />
|
||||
<path d="M9 18V5l12-2v13" />
|
||||
<circle cx="6" cy="18" r="3" />
|
||||
<circle cx="18" cy="16" r="3" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 308 B |
@ -9,8 +9,8 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M12.89 1.45l8 4A2 2 0 0 1 22 7.24v9.53a2 2 0 0 1-1.11 1.79l-8 4a2 2 0 0 1-1.79 0l-8-4a2 2 0 0 1-1.1-1.8V7.24a2 2 0 0 1 1.11-1.79l8-4a2 2 0 0 1 1.78 0z" />
|
||||
<polyline points="2.32 6.16 12 11 21.68 6.16" />
|
||||
<line x1="12" y1="22.76" x2="12" y2="11" />
|
||||
<line x1="7" y1="3.5" x2="17" y2="8.5" />
|
||||
<line x1="16.5" y1="9.4" x2="7.5" y2="4.21" />
|
||||
<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" />
|
||||
<polyline points="3.27 6.96 12 12.01 20.73 6.96" />
|
||||
<line x1="12" y1="22.08" x2="12" y2="12" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 515 B After Width: | Height: | Size: 494 B |
16
icons/pen-tool.svg
Normal 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="M12 19l7-7 3 3-7 7-3-3z" />
|
||||
<path d="M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z" />
|
||||
<path d="M2 2l7.586 7.586" />
|
||||
<circle cx="11" cy="11" r="2" />
|
||||
</svg>
|
After Width: | Height: | Size: 369 B |
14
icons/send.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"
|
||||
>
|
||||
<line x1="22" y1="2" x2="11" y2="13" />
|
||||
<polygon points="22 2 15 22 11 13 2 9 22 2" />
|
||||
</svg>
|
After Width: | Height: | Size: 299 B |
@ -11,6 +11,6 @@
|
||||
>
|
||||
<rect x="2" y="2" width="20" height="8" rx="2" ry="2" />
|
||||
<rect x="2" y="14" width="20" height="8" rx="2" ry="2" />
|
||||
<line x1="6" y1="6" x2="6" y2="6" />
|
||||
<line x1="6" y1="18" x2="6" y2="18" />
|
||||
<line x1="6" y1="6" x2="6.01" y2="6" />
|
||||
<line x1="6" y1="18" x2="6.01" y2="18" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 407 B After Width: | Height: | Size: 413 B |
15
icons/shopping-bag.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="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z" />
|
||||
<line x1="3" y1="6" x2="21" y2="6" />
|
||||
<path d="M16 10a4 4 0 0 1-8 0" />
|
||||
</svg>
|
After Width: | Height: | Size: 350 B |
@ -9,9 +9,12 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M22.08 9C19.81 1.41 16.54-.35 9 1.92S-.35 7.46 1.92 15 7.46 24.35 15 22.08 24.35 16.54 22.08 9z" />
|
||||
<line x1="12.57" y1="5.99" x2="16.15" y2="16.39" />
|
||||
<line x1="7.85" y1="7.61" x2="11.43" y2="18.01" />
|
||||
<line x1="16.39" y1="7.85" x2="5.99" y2="11.43" />
|
||||
<line x1="18.01" y1="12.57" x2="7.61" y2="16.15" />
|
||||
<path d="M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z" />
|
||||
<path d="M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z" />
|
||||
<path d="M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z" />
|
||||
<path d="M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z" />
|
||||
<path d="M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z" />
|
||||
<path d="M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z" />
|
||||
<path d="M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z" />
|
||||
<path d="M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 533 B After Width: | Height: | Size: 974 B |
@ -10,5 +10,5 @@
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<rect x="5" y="2" width="14" height="20" rx="2" ry="2" />
|
||||
<line x1="12" y1="18" x2="12" y2="18" />
|
||||
<line x1="12" y1="18" x2="12.01" y2="18" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 311 B After Width: | Height: | Size: 314 B |
16
icons/smile.svg
Normal file
@ -0,0 +1,16 @@
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
height="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<circle cx="12" cy="12" r="10" />
|
||||
<path d="M8 14s1.5 2 4 2 4-2 4-2" />
|
||||
<line x1="9" y1="9" x2="9.01" y2="9" />
|
||||
<line x1="15" y1="9" x2="15.01" y2="9" />
|
||||
</svg>
|
After Width: | Height: | Size: 369 B |
@ -11,5 +11,5 @@
|
||||
>
|
||||
<rect x="4" y="2" width="16" height="20" rx="2" ry="2" />
|
||||
<circle cx="12" cy="14" r="4" />
|
||||
<line x1="12" y1="6" x2="12" y2="6" />
|
||||
<line x1="12" y1="6" x2="12.01" y2="6" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 347 B |
13
icons/table.svg
Normal file
@ -0,0 +1,13 @@
|
||||
<svg
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18" />
|
||||
</svg>
|
After Width: | Height: | Size: 329 B |
@ -9,14 +9,6 @@
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<rect
|
||||
x="4"
|
||||
y="2"
|
||||
width="16"
|
||||
height="20"
|
||||
rx="2"
|
||||
ry="2"
|
||||
transform="rotate(180 12 12)"
|
||||
/>
|
||||
<line x1="12" y1="18" x2="12" y2="18" />
|
||||
<rect x="4" y="2" width="16" height="20" rx="2" ry="2" />
|
||||
<line x1="12" y1="18" x2="12.01" y2="18" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 371 B After Width: | Height: | Size: 314 B |
@ -10,5 +10,5 @@
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z" />
|
||||
<line x1="7" y1="7" x2="7" y2="7" />
|
||||
<line x1="7" y1="7" x2="7.01" y2="7" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 341 B After Width: | Height: | Size: 344 B |
13
icons/tool.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="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" />
|
||||
</svg>
|
After Width: | Height: | Size: 376 B |
15
icons/trello.svg
Normal file
@ -0,0 +1,15 @@
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
width="24"
|
||||
height="24"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
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" />
|
||||
<rect x="7" y="7" width="3" height="9" />
|
||||
<rect x="14" y="7" width="3" height="5" />
|
||||
</svg>
|
After Width: | Height: | Size: 357 B |
16
icons/truck.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"
|
||||
>
|
||||
<rect x="1" y="3" width="15" height="13" />
|
||||
<polygon points="16 8 20 8 23 11 23 16 16 16 16 8" />
|
||||
<circle cx="5.5" cy="18.5" r="2.5" />
|
||||
<circle cx="18.5" cy="18.5" r="2.5" />
|
||||
</svg>
|
After Width: | Height: | Size: 391 B |
13
icons/twitch.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="M21 2H3v16h5v4l4-4h5l4-4V2zM11 11V7M16 11V7" />
|
||||
</svg>
|
After Width: | Height: | Size: 267 B |
@ -15,5 +15,5 @@
|
||||
<path d="M10.71 5.05A16 16 0 0 1 22.58 9" />
|
||||
<path d="M1.42 9a15.91 15.91 0 0 1 4.7-2.88" />
|
||||
<path d="M8.53 16.11a6 6 0 0 1 6.95 0" />
|
||||
<line x1="12" y1="20" x2="12" y2="20" />
|
||||
<line x1="12" y1="20" x2="12.01" y2="20" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 540 B After Width: | Height: | Size: 543 B |
@ -12,5 +12,5 @@
|
||||
<path d="M5 12.55a11 11 0 0 1 14.08 0" />
|
||||
<path d="M1.42 9a16 16 0 0 1 21.16 0" />
|
||||
<path d="M8.53 16.11a6 6 0 0 1 6.95 0" />
|
||||
<line x1="12" y1="20" x2="12" y2="20" />
|
||||
<line x1="12" y1="20" x2="12.01" y2="20" />
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 382 B After Width: | Height: | Size: 385 B |
15
icons/x-octagon.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"
|
||||
>
|
||||
<polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2" />
|
||||
<line x1="15" y1="9" x2="9" y2="15" />
|
||||
<line x1="9" y1="9" x2="15" y2="15" />
|
||||
</svg>
|
After Width: | Height: | Size: 384 B |
14
icons/youtube.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="M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z" />
|
||||
<polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02" />
|
||||
</svg>
|
After Width: | Height: | Size: 547 B |
16
icons/zap-off.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="12.41 6.75 13 2 10.57 4.92" />
|
||||
<polyline points="18.57 12.91 21 10 15.66 10" />
|
||||
<polyline points="8 8 3 14 12 14 11 22 16 16" />
|
||||
<line x1="1" y1="1" x2="23" y2="23" />
|
||||
</svg>
|
After Width: | Height: | Size: 402 B |
13915
package-lock.json
generated
52
package.json
@ -3,58 +3,64 @@
|
||||
"version": "0.0.0-development",
|
||||
"description": "Simply beautiful open source icons",
|
||||
"main": "dist/feather.js",
|
||||
"unpkg": "dist/feather.min.js",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"scripts": {
|
||||
"start": "npm-run-all --sequential build lint test",
|
||||
"all": "npm-run-all --sequential build lint test:coverage",
|
||||
"build": "./bin/build.sh",
|
||||
"lint": "eslint .",
|
||||
"test": "jest",
|
||||
"test": "jest --watch",
|
||||
"test:coverage": "jest --coverage",
|
||||
"cm": "git-cz",
|
||||
"precommit": "lint-staged",
|
||||
"commitmsg": "commitlint --edit",
|
||||
"semantic-release": "semantic-release pre && npm publish && semantic-release post"
|
||||
"commitmsg": "commitlint --edit"
|
||||
},
|
||||
"config": {
|
||||
"commitizen": {
|
||||
"path": "cz-conventional-changelog"
|
||||
}
|
||||
},
|
||||
"jest": {
|
||||
"collectCoverageFrom": [
|
||||
"src/**/*.js"
|
||||
]
|
||||
},
|
||||
"dependencies": {
|
||||
"classnames": "^2.2.5"
|
||||
"classnames": "^2.2.5",
|
||||
"core-js": "^3.1.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^5.0.0",
|
||||
"@commitlint/config-angular": "^5.0.0",
|
||||
"@commitlint/cli": "^5.2.5",
|
||||
"@commitlint/config-conventional": "^6.1.3",
|
||||
"algoliasearch": "^3.27.1",
|
||||
"babel-cli": "^6.24.1",
|
||||
"babel-loader": "^7.1.1",
|
||||
"babel-plugin-transform-object-rest-spread": "^6.26.0",
|
||||
"babel-preset-es2015": "^6.24.1",
|
||||
"babel-register": "^6.24.1",
|
||||
"babel-preset-env": "^1.7.0",
|
||||
"babel-preset-stage-2": "^6.24.1",
|
||||
"cheerio": "^1.0.0-rc.2",
|
||||
"commitizen": "^2.9.6",
|
||||
"core-js": "^2.4.1",
|
||||
"cz-conventional-changelog": "^2.1.0",
|
||||
"eslint": "^4.0.0",
|
||||
"eslint-config-airbnb-base": "^11.2.0",
|
||||
"eslint-config-prettier": "^2.7.0",
|
||||
"eslint": "^4.19.1",
|
||||
"eslint-config-airbnb-base": "^12.1.0",
|
||||
"eslint-config-prettier": "^2.9.0",
|
||||
"eslint-plugin-import": "^2.5.0",
|
||||
"eslint-plugin-prettier": "^2.3.1",
|
||||
"html-minifier": "^3.5.6",
|
||||
"husky": "^0.13.4",
|
||||
"jest": "^21.2.1",
|
||||
"lint-staged": "^5.0.0",
|
||||
"eslint-plugin-prettier": "^2.5.0",
|
||||
"html-minifier": "^3.5.8",
|
||||
"husky": "^0.14.3",
|
||||
"jest": "^22.4.4",
|
||||
"lint-staged": "^6.0.0",
|
||||
"npm-run-all": "^4.1.2",
|
||||
"prettier": "^1.8.2",
|
||||
"rimraf": "^2.6.2",
|
||||
"semantic-release": "^6.3.6",
|
||||
"semantic-release": "^12.2.2",
|
||||
"svgo": "^0.7.2",
|
||||
"webpack": "^3.0.0"
|
||||
"webpack": "^4.8.3",
|
||||
"webpack-cli": "^2.1.3"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/colebemis/feather.git"
|
||||
"url": "https://github.com/feathericons/feather.git"
|
||||
},
|
||||
"author": "Cole Bemis <cole@colebemis.com> (http://colebemis.com)",
|
||||
"license": "MIT"
|
||||
|
3
src/__tests__/__snapshots__/replace.node.test.js.snap
Normal file
@ -0,0 +1,3 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`throws an error when run in node environment 1`] = `"\`feather.replace()\` only works in a browser environment."`;
|
@ -1,5 +1,5 @@
|
||||
/* eslint-env jest */
|
||||
import feather from '../..';
|
||||
import feather from '../index';
|
||||
|
||||
test('has correct properties', () => {
|
||||
expect(feather).toHaveProperty('icons');
|
||||
|
10
src/__tests__/replace.node.test.js
Normal file
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @jest-environment node
|
||||
*/
|
||||
|
||||
/* eslint-env jest */
|
||||
import replace from '../replace';
|
||||
|
||||
test('throws an error when run in node environment', () => {
|
||||
expect(replace).toThrowErrorMatchingSnapshot();
|
||||
});
|
240
src/tags.json
@ -1,7 +1,239 @@
|
||||
{
|
||||
"airplay": ["stream"],
|
||||
"bell": ["alarm", "notification"],
|
||||
"activity": ["pulse", "health", "action", "motion"],
|
||||
"airplay": ["stream", "cast", "mirroring"],
|
||||
"alert-circle": ["warning", "alert", "danger"],
|
||||
"alert-octagon": ["warning", "alert", "danger"],
|
||||
"alert-triangle": ["warning", "alert", "danger"],
|
||||
"align-center": ["text alignment", "center"],
|
||||
"align-justify": ["text alignment", "justified"],
|
||||
"align-left": ["text alignment", "left"],
|
||||
"align-right": ["text alignment", "right"],
|
||||
"anchor": [],
|
||||
"archive": ["index", "box"],
|
||||
"at-sign": ["mention", "at", "email", "message"],
|
||||
"award": ["achievement", "badge"],
|
||||
"aperture": ["camera", "photo"],
|
||||
"bar-chart": ["statistics", "diagram", "graph"],
|
||||
"bar-chart-2": ["statistics", "diagram", "graph"],
|
||||
"battery": ["power", "electricity"],
|
||||
"battery-charging": ["power", "electricity"],
|
||||
"bell": ["alarm", "notification", "sound"],
|
||||
"bell-off": ["alarm", "notification", "silent"],
|
||||
"bluetooth": ["wireless"],
|
||||
"book-open": ["read", "library"],
|
||||
"book": ["read", "dictionary", "booklet", "magazine", "library"],
|
||||
"bookmark": ["read", "clip", "marker", "tag"],
|
||||
"box": ["cube"],
|
||||
"briefcase": ["work", "bag", "baggage", "folder"],
|
||||
"calendar": ["date"],
|
||||
"camera": ["photo"],
|
||||
"cast": ["chromecast", "airplay"],
|
||||
"chevron-down": ["expand"],
|
||||
"chevron-up": ["collapse"],
|
||||
"circle": ["off", "zero", "record"],
|
||||
"clipboard": ["copy"],
|
||||
"clock": ["time", "watch", "alarm"],
|
||||
"cloud-drizzle": ["weather", "shower"],
|
||||
"cloud-lightning": ["weather", "bolt"],
|
||||
"cloud-rain": ["weather"],
|
||||
"cloud-snow": ["weather", "blizzard"],
|
||||
"cloud": ["weather"],
|
||||
"codepen": ["logo"],
|
||||
"codesandbox": ["logo"],
|
||||
"code": ["source", "programming"],
|
||||
"coffee": ["drink", "cup", "mug", "tea", "cafe", "hot", "beverage"],
|
||||
"columns": ["layout"],
|
||||
"command": ["keyboard", "cmd", "terminal", "prompt"],
|
||||
"compass": ["navigation", "safari", "travel", "direction"],
|
||||
"copy": ["clone", "duplicate"],
|
||||
"corner-down-left": ["arrow", "return"],
|
||||
"corner-down-right": ["arrow"],
|
||||
"corner-left-down": ["arrow"],
|
||||
"corner-left-up": ["arrow"],
|
||||
"corner-right-down": ["arrow"],
|
||||
"corner-right-up": ["arrow"],
|
||||
"corner-up-left": ["arrow"],
|
||||
"corner-up-right": ["arrow"],
|
||||
"cpu": ["processor", "technology"],
|
||||
"credit-card": ["purchase", "payment", "cc"],
|
||||
"crop": ["photo", "image"],
|
||||
"crosshair": ["aim", "target"],
|
||||
"database": ["storage", "memory"],
|
||||
"delete": ["remove"],
|
||||
"disc": ["album", "cd", "dvd", "music"],
|
||||
"dollar-sign": ["currency", "money", "payment"],
|
||||
"droplet": ["water"],
|
||||
"edit": ["pencil", "change"],
|
||||
"edit-2": ["pencil", "change"],
|
||||
"edit-3": ["pencil", "change"],
|
||||
"eye": ["view", "watch"],
|
||||
"eye-off": ["view", "watch", "hide", "hidden"],
|
||||
"external-link": ["outbound"],
|
||||
"facebook": ["logo", "social"],
|
||||
"fast-forward": ["music"],
|
||||
"figma": ["logo", "design", "tool"],
|
||||
"file-minus": ["delete", "remove", "erase"],
|
||||
"file-plus": ["add", "create", "new"],
|
||||
"file-text": ["data", "txt", "pdf"],
|
||||
"film": ["movie", "video"],
|
||||
"filter": ["funnel", "hopper"],
|
||||
"flag": ["report"],
|
||||
"folder-minus": ["directory"],
|
||||
"folder-plus": ["directory"],
|
||||
"folder": ["directory"],
|
||||
"framer": ["logo", "design", "tool"],
|
||||
"frown": ["emoji", "face", "bad", "sad", "emotion"],
|
||||
"gift": ["present", "box", "birthday", "party"],
|
||||
"git-branch": ["code", "version control"],
|
||||
"git-commit": ["code", "version control"],
|
||||
"git-merge": ["code", "version control"],
|
||||
"git-pull-request": ["code", "version control"],
|
||||
"github": ["logo", "version control"],
|
||||
"gitlab": ["logo", "version control"],
|
||||
"globe": ["world", "browser", "language", "translate"],
|
||||
"hard-drive": ["computer", "server", "memory", "data"],
|
||||
"hash": ["hashtag", "number", "pound"],
|
||||
"headphones": ["music", "audio", "sound"],
|
||||
"heart": ["like", "love", "emotion"],
|
||||
"help-circle": ["question mark"],
|
||||
"hexagon": ["shape", "node.js", "logo"],
|
||||
"home": ["house", "living"],
|
||||
"image": ["picture"],
|
||||
"inbox": ["email"],
|
||||
"instagram": ["logo", "camera"],
|
||||
"key": ["password", "login", "authentication", "secure"],
|
||||
"layers": ["stack"],
|
||||
"layout": ["window", "webpage"],
|
||||
"life-bouy": ["help", "life ring", "support"],
|
||||
"link": ["chain", "url"],
|
||||
"link-2": ["chain", "url"],
|
||||
"linkedin": ["logo", "social media"],
|
||||
"list": ["options"],
|
||||
"lock": ["security", "password", "secure"],
|
||||
"log-in": ["sign in", "arrow", "enter"],
|
||||
"log-out": ["sign out", "arrow", "exit"],
|
||||
"mail": ["email", "message"],
|
||||
"map-pin": ["location", "navigation", "travel", "marker"],
|
||||
"map": ["location", "navigation", "travel"],
|
||||
"maximize": ["fullscreen"],
|
||||
"maximize-2": ["fullscreen", "arrows", "expand"],
|
||||
"meh": ["emoji", "face", "neutral", "emotion"],
|
||||
"menu": ["bars", "navigation", "hamburger"],
|
||||
"message-circle": ["comment", "chat"],
|
||||
"message-square": ["comment", "chat"],
|
||||
"mic-off": ["record", "sound", "mute"],
|
||||
"mic": ["record", "sound", "listen"],
|
||||
"minimize": ["exit fullscreen", "close"],
|
||||
"minimize-2": ["exit fullscreen", "arrows", "close"],
|
||||
"minus": ["subtract"],
|
||||
"monitor": ["tv", "screen", "display"],
|
||||
"moon": ["dark", "night"],
|
||||
"more-horizontal": ["ellipsis"],
|
||||
"more-vertical": ["ellipsis"],
|
||||
"mouse-pointer": ["arrow", "cursor"],
|
||||
"move": ["arrows"],
|
||||
"music": ["note"],
|
||||
"navigation": ["location", "travel"],
|
||||
"navigation-2": ["location", "travel"],
|
||||
"octagon": ["stop"],
|
||||
"package": ["box", "container"],
|
||||
"paperclip": ["attachment"],
|
||||
"pause": ["music", "stop"],
|
||||
"pause-circle": ["music", "audio", "stop"],
|
||||
"pen-tool": ["vector", "drawing"],
|
||||
"percent": ["discount"],
|
||||
"phone-call": ["ring"],
|
||||
"phone-forwarded": ["call"],
|
||||
"phone-incoming": ["call"],
|
||||
"phone-missed": ["call"],
|
||||
"phone-off": ["call", "mute"],
|
||||
"phone-outgoing": ["call"],
|
||||
"phone": ["call"],
|
||||
"play": ["music", "start"],
|
||||
"pie-chart": ["statistics", "diagram"],
|
||||
"play-circle": ["music", "start"],
|
||||
"plus": ["add", "new"],
|
||||
"plus-circle": ["add", "new"],
|
||||
"plus-square": ["add", "new"],
|
||||
"pocket": ["logo", "save"],
|
||||
"power": ["on", "off"],
|
||||
"printer": ["fax", "office", "device"],
|
||||
"radio": ["signal"],
|
||||
"refresh-cw": ["synchronise", "arrows"],
|
||||
"refresh-ccw": ["arrows"],
|
||||
"repeat": ["loop", "arrows"],
|
||||
"rewind": ["music"],
|
||||
"rotate-ccw": ["arrow"],
|
||||
"rotate-cw": ["arrow"],
|
||||
"rss": ["feed", "subscribe"],
|
||||
"save": ["floppy disk"],
|
||||
"scissors": ["cut"],
|
||||
"search": ["find", "magnifier", "magnifying glass"],
|
||||
"send": ["message", "mail", "email", "paper airplane", "paper aeroplane"],
|
||||
"settings": ["cog", "edit", "gear", "preferences"],
|
||||
"star": ["bookmark"],
|
||||
"x": ["cancel", "close", "delete", "remove"]
|
||||
"share-2": ["network", "connections"],
|
||||
"shield": ["security", "secure"],
|
||||
"shield-off": ["security", "insecure"],
|
||||
"shopping-bag": ["ecommerce", "cart", "purchase", "store"],
|
||||
"shopping-cart": ["ecommerce", "cart", "purchase", "store"],
|
||||
"shuffle": ["music"],
|
||||
"skip-back": ["music"],
|
||||
"skip-forward": ["music"],
|
||||
"slack": ["logo"],
|
||||
"slash": ["ban", "no"],
|
||||
"sliders": ["settings", "controls"],
|
||||
"smartphone": ["cellphone", "device"],
|
||||
"smile": ["emoji", "face", "happy", "good", "emotion"],
|
||||
"speaker": ["audio", "music"],
|
||||
"star": ["bookmark", "favorite", "like"],
|
||||
"stop-circle": ["media", "music"],
|
||||
"sun": ["brightness", "weather", "light"],
|
||||
"sunrise": ["weather", "time", "morning", "day"],
|
||||
"sunset": ["weather", "time", "evening", "night"],
|
||||
"tablet": ["device"],
|
||||
"tag": ["label"],
|
||||
"target": ["logo", "bullseye"],
|
||||
"terminal": ["code", "command line", "prompt"],
|
||||
"thermometer": ["temperature", "celsius", "fahrenheit", "weather"],
|
||||
"thumbs-down": ["dislike", "bad", "emotion"],
|
||||
"thumbs-up": ["like", "good", "emotion"],
|
||||
"toggle-left": ["on", "off", "switch"],
|
||||
"toggle-right": ["on", "off", "switch"],
|
||||
"tool": ["settings", "spanner"],
|
||||
"trash": ["garbage", "delete", "remove", "bin"],
|
||||
"trash-2": ["garbage", "delete", "remove", "bin"],
|
||||
"triangle": ["delta"],
|
||||
"truck": ["delivery", "van", "shipping", "transport", "lorry"],
|
||||
"tv": ["television", "stream"],
|
||||
"twitch": ["logo"],
|
||||
"twitter": ["logo", "social"],
|
||||
"type": ["text"],
|
||||
"umbrella": ["rain", "weather"],
|
||||
"unlock": ["security"],
|
||||
"user-check": ["followed", "subscribed"],
|
||||
"user-minus": ["delete", "remove", "unfollow", "unsubscribe"],
|
||||
"user-plus": ["new", "add", "create", "follow", "subscribe"],
|
||||
"user-x": ["delete", "remove", "unfollow", "unsubscribe", "unavailable"],
|
||||
"user": ["person", "account"],
|
||||
"users": ["group"],
|
||||
"video-off": ["camera", "movie", "film"],
|
||||
"video": ["camera", "movie", "film"],
|
||||
"voicemail": ["phone"],
|
||||
"volume": ["music", "sound", "mute"],
|
||||
"volume-1": ["music", "sound"],
|
||||
"volume-2": ["music", "sound"],
|
||||
"volume-x": ["music", "sound", "mute"],
|
||||
"watch": ["clock", "time"],
|
||||
"wifi-off": ["disabled"],
|
||||
"wifi": ["connection", "signal", "wireless"],
|
||||
"wind": ["weather", "air"],
|
||||
"x-circle": ["cancel", "close", "delete", "remove", "times", "clear"],
|
||||
"x-octagon": ["delete", "stop", "alert", "warning", "times", "clear"],
|
||||
"x-square": ["cancel", "close", "delete", "remove", "times", "clear"],
|
||||
"x": ["cancel", "close", "delete", "remove", "times", "clear"],
|
||||
"youtube": ["logo", "video", "play"],
|
||||
"zap-off": ["flash", "camera", "lightning"],
|
||||
"zap": ["flash", "camera", "lightning"],
|
||||
"zoom-in": ["magnifying glass"],
|
||||
"zoom-out": ["magnifying glass"]
|
||||
}
|
||||
|
@ -1,25 +0,0 @@
|
||||
import path from 'path';
|
||||
|
||||
export default {
|
||||
entry: [
|
||||
'core-js/fn/array/from',
|
||||
'core-js/fn/object/assign',
|
||||
'core-js/fn/set',
|
||||
path.resolve(__dirname, 'src/index.js'),
|
||||
],
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'dist'),
|
||||
libraryTarget: 'umd',
|
||||
library: 'feather',
|
||||
},
|
||||
devtool: 'source-map',
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
loader: 'babel-loader',
|
||||
exclude: /node_modules/,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
23
webpack.config.js
Normal file
@ -0,0 +1,23 @@
|
||||
const path = require('path');
|
||||
|
||||
module.exports = {
|
||||
entry: ['core-js/es/array/from', path.resolve(__dirname, 'src/index.js')],
|
||||
output: {
|
||||
path: path.resolve(__dirname, 'dist'),
|
||||
libraryTarget: 'umd',
|
||||
library: 'feather',
|
||||
// Prevents webpack from referencing `window` in the UMD build
|
||||
// Source: https://git.io/vppgU
|
||||
globalObject: "typeof self !== 'undefined' ? self : this",
|
||||
},
|
||||
devtool: 'source-map',
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
loader: 'babel-loader',
|
||||
exclude: /node_modules/,
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|