Compare commits

..

239 Commits

Author SHA1 Message Date
8f658193d2 feat: Add hexagon icon 2019-03-30 10:22:17 -07:00
7b8ff33195 feat: Update package icon 2019-03-30 10:22:17 -07:00
8263c2231e feat: Update box icon 2019-03-30 10:22:17 -07:00
74aafa1b4e feat: Add codesandbox icon 2019-03-30 10:22:17 -07:00
f27d8b0f8e feat: Add columns icon 2019-03-29 17:19:46 -07:00
5d42ac8398 Merge pull request #549 from feathericons/add-x-octagon
Add x-octagon icon
2019-02-26 10:50:35 -08:00
7a17d77409 Merge pull request #548 from feathericons/add-figma-icon
Add Figma icon
2019-02-26 10:49:40 -08:00
6cdea52f27 feat: Add x-octagon icon 2019-02-25 22:35:05 -08:00
eb106953ae feat: Add figma icon 2019-02-25 22:29:30 -08:00
e6e6679596 docs: Update donate link 2019-02-24 23:26:09 -08:00
cd27b8869e build(deps): [security] bump extend from 3.0.1 to 3.0.2
Bumps [extend](https://github.com/justmoon/node-extend) from 3.0.1 to 3.0.2. **This update includes security fixes.**
- [Release notes](https://github.com/justmoon/node-extend/releases)
- [Changelog](https://github.com/justmoon/node-extend/blob/master/CHANGELOG.md)
- [Commits](https://github.com/justmoon/node-extend/compare/v3.0.1...v3.0.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-07 13:13:49 -08:00
3e4918be74 feat: Update bell-off icon 2019-02-04 20:00:41 -08:00
1889a0ab79 feat: Update bell icon 2019-02-04 20:00:41 -08:00
cbee1d1114 Merge pull request #526 from feathericons/update-edit-icons
Update edit icons
2019-02-01 15:15:38 -08:00
ee26fe5e7a docs: Update description 2019-01-30 22:21:10 -08:00
09d2db7775 feat: Update edit-3 icon 2019-01-30 18:46:34 -08:00
8f62ded210 feat: Update edit-2 icon 2019-01-30 18:46:19 -08:00
51bb931937 feat: Update edit icon 2019-01-30 18:33:25 -08:00
0a130b77e0 feat: Add pen-tool icon (#522) 2019-01-29 10:14:03 -08:00
55c84ac47c feat: Add mouse-pointer icon 2019-01-28 20:29:10 -08:00
c440ee596c Merge pull request #525 from feathericons/update-music
feat: Update `music` icon
2019-01-28 20:04:25 -08:00
51faf5738e feat: Update music icon 2019-01-27 23:18:32 -08:00
fff965df89 fix: Add tags for search icon 2019-01-27 20:31:14 -08:00
9b1fca0ded feat: Update slack icon 2019-01-24 22:33:23 -08:00
8da557c9dd feat: Add key icon 2019-01-24 22:20:34 -08:00
48735d20a0 docs: Add Figma section to README 2019-01-24 21:58:59 -08:00
fcd491c8a2 feat: Add smile, frown and meh emoji icons 2018-12-23 01:59:36 -08:00
70b1a47b56 build(deps): [security] bump https-proxy-agent from 2.1.1 to 2.2.1 (#497)
Bumps [https-proxy-agent](https://github.com/TooTallNate/node-https-proxy-agent) from 2.1.1 to 2.2.1. **This update includes security fixes.**
- [Release notes](https://github.com/TooTallNate/node-https-proxy-agent/releases)
- [Changelog](https://github.com/TooTallNate/node-https-proxy-agent/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-https-proxy-agent/compare/2.1.1...2.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-26 20:41:20 -08:00
fcd9e44681 build(deps): [security] bump merge from 1.2.0 to 1.2.1 (#498)
Bumps [merge](https://github.com/yeikos/js.merge) from 1.2.0 to 1.2.1. **This update includes security fixes.**
- [Release notes](https://github.com/yeikos/js.merge/releases)
- [Commits](https://github.com/yeikos/js.merge/compare/v1.2.0...v1.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-26 20:41:08 -08:00
0bbc3f61dc build(deps): [security] bump sshpk from 1.13.1 to 1.15.2 (#499)
Bumps [sshpk](https://github.com/joyent/node-sshpk) from 1.13.1 to 1.15.2. **This update includes security fixes.**
- [Release notes](https://github.com/joyent/node-sshpk/releases)
- [Commits](https://github.com/joyent/node-sshpk/compare/v1.13.1...v1.15.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-26 20:40:44 -08:00
ac50475a45 build(deps): [security] bump stringstream from 0.0.5 to 0.0.6 (#500)
Bumps [stringstream](https://github.com/mhart/StringStream) from 0.0.5 to 0.0.6. **This update includes security fixes.**
- [Release notes](https://github.com/mhart/StringStream/releases)
- [Commits](https://github.com/mhart/StringStream/compare/v0.0.5...v0.0.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-26 20:40:26 -08:00
e105533ac1 docs: Add php-feather to related projects 2018-10-30 12:34:57 -07:00
e5d9dffac4 feat: Add trello icon 2018-10-29 13:08:31 -07:00
eced6f7414 docs: Update example 2018-10-28 10:06:21 -07:00
f949102033 fix: Fix feather icon 2018-10-28 09:40:41 -07:00
61803f2129 feat: Add coffee icon 2018-10-27 21:05:59 -07:00
8aec53b331 docs: Update issue templates
* Create icon_request.md

* Delete ISSUE_TEMPLATE.md

* Create bug_report.md

* creating an example bug report

* Using same bug report from issue template
2018-07-18 18:34:53 -07:00
156c0919c9 docs: Add info about SVG attributes 2018-05-21 14:04:00 -07:00
179b482c03 build: Use promises in algolia script 2018-05-18 19:08:46 -07:00
a23698d5be build: Initialize tmp index settings 2018-05-18 18:08:14 -07:00
fb057f1f94 build: Initialize algolia settings in script 2018-05-18 18:06:19 -07:00
21bb9fe6d6 build: Only copy settings to tmp index 2018-05-18 17:55:24 -07:00
c63f478ff5 chore: Remove console.log 2018-05-18 17:47:05 -07:00
b424fa779d build: Add logs to sync-algolia script 2018-05-18 17:41:39 -07:00
01698dea84 Merge branch 'master' of https://github.com/feathericons/feather 2018-05-18 17:23:29 -07:00
ae8e149850 build: Refactor algolia script to reindex data atomically 2018-05-18 17:23:23 -07:00
9f49fd9560 Merge pull request #415 from feathericons/dependabot/npm_and_yarn/core-js-2.5.6
build: bump core-js from 2.5.3 to 2.5.6
2018-05-18 17:01:29 -07:00
742f452232 docs: Update README.md 2018-05-18 16:59:19 -07:00
962870d51c chore: Fix security vulnerabilities 2018-05-18 16:41:56 -07:00
ba1b12a712 Merge branch 'master' of https://github.com/feathericons/feather 2018-05-18 16:35:01 -07:00
5045ec3b78 chore: Add comment to sync-algolia script 2018-05-18 16:34:56 -07:00
0d65b5761b build: Use npx in build script 2018-05-18 16:34:26 -07:00
fcf9aec131 docs: Update unpkg links 2018-05-18 16:20:16 -07:00
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
9b157b399d build: bump core-js from 2.5.3 to 2.5.6
Bumps [core-js](https://github.com/zloirock/core-js) from 2.5.3 to 2.5.6.
- [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.3...v2.5.6)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-05-18 19:28:17 +00: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
f243624fbd feat: Update API
BREAKING CHANGE: 

Each icon in the `feather.icons` object is now an `Icon` object with a `name`, `contents`, `tags` and `attrs` property.
```js
/* BEFORE */
feather.icons.x
// '<line ... /><line ... />'

/* AFTER */
feather.icons.x
// {
//    name: 'x',
//    contents: '<line ... /><line ... />`,
//    tags: ['cancel', 'close', 'delete', 'remove'],
//    attrs: {
//      class: 'feather feather-x',
//      xmlns: 'http://www.w3.org/2000/svg',
//      width: 24,
//      height: 24,
//      viewBox: '0 0 24 24',
//      fill: 'none',
//      stroke: 'currentColor',
//      'stroke-width': 2,
//      'stroke-linecap': 'round',
//      'stroke-linejoin': 'round',
//    }
// }
```

`feather.toSvg()` has been deprecated in favor of `feather.icons[name].toSvg()`:
```js
/* BEFORE */
feather.toSvg('x')

/* AFTER */
feather.icons.x.toSvg()
```

`feather.replace()` now copies all attributes on the placeholder element (i.e. `<i>`) to the `<svg>` tag instead of just `class` and `id`:

```html
<i data-feather="circle" id="my-circle" class="foo bar" stroke-width="1"></i>
<!--
<i> will be replaced with:
<svg id="my-circle" class="feather feather-circle foo bar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>
-->
```
2017-11-18 20:00:16 -08:00
0dc2bf5c9d build: Add process-svgs script (#216) 2017-11-13 08:13:11 -08:00
f2b7e1f313 docs: Add sketch-feather to "Related Projects" section (#219) 2017-11-12 16:19:48 -08:00
bfd736270f chore: Generate package-lock.json 2017-11-09 19:23:22 -08:00
8aa917f826 docs: Update issue template 2017-11-09 17:35:04 -08:00
b953307227 Update index.html 2017-11-09 12:42:32 -08:00
3a3df71e3f refactor(replace): Replace console.error with throw new Error 2017-11-04 21:09:13 -07:00
0d342b33a5 docs: Add elm-feather to "Related projects" section (#214) 2017-11-01 11:36:32 -07:00
e80f80524a feat: Updated replace() to pass id from placeholder element (#193) 2017-10-11 14:05:10 -07:00
b7d22291f1 docs: Change cdnjs badge style 2017-10-08 22:53:05 -07:00
5e62cab89a docs: Add CDNJS version badge in README.md (#196)
The badge shows the latest lib version on CDNJS and gives a link of it.
2017-10-08 22:52:04 -07:00
5dd498cc61 docs: Add jsDelivr link 2017-09-26 10:51:47 -07:00
29e96b1109 docs: Add accessibility to roadmap 2017-09-22 19:55:30 -07:00
bc83bcc74b docs: Add a clarification inside the example webpage. (#180)
As discussed in issue #176, the package has to be built using
$ npm run build
or
$ npm run all
before being able to use it.
2017-09-06 08:30:09 -07:00
950ac1c2d0 Update README.md 2017-08-26 11:36:47 -07:00
d2ea75622b docs: Update CDN link 2017-08-10 11:37:46 -07:00
8926f5fb9b fix: Fix adding unwanted class 'null' 2017-08-04 15:33:11 -07:00
f72c5dd215 docs: Add npm install instructions 2017-08-01 12:18:57 -07:00
43dbba3a0a docs: Fix npm link 2017-08-01 12:15:56 -07:00
dc2410025f docs: Update README.md 2017-08-01 12:10:26 -07:00
365b5d13d5 docs: Add Travis badge to README.md 2017-08-01 11:36:04 -07:00
2ac73d6167 fix: Fix bold icon 2017-07-30 00:41:06 -07:00
002a66a4d8 feat: Add underline icon 2017-07-30 00:33:21 -07:00
fb5d432961 feat: Add shopping-cart icon
Closes #20, closes #79, closes #159
2017-07-30 00:32:33 -07:00
bad88ba24a feat: Add italic icon 2017-07-30 00:31:10 -07:00
36f5fa7a89 feat: Add help-circle icon
Closes #15, closes #158
2017-07-30 00:30:37 -07:00
62a96677a9 feat: Add crop icon
Closes  #152
2017-07-30 00:28:57 -07:00
3faad03c83 feat: Add bold icon
Closes #145
2017-07-30 00:27:42 -07:00
906cfb38d5 docs: Add CONTRIBUTING.md 2017-07-18 11:29:56 -07:00
20911c216b Update README.md 2017-07-14 11:28:32 -07:00
73bc017bdd feat: Move paths in wifi icon down 1px 2017-07-11 01:39:03 -07:00
f41cd6e738 feat: Add wifi-off icon
Closes #125
2017-07-11 01:39:03 -07:00
29ff9df0f5 feat: Add tv icon
Closes #106
2017-07-11 01:39:03 -07:00
aa43d5ad00 feat: Add paperclip icon
Closes #85, Closes #131
2017-07-11 01:39:03 -07:00
e95e1b2701 feat: Add sliders icon
Closes #126
2017-07-11 01:39:03 -07:00
dfc03cd5a7 feat: Add gitlab icon
Closes #119
2017-07-11 01:39:03 -07:00
e0216c8ccb docs: Add vue-feather-icon link 2017-07-05 13:43:12 -07:00
d2192ca571 docs: Add "Related Projects" to Table of Contents 2017-07-03 16:24:55 -07:00
996d620893 docs: Update README.md 2017-07-03 16:22:40 -07:00
ee36bff7c3 ci: Update .travis.yml 2017-07-03 15:53:34 -07:00
ac06ad8999 docs: Update README 2017-07-03 15:53:34 -07:00
5d6c7d2184 build: Add script to build dist/icons directory 2017-07-03 15:53:34 -07:00
998b2e9add chore: Add lint script 2017-07-03 15:53:34 -07:00
0e70a99e8a docs: Add usage example 2017-07-03 15:53:34 -07:00
ef3e69b327 build: Build js files with webpack 2017-07-03 15:53:34 -07:00
71f502fc95 feat: Add JavaScript library
Add JavaScript library that includes an `icons` object, `toSvg` function and `replace` function.
2017-07-03 15:53:34 -07:00
ae164db70f build: Add script to build dist/icons.json 2017-07-03 15:53:34 -07:00
c089ee1f89 chore: Set up ESLint 2017-07-03 15:53:34 -07:00
9b5dc81118 feat: Flatten icons directory
Remove icon categories to simplify npm package.

BREAKING CHANGE: The path to individual SVG files has changed. All SVGs now live on the same level
inside the `icons` directory. For example, `icons/core/home.svg` is now `icons/home.svg`.
2017-07-03 15:53:34 -07:00
75068f6625 chore: Update package.json 2017-07-03 15:53:34 -07:00
577494e969 refactor: Move ISSUE_TEMPLATE.md into .github directory 2017-07-03 15:53:34 -07:00
704870bb12 refactor: Remove website code from master branch 2017-07-03 15:53:34 -07:00
8fbe71d45f docs: Update README.md 2017-07-01 14:49:45 -07:00
1e43dcb17e docs: Add react-feather link 2017-07-01 14:47:59 -07:00
6c7b365e4b docs: Add Related Projects section 2017-07-01 11:06:11 -07:00
574 changed files with 21405 additions and 1590 deletions

13
.babelrc Normal file
View File

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

2
.eslintignore Normal file
View File

@ -0,0 +1,2 @@
dist
coverage

17
.eslintrc.json Normal file
View File

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

67
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View 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
View 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:

5
.gitignore vendored
View File

@ -1,7 +1,6 @@
.DS_Store
node_modules
_site
*.zip
manifest.json
dist
sandbox
stash
coverage

3
.lintstagedrc Normal file
View File

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

View File

@ -4,8 +4,16 @@ cache:
- node_modules
notifications:
email: false
node_js: 6
node_js: 8
before_script:
- npm prune
script:
- 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

View File

@ -1,238 +0,0 @@
# Change Log
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
## v2.1.0 (2017-05-30)
### Added
- Add icon categories (Thanks @wappsdotgr)
- Display icon names to allow for `⌘ + F` search
<details>
<summary>Add 37 icons</summary>
- `arrow-down-left`
- `arrow-down-right`
- `arrow-up-left`
- `arrow-up-right`
- `battery-charging`
- `cast`
- `chevrons-down`
- `chevrons-left`
- `chevrons-right`
- `chevrons-up`
- `cloud-drizzle`
- `cloud-lightning`
- `cloud-rain`
- `cloud-snow`
- `codepen`
- `compass`
- `edit-2`
- `edit-3`
- `link-2`
- `list`
- `log-in`
- `log-out`
- `navigation-2`
- `package`
- `repeat`
- `share`
- `slack`
- `speaker`
- `trending-down`
- `trending-up`
- `type`
- `user-check`
- `user-x`
- `voicemail`
- `volume`
- `volume-1`
- `volume-2`
</details>
### Changed
- Redesign project site
<details>
<summary>Change 9 icons</summary>
- `bar-chart`
- `bar-chart-2`
- `droplet`
- `grid`
- `twitter`
- `user-minus`
- `user-plus`
- `user`
- `volume-x`
</details>
## v2.0.0 (2017-05-23)
### Added
<details>
<summary>Add 63 icons</summary>
- `activity`
- `alert-circle`
- `alert-octagon`
- `alert-triangle`
- `aperture`
- `at-sign`
- `award`
- `bell-off`
- `bluetooth`
- `calendar`
- `camera-off`
- `chevron-down`
- `chevron-left`
- `chevron-right`
- `chevron-up`
- `chrome`
- `circle`
- `cloud-off`
- `comment-circle`
- `cpu`
- `edit`
- `eye-off`
- `facebook`
- `feather`
- `female`
- `filter`
- `hash`
- `headphones`
- `home`
- `info`
- `instagram`
- `male`
- `map-pin`
- `mic-off`
- `more-vertical`
- `music`
- `octagon`
- `phone`
- `phone-call`
- `phone-forwarded`
- `phone-incoming`
- `phone-missed`
- `phone-off`
- `phone-outgoing`
- `pocket`
- `radio`
- `refresh-ccw`
- `rotate-ccw`
- `scissors`
- `square`
- `sunrise`
- `sunset`
- `thumbs-down`
- `thumbs-up`
- `toggle-right`
- `trash-2`
- `triangle`
- `twitter`
- `user-minus`
- `user-plus`
- `video-off`
- `wind`
- `zap`
</details>
### Changed
- Redesign project website
- Use SVG `stroke` instead of `fill`. Read more about the benefits of SVG `stroke`:
- [SVG Stroke FTW!](http://danklammer.com/articles/svg-stroke-ftw/)
<details>
<summary>Change 66 icons</summary>
- `align-center`
- `anchor`
- `arrow-down`
- `arrow-left`
- `arrow-right`
- `arrow-up`
- `bar-chart`
- `bar-chart-2`
- `battery`
- `bell`
- `book`
- `bookmark`
- `box`
- `briefcase`
- `camera`
- `check`
- `check-circle`
- `check-square`
- `clipboard`
- `cloud`
- `comment-square`
- `download`
- `download-cloud`
- `droplet`
- `external-link`
- `fast-forward`
- `file`
- `flag`
- `folder`
- `heart`
- `image`
- `inbox`
- `layers`
- `layout`
- `lock`
- `mail`
- `maximize`
- `maximize-2`
- `minimize`
- `minimize-2`
- `minus`
- `moon`
- `move`
- `pause`
- `play`
- `plus`
- `printer`
- `search`
- `settings`
- `share`
- `shuffle`
- `skip-back`
- `skip-forward`
- `star`
- `rewind`
- `tag`
- `unlock`
- `upload`
- `upload-cloud`
- `user`
- `video`
- `watch`
- `wifi`
- `x`
- `zoom-in`
- `zoom-out`
</details>
### Removed
- Remove PSD, CSH and Webfont formats in favor of SVG. Read more about the benefits of SVG for icons:
- [Inline SVG vs Icon Fonts [CAGEMATCH]](https://css-tricks.com/icon-fonts-vs-svg/)
- [Seriously, Dont Use Icon Fonts](https://cloudfour.com/thinks/seriously-dont-use-icon-fonts/)
- [Ten reasons we switched from icon font to SVG](http://ianfeather.co.uk/ten-reasons-we-switched-from-an-icon-font-to-svg/)
## v1.1.0 (2014-04-27)
### Added
- Add 30 new icons
- Add CSH, SVG and Webfont formats
### Changed
- Change all PSD icon layers to vector shapes
## v1.0.0 (2013-11-27)
- Initial release

72
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,72 @@
# Contribution Guidelines
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
The following is a set of guidelines for contributing to Feather. Feel free to propose changes to this document in a pull request.
## Pull Requests
> **Note:** At the moment we are not accepting pull requests containing _**icons**_. The best way to contribute an icon is to create an issue with a screenshot and link to an SVG of your icon.
Pull requests for new features, bug fixes, etc. are often appreciated. Please checkout the [project roadmap](https://github.com/colebemis/feather#roadmap) and raise an issue to discuss any of the items on the list.
**Working on your first Pull Request?** You can learn how from this *free* series
[How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/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 wont make apparent.
- __Document your pull request__. Explain your fix, link to the relevant issue, add screenshots when adding new icons.
- __Make sure the target of your pull request is the relevant branch__. Most of bugfix or new feature should go to the `master` branch.
- __Include only related work__. If your pull request has unrelated commit, it won't be accepted.
## Icon Requests
Before creating an icon request, please search to see if someone has requested the icon already. If there is an open request, please add a :+1:.
If the icon has not already been requested, [create an issue](https://github.com/colebemis/feather/issues/new?title=Icon%20Request:) with a title of `Icon request: <icon name>` and add as much information as possible.
## Bug Reports
Before reporting an issue, please search to see if someone has filed a similar issue before. If there is already an open issue, please add a :+1: and/or leave a comment with additional information.
When creating a new issue make sure to include the following:
- Version of `Feather` in use. Are you running from source/master? Are you using a released build? Which release?
- Your environment. What is your operating system? 32 or 64 bits?
- Step to reproduce. Even if the step is only one line change, __include it!__ Include the actual result and what you expected.
- Any message or error you get in the console, if you do.
- A screenshot of any visual bug.
Here is what a great bug report would look like:
```
## Prerequisites
Version: Release v3.1.0
Running from: Import using webpack
Operating system: Mac OSX
Bits: 64 bits
## Step to reproduce
- Import `check` icon
- Add to a React component/view
- Run the react app
- Notice that the `check` isn't rendering correctly which seems a encoding problem
### Actual behavior:
- Import `check` icon
- Add to a React component/view
- Run the react app
- Check is displayed with correct encoding (e.g UTF-8)
## Any message or error
No console output
...
## Resources
No resources
...
```

View File

@ -1,4 +0,0 @@
# frozen_string_literal: true
source "https://rubygems.org"
gem "jekyll"

View File

@ -1,47 +0,0 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.5.1)
public_suffix (~> 2.0, >= 2.0.2)
colorator (1.1.0)
ffi (1.9.18)
forwardable-extended (2.6.0)
jekyll (3.4.3)
addressable (~> 2.4)
colorator (~> 1.0)
jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 1.1)
kramdown (~> 1.3)
liquid (~> 3.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (~> 1.7)
safe_yaml (~> 1.0)
jekyll-sass-converter (1.5.0)
sass (~> 3.4)
jekyll-watch (1.5.0)
listen (~> 3.0, < 3.1)
kramdown (1.13.2)
liquid (3.0.6)
listen (3.0.8)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
mercenary (0.3.6)
pathutil (0.14.0)
forwardable-extended (~> 2.6)
public_suffix (2.0.5)
rb-fsevent (0.9.8)
rb-inotify (0.9.8)
ffi (>= 0.5.0)
rouge (1.11.1)
safe_yaml (1.0.4)
sass (3.4.23)
PLATFORMS
ruby
DEPENDENCIES
jekyll
BUNDLED WITH
1.14.5

View File

@ -1,6 +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.

417
README.md
View File

@ -1,16 +1,417 @@
[Feather](https://feathericons.com)
===
# Feather
### Simply beautiful open source icons
[![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)
[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://www.paypal.me/colebemis/5)
Designed on a 24x24 grid with an emphasis on functionality, consistency and simplicity.
## 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 usability.
https://feathericons.com
```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 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)
* [Contributing](#contributing)
* [Related Projects](#related-projects)
* [License](#license)
## Quick Start
Start with this [CodePen Template](https://codepen.io/pen?template=WOJZdM) to begin prototyping with Feather in the browser.
Or copy and paste the following code snippet into a blank `html` file.
```html
<!DOCTYPE html>
<html lang="en">
<title></title>
<script src="https://unpkg.com/feather-icons"></script>
<body>
<!-- example icon -->
<i data-feather="circle"></i>
<script>
feather.replace()
</script>
</body>
</html>
```
## Usage
At its core, Feather is a collection of [SVG](https://svgontheweb.com/#svg) files. This means that you can use Feather icons in all the same ways you can use SVGs (e.g. `img`, `background-image`, `inline`, `object`, `embed`, `iframe`). Here's a helpful article detailing the many ways SVGs can be used on the web: [SVG on the Web Implementation Options](https://svgontheweb.com/#implementation)
The following are additional ways you can use Feather.
### Client-side JavaScript
#### 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.js`](https://unpkg.com/feather-icons/dist/feather.js) or [`feather.min.js`](https://unpkg.com/feather-icons/dist/feather.min.js) into your project directory. You don't need both `feather.js` and `feather.min.js`.
#### 2. Include
Include `feather.js` or `feather.min.js` with a `<script>` tag:
```html
<script src="path/to/dist/feather.js"></script>
```
> **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>
```
After including the script, `feather` will be available as a global variable.
#### 3. Use
To use an icon on your page, add a `data-feather` attribute with the icon name to an element:
```html
<i data-feather="circle"></i>
```
See the complete list of icons at [feathericons.com](https://feathericons.com).
#### 4. Replace
Call the `feather.replace()` method:
```html
<script>
feather.replace()
</script>
```
All elements that have a `data-feather` attribute will be replaced with SVG markup corresponding to their `data-feather` attribute value. See the [API Reference](#api-reference) for more information about `feather.replace()`.
### Node
#### 1. Install
Install with [npm](https://docs.npmjs.com/getting-started/what-is-npm):
```shell
npm install feather-icons --save
```
#### 2. Require
```js
const feather = require('feather-icons')
```
#### 3. Use
```js
feather.icons.x
// {
// name: 'x',
// contents: '<line ... /><line ... />`,
// tags: ['cancel', 'close', 'delete', 'remove'],
// attrs: {
// class: 'feather feather-x',
// xmlns: 'http://www.w3.org/2000/svg',
// width: 24,
// height: 24,
// viewBox: '0 0 24 24',
// fill: 'none',
// stroke: 'currentColor',
// 'stroke-width': 2,
// 'stroke-linecap': 'round',
// 'stroke-linejoin': 'round',
// },
// toSvg: [Function],
// }
feather.icons.x.toSvg()
// <svg class="feather feather-x" ...><line ... /><line ... /></svg>
feather.icons.x.toSvg({ class: 'foo bar', 'stroke-width': 1, color: 'red' })
// <svg class="feather feather-x foo bar" stroke-width="1" color="red" ...><line ... /><line ... /></svg>
```
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 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>
```
### 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`
An object with data about every icon.
#### Usage
```js
feather.icons.x
// {
// name: 'x',
// contents: '<line ... /><line ... />',
// tags: ['cancel', 'close', 'delete', 'remove'],
// attrs: {
// class: 'feather feather-x',
// xmlns: 'http://www.w3.org/2000/svg',
// width: 24,
// height: 24,
// viewBox: '0 0 24 24',
// fill: 'none',
// stroke: 'currentColor',
// 'stroke-width': 2,
// 'stroke-linecap': 'round',
// 'stroke-linejoin': 'round',
// },
// toSvg: [Function],
// }
feather.icons.x.toString()
// '<line ... /><line ... />'
```
> **Note:** `x` in the above example can be replaced with any valid icon name. See the complete list of icon names at [feathericons.com](https://feathericons.com). Icons with multi-word names (e.g. `arrow-right`) **cannot** be accessed using dot notation (e.g. `feather.icons.x`). Instead, use bracket notation (e.g. `feather.icons['arrow-right']`).
[View Source](https://github.com/colebemis/feather/blob/master/src/icons.js)
Change Log
---
See [CHANGELOG.md](https://github.com/colebemis/feather/blob/master/CHANGELOG.md)
### `feather.icons[name].toSvg([attrs])`
Returns an SVG string.
#### Parameters
| Name | Type | Description |
| --------- | ------ | ----------- |
| `attrs` (optional) | Object | Key-value pairs in the `attrs` object will be mapped to HTML attributes on the `<svg>` tag (e.g. `{ foo: 'bar' }` maps to `foo="bar"`). All default attributes on the `<svg>` tag can be overridden with the `attrs` object. |
> **Hint:** You might find these SVG attributes helpful for manipulating icons:
> * [`color`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/color)
> * [`width`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/width)
> * [`height`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/height)
> * [`stroke-width`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-width)
> * [`stroke-linecap`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linecap)
> * [`stroke-linejoin`](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-linejoin)
#### Usage
```js
feather.icons.circle.toSvg()
// '<svg class="feather feather-circle" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>'
feather.icons.circle.toSvg({ 'stroke-width': 1 })
// '<svg class="feather feather-circle" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>'
feather.icons.circle.toSvg({ class: 'foo bar' })
// '<svg class="feather feather-circle foo bar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>'
```
[View Source](https://github.com/colebemis/feather/blob/master/src/icon.js)
License
---
Feather is licensed under the [MIT License](http://opensource.org/licenses/MIT).
### `feather.replace([attrs])`
Replaces all elements that have a `data-feather` attribute with SVG markup corresponding to the element's `data-feather` attribute value.
#### Parameters
| Name | Type | Description |
| ---------- | ------ | ----------- |
| `attrs` (optional) | Object | Key-value pairs in the `attrs` object will be mapped to HTML attributes on the `<svg>` tag (e.g. `{ foo: 'bar' }` maps to `foo="bar"`). All default attributes on the `<svg>` tag can be overridden with the `attrs` object. |
#### Usage
> **Note:** `feather.replace()` only works in a browser environment.
Simple usage:
```html
<i data-feather="circle"></i>
<!--
<i> will be replaced with:
<svg class="feather feather-circle" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>
-->
<script>
feather.replace()
</script>
```
You can pass `feather.replace()` an `attrs` object:
```html
<i data-feather="circle"></i>
<!--
<i> will be replaced with:
<svg class="feather feather-circle foo bar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>
-->
<script>
feather.replace({ class: 'foo bar', 'stroke-width': 1 })
</script>
```
All attributes on the placeholder element (i.e. `<i>`) will be copied to the `<svg>` tag:
```html
<i data-feather="circle" id="my-circle" class="foo bar" stroke-width="1"></i>
<!--
<i> will be replaced with:
<svg id="my-circle" class="feather feather-circle foo bar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>
-->
<script>
feather.replace()
</script>
```
[View Source](https://github.com/colebemis/feather/blob/master/src/replace.js)
---
### (DEPRECATED) `feather.toSvg(name, [attrs])`
> **Note:** `feather.toSvg()` is deprecated. Please use `feather.icons[name].toSvg()` instead.
Returns an SVG string.
#### Parameters
| Name | Type | Description |
| --------- | ------ | ----------- |
| `name` | string | Icon name |
| `attrs` (optional) | Object | Key-value pairs in the `attrs` object will be mapped to HTML attributes on the `<svg>` tag (e.g. `{ foo: 'bar' }` maps to `foo="bar"`). All default attributes on the `<svg>` tag can be overridden with the `attrs` object. |
#### Usage
```js
feather.toSvg('circle')
// '<svg class="feather feather-circle" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>'
feather.toSvg('circle', { 'stroke-width': 1 })
// '<svg class="feather feather-circle" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>'
feather.toSvg('circle', { class: 'foo bar' })
// '<svg class="feather feather-circle foo bar" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle></svg>'
```
[View Source](https://github.com/colebemis/feather/blob/master/src/to-svg.js)
## Roadmap
- [ ] Write icon design guidelines
- [ ] 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).
Caught a mistake or want to contribute to the documentation? [Edit this page on Github](https://github.com/colebemis/feather/blob/master/README.md)
## Related Projects
- [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
- [php-feather](https://github.com/Pixelrobin/php-feather) - Feather icons as a PHP Library
## License
Feather is licensed under the [MIT License](https://github.com/colebemis/feather/blob/master/LICENSE).

View File

@ -1,5 +0,0 @@
exclude:
- node_modules
- bin
- sandbox
- stash

View File

@ -1,11 +0,0 @@
<div class="pv4">
<h2 class="mt0 mb4 f6 ttu tracked normal">{{ include.category | replace: '-', ' '}}</h2>
<ul class="icon-grid mv0 pl0 list">
{% capture category_path %}icons/{{ include.category }}{% endcapture %}
{% for icon in site.static_files %}
{% if icon.path contains category_path %}
{% include icon.html icon=icon %}
{% endif %}
{% endfor %}
</ul>
</div>

View File

@ -1,13 +0,0 @@
<footer class="flex flex-column items-center pt5-ns pb5">
<ul class="flex flex-column flex-row-l justify-center w-80 mv0 pl0 list">
{% for link in include.links %}
<li class="mh3-l pv3 pv0-l f5 bb b--black-10 bn-l">
<a class="lh-copy color-inherit no-underline dim" href="{{ link.url }}" target="_blank">{{ link.title }}</a>
</li>
{% endfor %}
</ul>
<p class="mt5 mb2 lh-copy black-90 dim">
<a class="no-underline color-inherit" href="http://colebemis.com" target="_blank">Made with &lt;3 by Cole Bemis</a>
</p>
</footer>

View File

@ -1,11 +0,0 @@
<header class="pv3 bb b--black-10">
<div class="w-80 center flex justify-between items-center">
<h1 class="mv0 normal f3 lh-copy black-90">Feather</h1>
<ul class="list mv0 pl0 flex">
<li class="dn dib-ns"><a class="no-underline color-inherit dim" href="https://twitter.com/intent/tweet?text=Feather%20-%20Simply%20beautiful%20open%20source%20icons%20by%20%40colebemis%20https://feathericons.com" target="_blank">Tweet</a></li>
<li class="dn dib-ns ml4"><a class="no-underline color-inherit dim" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=G6CPFZ6PQRZW8&lc=US&item_name=Feather&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted" target="_blank">Donate</a></li>
<li class="ml4"><a class="no-underline color-inherit dim" href="https://github.com/colebemis/feather" target="_blank">GitHub</a></li>
</ul>
</div>
</header>

View File

@ -1,10 +0,0 @@
<div class="flex flex-column items-center w-80 mw8 pt5 pt6-ns center">
<h2 class="mt0 mb4 f2 fw3 tc lh-title black-90">Simply beautiful open source icons</h2>
<a
class="button white bg-accent dim br2"
href="feather.zip"
download
onclick="ga('send', 'event', 'download', 'click', 'all');">
Download
</a>
</div>

View File

@ -1,10 +0,0 @@
<li>
<a
href="{{ include.icon.path }}"
class="flex flex-row items-center dib pa3 br2 no-underline dark-gray bg-near-white bg-animate hover-bg-light-gray"
download
onclick="ga('send', 'event', 'download', 'click', '{{ include.icon.basename }}');">
<span class="svg flex-none lh-none">{% include_relative {{ include.icon.path }} %}</span>
<span class="ml3 lh-copy f6 tc black-60 ellipse">{{ include.icon.basename }}</span>
</a>
</li>

View File

@ -1,10 +0,0 @@
<div class="w-80 center pv5">
{% include category.html category="core" %}
{% include category.html category="media-controls" %}
{% include category.html category="communication" %}
{% include category.html category="photo-and-video" %}
{% include category.html category="location" %}
{% include category.html category="weather" %}
{% include category.html category="arrows" %}
{% include category.html category="logos" %}
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

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

View File

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

@ -0,0 +1,26 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`processes SVG correctly 1`] = `
"<svg
xmlns=\\"http://www.w3.org/2000/svg\\"
width=\\"24\\"
height=\\"24\\"
viewBox=\\"0 0 24 24\\"
fill=\\"none\\"
stroke=\\"currentColor\\"
stroke-width=\\"2\\"
stroke-linecap=\\"round\\"
stroke-linejoin=\\"round\\"
>
<line x1=\\"23\\" y1=\\"1\\" x2=\\"1\\" y2=\\"23\\" />
<line x1=\\"1\\" y1=\\"1\\" x2=\\"23\\" y2=\\"23\\" />
</svg>
"
`;
exports[`rejects when passed unparsable SVG string 1`] = `
[Error: Error in parsing SVG: Unclosed root tag
Line: 0
Column: 10
Char: ]
`;

View File

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

View File

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

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

19
bin/build-icons-json.js Normal file
View File

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

35
bin/build-icons-object.js Normal file
View File

@ -0,0 +1,35 @@
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 given a filename.
* @returns {Object}
*/
function buildIconsObject(svgFiles, getSvg) {
return svgFiles
.map(svgFile => {
const name = path.basename(svgFile, '.svg');
const svg = getSvg(svgFile);
const contents = getSvgContents(svg);
return { name, contents };
})
.reduce((icons, icon) => {
icons[icon.name] = icon.contents;
return icons;
}, {});
}
/**
* Get contents between opening and closing `<svg>` tags.
* @param {string} svg
* @returns {string}
*/
function getSvgContents(svg) {
const $ = cheerio.load(svg);
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));

13
bin/build-svgs.js Normal file
View File

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

View File

@ -1,7 +0,0 @@
#!/usr/bin/env bash
# find and store current version number
version=$(grep '"version"' package.json | cut -d '"' -f4)
# compress 'icons' directory into feather-[version].zip
zip -r feather.zip ./icons/

25
bin/build.sh Executable file
View File

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

58
bin/process-svg.js Normal file
View File

@ -0,0 +1,58 @@
import Svgo from 'svgo';
import cheerio from 'cheerio';
import { format } from 'prettier';
import DEFAULT_ATTRS from '../src/default-attrs.json';
/**
* Process SVG string.
* @param {string} svg - An SVG string.
* @param {Promise<string>}
*/
function processSvg(svg) {
return (
optimize(svg)
.then(setAttrs)
.then(format)
// remove semicolon inserted by prettier
// because prettier thinks it's formatting JSX not HTML
.then(svg => svg.replace(/;/g, ''))
);
}
/**
* Optimize SVG with `svgo`.
* @param {string} svg - An SVG string.
* @returns {Promise<string>}
*/
function optimize(svg) {
const svgo = new Svgo({
plugins: [
{ convertShapeToPath: false },
{ mergePaths: false },
{ removeAttrs: { attrs: '(fill|stroke.*)' } },
{ removeTitle: true },
],
});
return new Promise(resolve => {
svgo.optimize(svg, ({ data }) => resolve(data));
});
}
/**
* Set default attibutes on SVG.
* @param {string} svg - An SVG string.
* @returns {string}
*/
function setAttrs(svg) {
const $ = cheerio.load(svg);
Object.keys(DEFAULT_ATTRS).forEach(key =>
$('svg').attr(key, DEFAULT_ATTRS[key]),
);
return $('body').html();
}
export default processSvg;

18
bin/process-svgs.js Normal file
View File

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

73
bin/sync-algolia.js Normal file
View 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);
});
});
}

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],
},
};

17
examples/index.html Normal file
View File

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

13
icons/activity.svg Normal file
View File

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

After

Width:  |  Height:  |  Size: 264 B

14
icons/airplay.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="M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1" />
<polygon points="12 15 17 21 7 21 12 15" />
</svg>

After

Width:  |  Height:  |  Size: 344 B

15
icons/alert-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" />
<line x1="12" y1="8" x2="12" y2="12" />
<line x1="12" y1="16" x2="12" y2="16" />
</svg>

After

Width:  |  Height:  |  Size: 329 B

15
icons/alert-octagon.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"
>
<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" />
</svg>

After

Width:  |  Height:  |  Size: 387 B

15
icons/alert-triangle.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="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" />
</svg>

After

Width:  |  Height:  |  Size: 397 B

16
icons/align-center.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="18" y1="10" x2="6" y2="10" />
<line x1="21" y1="6" x2="3" y2="6" />
<line x1="21" y1="14" x2="3" y2="14" />
<line x1="18" y1="18" x2="6" y2="18" />
</svg>

After

Width:  |  Height:  |  Size: 374 B

16
icons/align-justify.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="21" y1="10" x2="3" y2="10" />
<line x1="21" y1="6" x2="3" y2="6" />
<line x1="21" y1="14" x2="3" y2="14" />
<line x1="21" y1="18" x2="3" y2="18" />
</svg>

After

Width:  |  Height:  |  Size: 374 B

16
icons/align-left.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="17" y1="10" x2="3" y2="10" />
<line x1="21" y1="6" x2="3" y2="6" />
<line x1="21" y1="14" x2="3" y2="14" />
<line x1="17" y1="18" x2="3" y2="18" />
</svg>

After

Width:  |  Height:  |  Size: 374 B

16
icons/align-right.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="21" y1="10" x2="7" y2="10" />
<line x1="21" y1="6" x2="3" y2="6" />
<line x1="21" y1="14" x2="3" y2="14" />
<line x1="21" y1="18" x2="7" y2="18" />
</svg>

After

Width:  |  Height:  |  Size: 374 B

15
icons/anchor.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="5" r="3" />
<line x1="12" y1="22" x2="12" y2="8" />
<path d="M5 12H2a10 10 0 0 0 20 0h-3" />
</svg>

After

Width:  |  Height:  |  Size: 327 B

19
icons/aperture.svg Normal file
View File

@ -0,0 +1,19 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<line x1="14.31" y1="8" x2="20.05" y2="17.94" />
<line x1="9.69" y1="8" x2="21.17" y2="8" />
<line x1="7.38" y1="12" x2="13.12" y2="2.06" />
<line x1="9.69" y1="16" x2="3.95" y2="6.06" />
<line x1="14.31" y1="16" x2="2.83" y2="16" />
<line x1="16.62" y1="12" x2="10.88" y2="21.94" />
</svg>

After

Width:  |  Height:  |  Size: 540 B

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

14
icons/arrow-down-left.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="17" y1="7" x2="7" y2="17" />
<polyline points="17 17 7 17 7 7" />
</svg>

After

Width:  |  Height:  |  Size: 288 B

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="7" y1="7" x2="17" y2="17" />
<polyline points="17 7 17 17 7 17" />
</svg>

After

Width:  |  Height:  |  Size: 289 B

14
icons/arrow-down.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="5" x2="12" y2="19" />
<polyline points="19 12 12 19 5 12" />
</svg>

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

14
icons/arrow-left.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="19" y1="12" x2="5" y2="12" />
<polyline points="12 19 5 12 12 5" />
</svg>

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

14
icons/arrow-right.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="5" y1="12" x2="19" y2="12" />
<polyline points="12 5 19 12 12 19" />
</svg>

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

14
icons/arrow-up-left.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="17" y1="17" x2="7" y2="7" />
<polyline points="7 17 7 7 17 7" />
</svg>

After

Width:  |  Height:  |  Size: 287 B

14
icons/arrow-up-right.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="7" y1="17" x2="17" y2="7" />
<polyline points="7 7 17 7 17 17" />
</svg>

After

Width:  |  Height:  |  Size: 288 B

14
icons/arrow-up.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="19" x2="12" y2="5" />
<polyline points="5 12 12 5 19 12" />
</svg>

After

Width:  |  Height:  |  Size: 290 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<line x1="18" y1="6" x2="6" y2="18" fill="none" stroke="#000" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/>
<polyline points="15 18 6 18 6 9" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 352 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<line x1="6" y1="6" x2="18" y2="18" fill="none" stroke="#000" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/>
<polyline points="9 18 18 18 18 9" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 353 B

View File

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

Before

Width:  |  Height:  |  Size: 266 B

View File

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

Before

Width:  |  Height:  |  Size: 265 B

View File

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

Before

Width:  |  Height:  |  Size: 266 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<line x1="18" y1="18" x2="6" y2="6" fill="none" stroke="#000" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/>
<polyline points="15 6 6 6 6 15" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 351 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<line x1="6" y1="18" x2="18" y2="6" fill="none" stroke="#000" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2"/>
<polyline points="9 6 18 6 18 15" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 352 B

View File

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

Before

Width:  |  Height:  |  Size: 265 B

View File

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="6 9 12 15 18 9"/>
</svg>

Before

Width:  |  Height:  |  Size: 221 B

View File

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="15 18 9 12 15 6"/>
</svg>

Before

Width:  |  Height:  |  Size: 222 B

View File

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="9 18 15 12 9 6"/>
</svg>

Before

Width:  |  Height:  |  Size: 221 B

View File

@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="18 15 12 9 6 15"/>
</svg>

Before

Width:  |  Height:  |  Size: 222 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="7 13 12 18 17 13" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<polyline points="7 6 12 11 17 6" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 353 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="11 17 6 12 11 7" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<polyline points="18 17 13 12 18 7" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 354 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="13 17 18 12 13 7" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<polyline points="6 17 11 12 6 7" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 353 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="17 11 12 6 7 11" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<polyline points="17 18 12 13 7 18" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 354 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="9 10 4 15 9 20" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<path d="M20 4v7a4 4 0 0 1-4 4H4" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 351 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="15 10 20 15 15 20" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<path d="M4 4v7a4 4 0 0 0 4 4h12" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 354 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="14 15 9 20 4 15" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<path d="M20 4h-7a4 4 0 0 0-4 4v12" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 354 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="14 9 9 4 4 9" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<path d="M20 20h-7a4 4 0 0 1-4-4V4" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 351 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="10 15 15 20 20 15" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<path d="M4 4h7a4 4 0 0 1 4 4v12" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 354 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="10 9 15 4 20 9" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<path d="M4 20h7a4 4 0 0 0 4-4V4" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 351 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="9 14 4 9 9 4" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<path d="M20 20v-7a4 4 0 0 0-4-4H4" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 351 B

View File

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<polyline points="15 14 20 9 15 4" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
<path d="M4 20v-7a4 4 0 0 1 4-4h12" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 354 B

14
icons/at-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"
>
<circle cx="12" cy="12" r="4" />
<path d="M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94" />
</svg>

After

Width:  |  Height:  |  Size: 305 B

14
icons/award.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"
>
<circle cx="12" cy="8" r="7" />
<polyline points="8.21 13.89 7 23 12 20 17 23 15.79 13.88" />
</svg>

After

Width:  |  Height:  |  Size: 306 B

15
icons/bar-chart-2.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"
>
<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>

After

Width:  |  Height:  |  Size: 334 B

15
icons/bar-chart.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"
>
<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>

After

Width:  |  Height:  |  Size: 334 B

View File

@ -0,0 +1,15 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19" />
<line x1="23" y1="13" x2="23" y2="11" />
<polyline points="11 6 7 12 13 12 9 18" />
</svg>

After

Width:  |  Height:  |  Size: 397 B

14
icons/battery.svg Normal file
View File

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

After

Width:  |  Height:  |  Size: 311 B

17
icons/bell-off.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"
>
<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>

After

Width:  |  Height:  |  Size: 438 B

14
icons/bell.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="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>

After

Width:  |  Height:  |  Size: 309 B

13
icons/bluetooth.svg Normal file
View File

@ -0,0 +1,13 @@
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5" />
</svg>

After

Width:  |  Height:  |  Size: 279 B

14
icons/bold.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="M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z" />
<path d="M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z" />
</svg>

After

Width:  |  Height:  |  Size: 315 B

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