Compare commits

..

130 Commits

Author SHA1 Message Date
2ee03d261c fix: Set unpkg default to feather.min.js 2018-05-18 16:13:35 -07:00
dc3c0cc47e style: Fix formatting 2018-05-18 16:07:18 -07:00
d5ba74d93b fix: Fix UMD build for node
Prevents webpack from referencing `window` in the UMD build which was causing an error in node.
2018-05-18 16:07:18 -07:00
c978b1cb4e fix: Remove unused polyfills and update build config
Removes polyfills for `Object.assign` and `Set` which, as far as I can tell, are unused in the
codebase. Updates `webpack` from 3 to 4. Replaces `babel-preset-es2015` with `babel-preset-env`.
Reduces the minified bundle size (`feather.min.js`) by **9.3kB** (72.4kB to 63.1kB). Does not change
any functionality of the library.
2018-05-18 12:26:21 -07:00
bd129d9dcf docs: Update function documentation 2018-05-18 10:17:40 -07:00
90133ea33e build(algolia): Add objects *after* clearing index 2018-05-17 23:44:35 -07:00
1a210808c5 docs: Update roadmap 2018-05-17 23:27:24 -07:00
400f34afc2 docs: Update shields 2018-05-17 23:25:51 -07:00
1da9dd43b2 test: Track code coverage 2018-05-17 23:19:02 -07:00
6e7693e6da test: Update test scripts 2018-05-17 23:12:06 -07:00
32810336ec test: Test replace() in node env 2018-05-17 23:08:17 -07:00
e374f72cb6 chore: Add coverage to .eslintignore 2018-05-17 23:07:53 -07:00
28e74c6e2b chore: Ignore coverage directory 2018-05-17 22:46:01 -07:00
3183ae1ef6 chore: Remove unneeded eslint comments 2018-05-17 22:43:41 -07:00
703b1a7882 build: Update build logs 2018-05-17 22:42:08 -07:00
9dffc53b3a ci: Fix "all" script in .travis.yml 2018-05-17 22:30:32 -07:00
741ac5632c chore: Replace @commitlint/config-angular with @commitlint/config-conventional 2018-05-17 22:29:21 -07:00
ad3c8a94d0 ci: Rename "start" script to "all" 2018-05-17 22:24:38 -07:00
76f29d8565 build: Disable some eslint rules in /bin 2018-05-17 22:21:17 -07:00
23b17b9c55 Merge branch 'master' of https://github.com/feathericons/feather 2018-05-17 21:52:27 -07:00
1d3283d81d build: Add sync-algolia script 2018-05-17 21:51:49 -07:00
5031cacbdd docs: Lowercase donate badge 2018-05-16 11:53:13 -07:00
894dcfd6a6 Merge pull request #393 from feathericons/dependabot/npm_and_yarn/eslint-plugin-import-2.11.0
build: bump eslint-plugin-import from 2.8.0 to 2.11.0
2018-05-13 22:32:36 -07:00
765985a5e3 Merge pull request #412 from feathericons/dependabot/npm_and_yarn/npm-run-all-4.1.3
build: bump npm-run-all from 4.1.2 to 4.1.3
2018-05-07 18:53:58 -04:00
87f272275a Merge pull request #396 from feathericons/dependabot/npm_and_yarn/html-minifier-3.5.15
build: bump html-minifier from 3.5.8 to 3.5.15
2018-05-07 18:53:27 -04:00
17fb9c99a9 build: bump npm-run-all from 4.1.2 to 4.1.3
Bumps [npm-run-all](https://github.com/mysticatea/npm-run-all) from 4.1.2 to 4.1.3.
- [Release notes](https://github.com/mysticatea/npm-run-all/releases)
- [Commits](https://github.com/mysticatea/npm-run-all/compare/v4.1.2...v4.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-05-07 05:50:08 +00:00
9167bfc36d docs: Add donate shield to README 2018-04-25 12:43:52 -07:00
fb0ae8054e build: bump html-minifier from 3.5.8 to 3.5.15
Bumps [html-minifier](https://github.com/kangax/html-minifier) from 3.5.8 to 3.5.15.
- [Release notes](https://github.com/kangax/html-minifier/releases)
- [Commits](https://github.com/kangax/html-minifier/compare/v3.5.8...v3.5.15)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-04-17 05:25:12 +00:00
d2369242f1 build: bump eslint-plugin-import from 2.8.0 to 2.11.0
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.8.0 to 2.11.0.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.8.0...v2.11.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-04-13 05:20:04 +00:00
d33cb6ecf9 refactor: Use uppercase for default attrs import 2018-04-04 11:46:37 -07:00
b22f3b4515 Merge pull request #374 from feathericons/update-sprite
Refactor buildSpriteString and update sprite docs
2018-04-01 17:27:55 -07:00
94531bbe7c docs: Update sprite docs 2018-04-01 17:04:44 -07:00
a3527829b8 chore: Add comments to build script 2018-04-01 16:26:54 -07:00
e697b3a927 refactor: Refactor build-sprite-string.js 2018-04-01 16:25:21 -07:00
920bd45776 docs: Rename Client-side Javascript section 2018-03-21 14:49:14 -07:00
cbd3c6184b docs: Clarify dot vs bracket notation 2018-03-21 14:46:33 -07:00
93dd65f8c5 feat: Add archive icon 2018-03-01 23:05:04 -08:00
031f305c83 feat: Add icon 2018-03-01 23:05:04 -08:00
1180d2d8b4 feat: Add gift icon 2018-03-01 23:05:04 -08:00
3422f0aaf7 feat: Add SVG sprite support (#319) 2018-02-20 16:30:59 -08:00
b3655c438f fix: Fix semantic-release deploys
Updated .travis.yml to match the example provided in the documentation
https://semantic-release.gitbooks.io/semantic-release/content/docs/recipes/travis.html
2018-02-20 12:48:09 -08:00
5a8a8b7d93 fix: Reorder help-circle elements (#308) 2018-02-07 08:20:57 -08:00
ba33c8312e Merge pull request #278 from feathericons/dependabot/npm_and_yarn/eslint-plugin-prettier-2.5.0
chore(dependencies): Bump eslint-plugin-prettier from 2.4.0 to 2.5.0
2018-01-19 09:32:05 -08:00
b157434645 Merge pull request #277 from feathericons/dependabot/npm_and_yarn/semantic-release-12.2.2
chore(dependencies): Bump semantic-release from 8.2.0 to 12.2.2
2018-01-19 06:43:27 -08:00
6adadf4319 chore(dependencies): Bump eslint-plugin-prettier from 2.4.0 to 2.5.0
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 2.4.0 to 2.5.0.
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v2.4.0...v2.5.0)
2018-01-19 05:50:26 +00:00
7ea765f04f chore(dependencies): Bump semantic-release from 8.2.0 to 12.2.2
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 8.2.0 to 12.2.2.
- [Release notes](https://github.com/semantic-release/semantic-release/releases)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v8.2.0...v12.2.2)
2018-01-19 05:49:42 +00:00
2dbe78fc02 Merge pull request #260 from feathericons/dependabot/npm_and_yarn/html-minifier-3.5.8
chore(dependencies): Bump html-minifier from 3.5.7 to 3.5.8
2018-01-18 21:48:59 -08:00
0dce8a8fb9 Merge pull request #265 from feathericons/dependabot/npm_and_yarn/eslint-4.15.0
chore(dependencies): Bump eslint from 4.13.1 to 4.15.0
2018-01-18 21:48:25 -08:00
ed0e08a451 chore(dependencies): Bump eslint from 4.13.1 to 4.15.0
Bumps [eslint](https://github.com/eslint/eslint) from 4.13.1 to 4.15.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v4.13.1...v4.15.0)
2018-01-08 08:03:01 +00:00
b5331a253d docs: Updated README.md 2017-12-29 15:16:43 -08:00
ada2681ad4 chore(dependencies): Bump html-minifier from 3.5.7 to 3.5.8
Bumps [html-minifier](https://github.com/kangax/html-minifier) from 3.5.7 to 3.5.8.
- [Release notes](https://github.com/kangax/html-minifier/releases/tag/v3.5.8)
- [Commits](https://github.com/kangax/html-minifier/compare/v3.5.7...v3.5.8)
2017-12-25 07:37:07 +00:00
c7d417e19b feat: Add tags to tags.json 2017-12-21 22:45:53 -08:00
6999eeba10 Fix typo on icon tags 2017-12-22 13:41:11 +07:00
9e681f8f89 Add icon tags 2017-12-22 13:14:05 +07:00
1f5bb6e1dc Merge pull request #252 from feathericons/dependabot/npm_and_yarn/eslint-plugin-prettier-2.4.0
Bump eslint-plugin-prettier from 2.3.1 to 2.4.0
2017-12-18 23:31:19 -08:00
fbdff6452c chore(dependencies): Bump eslint-plugin-prettier from 2.3.1 to 2.4.0
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 2.3.1 to 2.4.0.
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v2.3.1...v2.4.0)
2017-12-18 08:08:14 +00:00
1f87e256b6 Merge pull request #238 from feathericons/dependabot/npm_and_yarn/lint-staged-6.0.0
Bump lint-staged from 5.0.0 to 6.0.0
2017-12-16 01:26:48 -08:00
5596f66525 Merge pull request #242 from feathericons/dependabot/npm_and_yarn/eslint-config-airbnb-base-12.1.0
Bump eslint-config-airbnb-base from 11.3.2 to 12.1.0
2017-12-16 01:26:03 -08:00
1d3807c005 chore(dependencies): Bump eslint-config-airbnb-base from 11.3.2 to 12.1.0
Bumps [eslint-config-airbnb-base](https://github.com/airbnb/javascript) from 11.3.2 to 12.1.0.
- [Commits](https://github.com/airbnb/javascript/compare/eslint-config-airbnb-base-v11.3.2...eslint-config-airbnb-base-v12.1.0)
2017-12-16 09:03:00 +00:00
a7fe66e4b4 Merge pull request #239 from feathericons/dependabot/npm_and_yarn/eslint-4.13.1
Bump eslint from 4.10.0 to 4.13.1
2017-12-16 01:01:59 -08:00
c85cb6556b chore(dependencies): Bump eslint from 4.10.0 to 4.13.1
Bumps [eslint](https://github.com/eslint/eslint) from 4.10.0 to 4.13.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v4.10.0...v4.13.1)
2017-12-16 08:55:43 +00:00
3ad661ecae Merge pull request #241 from feathericons/dependabot/npm_and_yarn/@commitlint/cli-5.2.5
Bump @commitlint/cli from 5.0.0 to 5.2.5
2017-12-16 00:55:38 -08:00
4ae3fa8093 Merge pull request #245 from feathericons/dependabot/npm_and_yarn/eslint-config-prettier-2.9.0
Bump eslint-config-prettier from 2.7.0 to 2.9.0
2017-12-16 00:55:08 -08:00
e3a3cd6727 chore(dependencies): Bump lint-staged from 5.0.0 to 6.0.0
Bumps [lint-staged](https://github.com/okonet/lint-staged) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/okonet/lint-staged/releases/tag/v6.0.0)
- [Commits](https://github.com/okonet/lint-staged/compare/v5.0.0...v6.0.0)
2017-12-16 08:52:08 +00:00
73111225b0 chore(dependencies): Bump eslint-config-prettier from 2.7.0 to 2.9.0
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 2.7.0 to 2.9.0.
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/master/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v2.7.0...v2.9.0)
2017-12-16 08:51:59 +00:00
d5e7e14e5b Merge pull request #251 from feathericons/dependabot/npm_and_yarn/webpack-3.10.0
Bump webpack from 3.8.1 to 3.10.0
2017-12-16 00:51:35 -08:00
a29480d769 Merge pull request #237 from feathericons/dependabot/npm_and_yarn/html-minifier-3.5.7
Bump html-minifier from 3.5.6 to 3.5.7
2017-12-16 00:51:08 -08:00
84b8428ee9 chore(dependencies): Bump html-minifier from 3.5.6 to 3.5.7
Bumps [html-minifier](https://github.com/kangax/html-minifier) from 3.5.6 to 3.5.7.
- [Release notes](https://github.com/kangax/html-minifier/releases/tag/v3.5.7)
- [Commits](https://github.com/kangax/html-minifier/compare/v3.5.6...v3.5.7)
2017-12-15 09:39:26 +00:00
f6984951a9 Merge pull request #243 from feathericons/dependabot/npm_and_yarn/husky-0.14.3
Bump husky from 0.13.4 to 0.14.3
2017-12-15 01:38:13 -08:00
e70ae51980 chore(dependencies): Bump @commitlint/cli from 5.0.0 to 5.2.5
Bumps [@commitlint/cli](https://github.com/marionebl/commitlint) from 5.0.0 to 5.2.5.
- [Release notes](https://github.com/marionebl/commitlint/releases)
- [Changelog](https://github.com/marionebl/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marionebl/commitlint/compare/v5.0.0...v5.2.5)
2017-12-15 09:38:12 +00:00
dd9a0b0fe1 Merge pull request #244 from feathericons/dependabot/npm_and_yarn/@commitlint/config-angular-5.1.1
Bump @commitlint/config-angular from 5.0.0 to 5.1.1
2017-12-15 01:37:19 -08:00
44d6501a8a Merge pull request #250 from feathericons/dependabot/npm_and_yarn/core-js-2.5.3
Bump core-js from 2.5.1 to 2.5.3
2017-12-15 01:36:22 -08:00
483a3f1738 feat: Add more tags 2017-12-15 00:28:36 -08:00
827d2be993 feat: Add zap-off icon
Closes #96
2017-12-15 00:28:36 -08:00
58c2ec781f feat: Add truck icon
Closes #112, closes #215
2017-12-15 00:28:36 -08:00
4ba17e488b feat: Add shopping-bag icon 2017-12-15 00:28:36 -08:00
d79db8d1e8 feat: Add send icon
Closes #84
2017-12-15 00:28:36 -08:00
c908b6ab31 feat: Add git-pull-request icon 2017-12-15 00:28:36 -08:00
1014f53d2a feat: Add git-merge icon 2017-12-15 00:28:36 -08:00
1f7216a6c7 feat: Add git-commit icon 2017-12-15 00:28:36 -08:00
5df24f02b7 feat: Add git-branch icon
Closes #218
2017-12-15 00:28:36 -08:00
f527932e2b feat: Add dollar-sign icon
#182
2017-12-15 00:28:36 -08:00
8161cd71b5 feat: Update check-square icon 2017-12-15 00:28:36 -08:00
1af2cf5a73 feat: Update check-circle icon 2017-12-15 00:28:36 -08:00
eb8e3d6e30 feat: Add database icon
Closes #38
2017-12-15 00:28:36 -08:00
c847a2b195 chore(dependencies): Bump webpack from 3.8.1 to 3.10.0
Bumps [webpack](https://github.com/webpack/webpack) from 3.8.1 to 3.10.0.
- [Release notes](https://github.com/webpack/webpack/releases?after=v4.0.0-alpha.0)
- [Commits](https://github.com/webpack/webpack/compare/v3.8.1...v3.10.0)
2017-12-15 07:58:20 +00:00
9d3a802eb2 chore(dependencies): Bump core-js from 2.5.1 to 2.5.3
Bumps [core-js](https://github.com/zloirock/core-js) from 2.5.1 to 2.5.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v2.5.1...v2.5.3)
2017-12-15 07:58:13 +00:00
10a1b217ef chore(dependencies): Bump husky from 0.13.4 to 0.14.3
Bumps [husky](https://github.com/typicode/husky) from 0.13.4 to 0.14.3.
- [Changelog](https://github.com/typicode/husky/blob/master/CHANGELOG.md)
- [Commits](https://github.com/typicode/husky/compare/v0.13.4...v0.14.3)
2017-12-14 23:55:38 +00:00
080d5b4187 chore(dependencies): Bump semantic-release from 6.3.6 to 8.2.0
Bumps [semantic-release](https://github.com/semantic-release/semantic-release) from 6.3.6 to 8.2.0.
- [Release notes](https://github.com/semantic-release/semantic-release/releases?after=v8.2.1)
- [Commits](https://github.com/semantic-release/semantic-release/compare/v6.3.6...v8.2.0)
2017-12-14 15:54:41 -08:00
f329a1ef64 feat: Add linkedin icon
Closes #77
2017-12-14 14:33:27 -08:00
b817fe2605 ci: Update repository url in package.json
This change allows semantic-release to automatically publish release notes again.
https://github.com/semantic-release/semantic-release/issues/199
2017-12-14 10:14:19 -08:00
f58b75faf0 feat: Add more tags to tags.json 2017-12-14 02:01:19 -08:00
fac43e92cf ci: Update .travis.yml 2017-12-14 00:39:45 -08:00
0af964bf29 Merge pull request #247 from feathericons/v4.1.0
v4.1.0
2017-12-14 00:34:03 -08:00
7b9faf5b74 feat: Update upload icon 2017-12-14 00:25:31 -08:00
fd54d891d7 feat: Update log-out icon 2017-12-14 00:25:19 -08:00
031cd1cdcf feat: Update log-in icon 2017-12-14 00:25:05 -08:00
58e555ac21 feat: Add folder-plus icon
Closes #166
2017-12-14 00:24:42 -08:00
4e5462b4ea feat: Add folder-minus icon 2017-12-14 00:23:48 -08:00
821eae0fed feat: Update download icon 2017-12-14 00:20:42 -08:00
c61c9279eb feat: Add arrow-*-circle icons 2017-12-14 00:18:46 -08:00
63485ae1fa feat: Update clock icon 2017-12-13 23:32:30 -08:00
c9d3fe4afd feat: Add code icon
Closes  #24, closes #235
2017-12-13 23:24:29 -08:00
d858fce9ac feat: Add terminal icon 2017-12-13 23:23:04 -08:00
ef4f52918b chore(dependencies): Bump @commitlint/config-angular from 5.0.0 to 5.1.1
Bumps [@commitlint/config-angular](https://github.com/marionebl/commitlint) from 5.0.0 to 5.1.1.
- [Release notes](https://github.com/marionebl/commitlint/releases?after=v5.1.2)
- [Changelog](https://github.com/marionebl/commitlint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/marionebl/commitlint/compare/v5.0.0...v5.1.1)
2017-12-14 07:08:54 +00:00
b6e30348ca feat: Add rss icon
Closes #13
2017-12-13 22:35:16 -08:00
ce9dadf760 feat: Add book-open icon
Closes #116
2017-12-13 19:43:14 -08:00
aad71c66d9 feat: Update bar-chart icons 2017-12-13 19:30:10 -08:00
c8181e483e feat: Add hard-drive icon
Closes  #223
2017-12-13 19:29:38 -08:00
aee7cb6c9a feat: Update shopping-cart icon 2017-12-13 18:58:07 -08:00
1170414e65 feat: Add shield-off icon 2017-12-13 18:57:47 -08:00
3401e75259 fix: Fix arrow-down-left and arrow-down-right icons 2017-12-13 18:26:54 -08:00
a4c9815ca9 feat: Update arrow icons 2017-12-13 18:09:50 -08:00
9df31d48c6 feat: Update shield icon 2017-12-13 15:56:55 -08:00
8c557f7051 feat: Update search icon 2017-12-13 15:56:39 -08:00
bb9e45b336 feat: Update more-vertical icon 2017-12-13 15:56:25 -08:00
c6a7239a2c feat: Update more-horizontal icon 2017-12-13 15:56:01 -08:00
c777ac724d feat: Update inbox icon 2017-12-13 15:55:33 -08:00
38c6a37da6 feat: Update at-sign icon 2017-12-13 15:55:12 -08:00
6dc6e83d39 docs: Update capitalization 2017-12-13 00:25:40 -08:00
c631a31ebd docs: Remove target="_blank" 2017-12-13 00:24:06 -08:00
7047790dc7 docs: Add StdLib logo 2017-12-13 00:23:08 -08:00
c1f40d07c8 docs: Update README.md 2017-12-12 22:49:58 -08:00
ad8fabb569 docs: Update README.md 2017-12-12 20:47:07 -08:00
ba46d098b3 Update README.md 2017-12-12 20:42:57 -08:00
cac14df9a2 docs: Update TravisCI link 2017-11-19 18:02:49 -08:00
14c796917d build: Update linting config 2017-11-19 18:01:04 -08:00
343388c892 docs: Update TravisCI badge 2017-11-19 16:34:18 -08:00
c9552b6916 fix: Remove unecessary whitespace from SVG contents
```js
/* BEFORE */
{ circle: "\n  <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n" }

/* AFTER */
{ circle: "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>" }
```
2017-11-19 16:29:52 -08:00
b814a2b94b docs: Update README.md 2017-11-18 20:54:45 -08:00
80 changed files with 8908 additions and 2731 deletions

View File

@ -1,4 +1,13 @@
{
"presets": ["es2015"],
"plugins": ["transform-object-rest-spread"]
"presets": [
[
"env",
{
"targets": {
"browsers": ["last 2 versions"]
}
}
],
"stage-2"
]
}

View File

@ -1 +1,2 @@
dist
coverage

View File

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

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ node_modules
dist
sandbox
stash
coverage

3
.lintstagedrc Normal file
View File

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

View File

@ -4,10 +4,16 @@ cache:
- node_modules
notifications:
email: false
node_js: 6
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

102
README.md
View File

@ -1,32 +1,40 @@
# Feather
[![Travis branch](https://img.shields.io/travis/colebemis/feather/master.svg?style=flat-square)](https://travis-ci.org/colebemis/feather)
[![npm](https://img.shields.io/npm/v/feather-icons.svg?style=flat-square)](https://www.npmjs.com/package/feather-icons)
[![npm](https://img.shields.io/npm/dm/feather-icons.svg?style=flat-square)](https://npm-stat.com/charts.html?package=feather-icons&from=2017-06-01)
[![Build status](https://img.shields.io/travis/feathericons/feather/master.svg?style=flat-square)](https://travis-ci.org/feathericons/feather)
[![Coverage](https://img.shields.io/codecov/c/github/feathericons/feather/master.svg?style=flat-square)](https://codecov.io/gh/feathericons/feather)
[![npm downloads](https://img.shields.io/npm/dm/feather-icons.svg?style=flat-square)](https://www.npmjs.com/package/feather-icons)
[![npm version](https://img.shields.io/npm/v/feather-icons.svg?style=flat-square)](https://www.npmjs.com/package/feather-icons)
[![CDNJS version](https://img.shields.io/cdnjs/v/feather-icons.svg?style=flat-square)](https://cdnjs.com/libraries/feather-icons)
[![Code Climate](https://img.shields.io/codeclimate/github/colebemis/feather.svg?style=flat-square)](https://codeclimate.com/github/colebemis/feather)
[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=G6CPFZ6PQRZW8&amp;lc=US&amp;item_name=Feather&amp;currency_code=USD&amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted)
## 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.
**[feathericons.com](https://feathericons.com)**
https://feathericons.com
```
```sh
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)
* [API Reference](#api-reference)
* [`feather.icons`](#feathericons)
* [`feather.icons[name].toSvg()`](#feathericonsnametosvgattrs)
* [`feather.replace()`](#featherreplaceattrs)
* [[DEPRECATED] `feather.toSvg()`](#deprecated-feathertosvgname-attrs)
* [(DEPRECATED) `feather.toSvg()`](#deprecated-feathertosvgname-attrs)
* [Roadmap](#roadmap)
* [Contributing](#contributing)
* [Related Projects](#related-projects)
@ -61,7 +69,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
@ -161,11 +169,65 @@ 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).
```
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
In your HTML, you can include an icon like so:
```html
<svg
width="24"
height="24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<use xlink:href="path/to/feather-sprite.svg#circle"/>
</svg>
```
> **Note:** `circle` in the above example can be replaced with any valid icon name. See the complete list of icon names at [feathericons.com](https://feathericons.com).
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 xlink:href="path/to/dist/feather-sprite.svg#circle"/>
</svg>
```
## API Reference
### `feather.icons`
An object with information about every icon.
An object with data about every icon.
#### Usage
@ -173,7 +235,7 @@ An object with information about every icon.
feather.icons.x
// {
// name: 'x',
// contents: '<line ... /><line ... />`,
// contents: '<line ... /><line ... />',
// tags: ['cancel', 'close', 'delete', 'remove'],
// attrs: {
// class: 'feather feather-x',
@ -190,11 +252,15 @@ feather.icons.x
// }
feather.icons.x.toString()
// '<line ... /><line ... />`
// '<line ... /><line ... />'
```
> **Note:** `x` in the above example can be replaced with any valid icon name. See the complete list of icon names at [feathericons.com](https://feathericons.com). Icons with multi-word names (e.g. `arrow-right`) **cannot** be accessed using dot notation (e.g. `feather.icons.x`). Instead, use bracket notation (e.g. `feather.icons['arrow-right']`).
[View Source](https://github.com/colebemis/feather/blob/master/src/icons.js)
---
### `feather.icons[name].toSvg([attrs])`
Returns an SVG string.
@ -218,7 +284,9 @@ feather.icons.circle.toSvg({ class: 'foo bar' })
// '<svg class="feather feather-circle foo bar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>'
```
[View Source](https://github.com/colebemis/feather/blob/master/src/icons.js)
[View Source](https://github.com/colebemis/feather/blob/master/src/icon.js)
---
### `feather.replace([attrs])`
@ -276,7 +344,9 @@ All attributes on the placeholder element (i.e. `<i>`) will be copied to the `<s
[View Source](https://github.com/colebemis/feather/blob/master/src/replace.js)
### [DEPRECATED] `feather.toSvg(name, [attrs])`
---
### (DEPRECATED) `feather.toSvg(name, [attrs])`
> **Note:** `feather.toSvg()` is deprecated. Please use `feather.icons[name].toSvg()` instead.
@ -307,8 +377,6 @@ feather.toSvg('circle', { class: 'foo bar' })
## Roadmap
- [ ] Write icon design guidelines
- [ ] Track code coverage
- [ ] Use Prettier to enforce consistent code style
- [ ] Improve SVG accessibility
- [ ] Handle usage of custom icons
- [ ] Add usage examples
@ -331,5 +399,3 @@ Caught a mistake or want to contribute to the documentation? [Edit this page on
## License
Feather is licensed under the [MIT License](https://github.com/colebemis/feather/blob/master/LICENSE).
[👋](mailto:cole@colebemis.com)

6
bin/.eslintrc.json Normal file
View File

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

View File

@ -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>"`;

View File

@ -3,9 +3,9 @@ import buildIconsObject from '../build-icons-object';
const SVG_FILES = {
'icon1.svg':
'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="23" y1="1" x2="1" y2="23" /><line x1="1" y1="1" x2="23" y2="23" /></svg>',
'<svg\n xmlns="http://www.w3.org/2000/svg"\n width="24"\n height="24"\n viewBox="0 0 24 24"\n>\n <line x1="23" y1="1" x2="1" y2="23" />\n <line x1="1" y1="1" x2="23" y2="23" />\n</svg>',
'icon2.svg':
'<svg 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="11" /></svg>',
'<svg\n xmlns="http://www.w3.org/2000/svg"\n width="24"\n height="24"\n viewBox="0 0 24 24"\n>\n <circle cx="12" cy="12" r="11" />\n</svg>',
};
function getSvg(svgFile) {

View 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();
});

View File

@ -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)

View File

@ -1,11 +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 filenames.
* @param {Function} getSvg - A function that returns the contents of an SVG file.
* @param {Function} getSvg - A function that returns the contents of an SVG file given a filename.
* @returns {Object}
*/
function buildIconsObject(svgFiles, getSvg) {
@ -25,10 +25,11 @@ function buildIconsObject(svgFiles, getSvg) {
/**
* Get contents between opening and closing `<svg>` tags.
* @param {string} svg
* @returns {string}
*/
function getSvgContents(svg) {
const $ = cheerio.load(svg);
return $('svg').html();
return minify($('svg').html(), { collapseWhitespace: true });
}
export default buildIconsObject;

View 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
View 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));

View File

@ -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();

View File

@ -1,14 +1,25 @@
#!/bin/bash
# Process SVG files
./node_modules/.bin/babel-node bin/process-svgs.js
# Create dist directory
./node_modules/.bin/rimraf dist
mkdir dist
# Build icons.json
./node_modules/.bin/babel-node bin/build-icons-json.js
# Build SVG sprite
./node_modules/.bin/babel-node bin/build-sprite.js
# Create dist/icons directory
./node_modules/.bin/rimraf dist/icons
mkdir dist/icons
# Build SVG 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 JavaScript library
./node_modules/.bin/webpack --output-filename feather.js --mode development
./node_modules/.bin/webpack --output-filename feather.min.js --mode production

View File

@ -1,4 +1,3 @@
/* eslint-disable import/no-extraneous-dependencies */
import Svgo from 'svgo';
import cheerio from 'cheerio';
import { format } from 'prettier';

View File

@ -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)

36
bin/sync-algolia.js Normal file
View File

@ -0,0 +1,36 @@
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'
) {
console.log('Syncing Algolia records...');
syncAlgolia();
} else {
console.log('Skipped Algolia sync.');
}
function syncAlgolia() {
const client = algolia(ALGOLIA_APP_ID, process.env.ALGOLIA_ADMIN_KEY);
const index = client.initIndex('icons');
const records = Object.keys(icons).map(name => ({
name,
tags: tags[name] || [],
}));
index.clearIndex((err, content) => {
if (err) throw err;
console.log(content);
index.addObjects(records, (err, content) => {
if (err) throw err;
console.log(content);
});
});
}

8
commitlint.config.js Normal file
View File

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

15
icons/archive.svg Normal file
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<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

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<polyline points="8 12 12 16 16 12" />
<line x1="12" y1="8" x2="12" y2="16" />
</svg>

After

Width:  |  Height:  |  Size: 327 B

View File

@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="18" y1="6" x2="6" y2="18" />
<polyline points="15 18 6 18 6 9" />
<line x1="17" y1="7" x2="7" y2="17" />
<polyline points="17 17 7 17 7 7" />
</svg>

Before

Width:  |  Height:  |  Size: 288 B

After

Width:  |  Height:  |  Size: 288 B

View File

@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="6" y1="6" x2="18" y2="18" />
<polyline points="9 18 18 18 18 9" />
<line x1="7" y1="7" x2="17" y2="17" />
<polyline points="17 7 17 17 7 17" />
</svg>

Before

Width:  |  Height:  |  Size: 289 B

After

Width:  |  Height:  |  Size: 289 B

View File

@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="12" y1="4" x2="12" y2="20" />
<polyline points="18 14 12 20 6 14" />
<line x1="12" y1="5" x2="12" y2="19" />
<polyline points="19 12 12 19 5 12" />
</svg>

Before

Width:  |  Height:  |  Size: 291 B

After

Width:  |  Height:  |  Size: 291 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<polyline points="12 8 8 12 12 16" />
<line x1="16" y1="12" x2="8" y2="12" />
</svg>

After

Width:  |  Height:  |  Size: 326 B

View File

@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="20" y1="12" x2="4" y2="12" />
<polyline points="10 18 4 12 10 6" />
<line x1="19" y1="12" x2="5" y2="12" />
<polyline points="12 19 5 12 12 5" />
</svg>

Before

Width:  |  Height:  |  Size: 290 B

After

Width:  |  Height:  |  Size: 290 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<polyline points="12 16 16 12 12 8" />
<line x1="8" y1="12" x2="16" y2="12" />
</svg>

After

Width:  |  Height:  |  Size: 327 B

View File

@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="4" y1="12" x2="20" y2="12" />
<polyline points="14 6 20 12 14 18" />
<line x1="5" y1="12" x2="19" y2="12" />
<polyline points="12 5 19 12 12 19" />
</svg>

Before

Width:  |  Height:  |  Size: 291 B

After

Width:  |  Height:  |  Size: 291 B

15
icons/arrow-up-circle.svg Normal file
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<polyline points="16 12 12 8 8 12" />
<line x1="12" y1="16" x2="12" y2="8" />
</svg>

After

Width:  |  Height:  |  Size: 326 B

View File

@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="18" y1="18" x2="6" y2="6" />
<polyline points="15 6 6 6 6 15" />
<line x1="17" y1="17" x2="7" y2="7" />
<polyline points="7 17 7 7 17 7" />
</svg>

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 287 B

View File

@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="6" y1="18" x2="18" y2="6" />
<polyline points="9 6 18 6 18 15" />
<line x1="7" y1="17" x2="17" y2="7" />
<polyline points="7 7 17 7 17 17" />
</svg>

Before

Width:  |  Height:  |  Size: 288 B

After

Width:  |  Height:  |  Size: 288 B

View File

@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<line x1="12" y1="20" x2="12" y2="4" />
<polyline points="6 10 12 4 18 10" />
<line x1="12" y1="19" x2="12" y2="5" />
<polyline points="5 12 12 5 19 12" />
</svg>

Before

Width:  |  Height:  |  Size: 290 B

After

Width:  |  Height:  |  Size: 290 B

View File

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

Before

Width:  |  Height:  |  Size: 306 B

After

Width:  |  Height:  |  Size: 305 B

View File

@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<rect x="10" y="3" width="4" height="18" />
<rect x="18" y="8" width="4" height="13" />
<rect x="2" y="13" width="4" height="8" />
<line x1="18" y1="20" x2="18" y2="10" />
<line x1="12" y1="20" x2="12" y2="4" />
<line x1="6" y1="20" x2="6" y2="14" />
</svg>

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 334 B

View File

@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<rect x="18" y="3" width="4" height="18" />
<rect x="10" y="8" width="4" height="13" />
<rect x="2" y="13" width="4" height="8" />
<line x1="12" y1="20" x2="12" y2="10" />
<line x1="18" y1="20" x2="18" y2="4" />
<line x1="6" y1="20" x2="6" y2="16" />
</svg>

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 334 B

14
icons/book-open.svg Normal file
View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z" />
<path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z" />
</svg>

After

Width:  |  Height:  |  Size: 322 B

View File

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

View File

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

View File

@ -10,5 +10,5 @@
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<polyline points="12 6 12 12 15 15" />
<polyline points="12 6 12 12 16 14" />
</svg>

Before

Width:  |  Height:  |  Size: 285 B

After

Width:  |  Height:  |  Size: 285 B

14
icons/code.svg Normal file
View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="16 18 22 12 16 6" />
<polyline points="8 6 2 12 8 18" />
</svg>

After

Width:  |  Height:  |  Size: 287 B

15
icons/database.svg Normal file
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<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

14
icons/dollar-sign.svg Normal file
View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<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

View File

@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 17v3a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-3" />
<polyline points="8 12 12 16 16 12" />
<line x1="12" y1="2" x2="12" y2="16" />
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
<polyline points="7 10 12 15 17 10" />
<line x1="12" y1="15" x2="12" y2="3" />
</svg>

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 348 B

14
icons/folder-minus.svg Normal file
View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" />
<line x1="9" y1="14" x2="15" y2="14" />
</svg>

After

Width:  |  Height:  |  Size: 341 B

15
icons/folder-plus.svg Normal file
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z" />
<line x1="12" y1="11" x2="12" y2="17" />
<line x1="9" y1="14" x2="15" y2="14" />
</svg>

After

Width:  |  Height:  |  Size: 384 B

17
icons/gift.svg Normal file
View File

@ -0,0 +1,17 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<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
View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<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
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="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
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="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

View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<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

16
icons/hard-drive.svg Normal file
View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<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" />
</svg>

After

Width:  |  Height:  |  Size: 456 B

View File

@ -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" />
<path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" />
<line x1="12" y1="17" x2="12" y2="17" />
</svg>

Before

Width:  |  Height:  |  Size: 339 B

After

Width:  |  Height:  |  Size: 339 B

View File

@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="22 13 16 13 14 16 10 16 8 13 2 13" />
<path d="M5.47 5.19L2 13v5a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5l-3.47-7.81A2 2 0 0 0 16.7 4H7.3a2 2 0 0 0-1.83 1.19z" />
<polyline points="22 12 16 12 14 15 10 15 8 12 2 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" />
</svg>

Before

Width:  |  Height:  |  Size: 386 B

After

Width:  |  Height:  |  Size: 388 B

15
icons/linkedin.svg Normal file
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="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

View File

@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M14 22h5a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-5" />
<polyline points="11 16 15 12 11 8" />
<path d="M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" />
<polyline points="10 17 15 12 10 7" />
<line x1="15" y1="12" x2="3" y2="12" />
</svg>

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 348 B

View File

@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M10 22H5a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h5" />
<polyline points="17 16 21 12 17 8" />
<path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" />
<polyline points="16 17 21 12 16 7" />
<line x1="21" y1="12" x2="9" y2="12" />
</svg>

Before

Width:  |  Height:  |  Size: 347 B

After

Width:  |  Height:  |  Size: 346 B

View File

@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="2" />
<circle cx="20" cy="12" r="2" />
<circle cx="4" cy="12" r="2" />
<circle cx="12" cy="12" r="1" />
<circle cx="19" cy="12" r="1" />
<circle cx="5" cy="12" r="1" />
</svg>

Before

Width:  |  Height:  |  Size: 312 B

After

Width:  |  Height:  |  Size: 312 B

View File

@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="2" />
<circle cx="12" cy="4" r="2" />
<circle cx="12" cy="20" r="2" />
<circle cx="12" cy="12" r="1" />
<circle cx="12" cy="5" r="1" />
<circle cx="12" cy="19" r="1" />
</svg>

Before

Width:  |  Height:  |  Size: 312 B

After

Width:  |  Height:  |  Size: 312 B

15
icons/rss.svg Normal file
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M4 11a9 9 0 0 1 9 9" />
<path d="M4 4a16 16 0 0 1 16 16" />
<circle cx="5" cy="19" r="1" />
</svg>

After

Width:  |  Height:  |  Size: 315 B

View File

@ -9,6 +9,6 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="10.5" cy="10.5" r="7.5" />
<line x1="21" y1="21" x2="15.8" y2="15.8" />
<circle cx="11" cy="11" r="8" />
<line x1="21" y1="21" x2="16.65" y2="16.65" />
</svg>

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 292 B

14
icons/send.svg Normal file
View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<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

15
icons/shield-off.svg Normal file
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18" />
<path d="M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38" />
<line x1="1" y1="1" x2="23" y2="23" />
</svg>

After

Width:  |  Height:  |  Size: 385 B

View File

@ -9,5 +9,5 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 22s8-4 8-10V4l-8-2-8 2v8c0 6 8 10 8 10z" />
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" />
</svg>

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 267 B

15
icons/shopping-bag.svg Normal file
View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="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

View File

@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="8" cy="21" r="2" />
<circle cx="20" cy="21" r="2" />
<path d="M5.67 6H23l-1.68 8.39a2 2 0 0 1-2 1.61H8.75a2 2 0 0 1-2-1.74L5.23 2.74A2 2 0 0 0 3.25 1H1" />
<circle cx="9" cy="21" r="1" />
<circle cx="20" cy="21" r="1" />
<path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6" />
</svg>

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 356 B

14
icons/terminal.svg Normal file
View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="4 17 10 11 4 5" />
<line x1="12" y1="19" x2="20" y2="19" />
</svg>

After

Width:  |  Height:  |  Size: 290 B

16
icons/truck.svg Normal file
View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect x="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

View File

@ -9,7 +9,7 @@
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M3 17v3a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-3" />
<polyline points="16 6 12 2 8 6" />
<line x1="12" y1="2" x2="12" y2="16" />
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
<polyline points="17 8 12 3 7 8" />
<line x1="12" y1="3" x2="12" y2="15" />
</svg>

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 345 B

14
icons/youtube.svg Normal file
View File

@ -0,0 +1,14 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="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
View File

@ -0,0 +1,16 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<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

10547
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,54 +3,65 @@
"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",
"commitmsg": "validate-commit-msg",
"test": "jest --watch",
"test:coverage": "jest --coverage",
"cm": "git-cz",
"semantic-release": "semantic-release pre && npm publish && semantic-release post"
},
"dependencies": {
"classnames": "^2.2.5"
},
"devDependencies": {
"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",
"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-plugin-import": "^2.5.0",
"husky": "^0.13.4",
"jest": "^21.2.1",
"npm-run-all": "^4.1.2",
"parse5": "^3.0.2",
"prettier": "^1.8.2",
"rimraf": "^2.6.2",
"rsvp": "^3.6.0",
"semantic-release": "^6.3.6",
"svgo": "^0.7.2",
"validate-commit-msg": "^2.12.1",
"webpack": "^3.0.0"
"precommit": "lint-staged",
"commitmsg": "commitlint --edit"
},
"config": {
"commitizen": {
"path": "cz-conventional-changelog"
}
},
"jest": {
"collectCoverageFrom": [
"src/**/*.js"
]
},
"dependencies": {
"classnames": "^2.2.5",
"core-js": "^2.5.3"
},
"devDependencies": {
"@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-preset-env": "^1.7.0",
"babel-preset-stage-2": "^6.24.1",
"cheerio": "^1.0.0-rc.2",
"commitizen": "^2.9.6",
"cz-conventional-changelog": "^2.1.0",
"eslint": "^4.15.0",
"eslint-config-airbnb-base": "^12.1.0",
"eslint-config-prettier": "^2.9.0",
"eslint-plugin-import": "^2.5.0",
"eslint-plugin-prettier": "^2.5.0",
"html-minifier": "^3.5.8",
"husky": "^0.14.3",
"jest": "^21.2.1",
"lint-staged": "^6.0.0",
"npm-run-all": "^4.1.2",
"prettier": "^1.8.2",
"rimraf": "^2.6.2",
"semantic-release": "^12.2.2",
"svgo": "^0.7.2",
"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"

View 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."`;

View File

@ -1,5 +1,5 @@
/* eslint-env jest */
import feather from '../..';
import feather from '../index';
test('has correct properties', () => {
expect(feather).toHaveProperty('icons');

View 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();
});

View File

@ -1,7 +1,157 @@
{
"airplay": ["stream"],
"activity": ["pulse", "health", "action", "motion"],
"airplay": ["stream", "cast", "mirroring"],
"alert-circle": ["warning"],
"alert-octagon": ["warning"],
"alert-triangle": ["warning"],
"at-sign": ["mention"],
"award": ["achievement", "badge"],
"aperture": ["camera", "photo"],
"bell": ["alarm", "notification"],
"bell-off": ["alarm", "notification", "silent"],
"bluetooth": ["wireless"],
"book-open": ["read"],
"book": ["read", "dictionary", "booklet", "magazine"],
"bookmark": ["read", "clip", "marker", "tag"],
"briefcase": ["work", "bag", "baggage", "folder"],
"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"],
"command": ["keyboard", "cmd"],
"compass": ["navigation", "safari", "travel"],
"copy": ["clone", "duplicate"],
"corner-down-left": ["arrow"],
"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"],
"credit-card": ["purchase", "payment", "cc"],
"crop": ["photo", "image"],
"crosshair": ["aim", "target"],
"database": ["storage"],
"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"],
"external-link": ["outbound"],
"facebook": ["logo"],
"fast-forward": ["music"],
"film": ["movie", "video"],
"folder-minus": ["directory"],
"folder-plus": ["directory"],
"folder": ["directory"],
"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"],
"global": ["world", "browser", "language", "translate"],
"hard-drive": ["computer", "server"],
"hash": ["hashtag", "number", "pound"],
"headphones": ["music", "audio"],
"heart": ["like", "love"],
"help-circle": ["question mark"],
"home": ["house"],
"image": ["picture"],
"inbox": ["email"],
"instagram": ["logo", "camera"],
"life-bouy": ["help", "life ring", "support"],
"linkedin": ["logo"],
"lock": ["security", "password"],
"log-in": ["sign in", "arrow"],
"log-out": ["sign out", "arrow"],
"mail": ["email"],
"map-pin": ["location", "navigation", "travel", "marker"],
"map": ["location", "navigation", "travel"],
"maximize": ["fullscreen"],
"maximize-2": ["fullscreen", "arrows"],
"menu": ["bars", "navigation", "hamburger"],
"message-circle": ["comment", "chat"],
"message-square": ["comment", "chat"],
"mic-off": ["record"],
"mic": ["record"],
"minimize": ["exit fullscreen"],
"minimize-2": ["exit fullscreen", "arrows"],
"monitor": ["tv"],
"moon": ["dark", "night"],
"more-horizontal": ["ellipsis"],
"more-vertical": ["ellipsis"],
"move": ["arrows"],
"navigation": ["location", "travel"],
"navigation-2": ["location", "travel"],
"octagon": ["stop"],
"package": ["box"],
"paperclip": ["attachment"],
"pause": ["music", "stop"],
"pause-circle": ["music", "stop"],
"play": ["music", "start"],
"play-circle": ["music", "start"],
"plus": ["add", "new"],
"plus-circle": ["add", "new"],
"plus-square": ["add", "new"],
"pocket": ["logo", "save"],
"power": ["on", "off"],
"radio": ["signal"],
"rewind": ["music"],
"rss": ["feed", "subscribe"],
"save": ["floppy disk"],
"send": ["message", "mail", "paper airplane"],
"settings": ["cog", "edit", "gear", "preferences"],
"star": ["bookmark"],
"x": ["cancel", "close", "delete", "remove"]
"shield": ["security"],
"shield-off": ["security"],
"shopping-bag": ["ecommerce", "cart", "purchase", "store"],
"shopping-cart": ["ecommerce", "cart", "purchase", "store"],
"shuffle": ["music"],
"skip-back": ["music"],
"skip-forward": ["music"],
"slash": ["ban", "no"],
"sliders": ["settings", "controls"],
"speaker": ["music"],
"star": ["bookmark", "favorite", "like"],
"sun": ["brightness", "weather", "light"],
"sunrise": ["weather"],
"sunset": ["weather"],
"tag": ["label"],
"target": ["bullseye"],
"terminal": ["code", "command line"],
"thumbs-down": ["dislike", "bad"],
"thumbs-up": ["like", "good"],
"toggle-left": ["on", "off", "switch"],
"toggle-right": ["on", "off", "switch"],
"trash": ["garbage", "delete", "remove"],
"trash-2": ["garbage", "delete", "remove"],
"triangle": ["delta"],
"truck": ["delivery", "van", "shipping"],
"twitter": ["logo"],
"umbrella": ["rain", "weather"],
"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"],
"wind": ["weather", "air"],
"x-circle": ["cancel", "close", "delete", "remove", "times"],
"x-square": ["cancel", "close", "delete", "remove", "times"],
"x": ["cancel", "close", "delete", "remove", "times"],
"youtube": ["logo", "video", "play"],
"zap-off": ["flash", "camera", "lightning"],
"zap": ["flash", "camera", "lightning"]
}

View File

@ -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
View File

@ -0,0 +1,23 @@
const path = require('path');
module.exports = {
entry: ['core-js/fn/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/,
},
],
},
};