Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
ee36bff7c3 | |||
ac06ad8999 | |||
5d6c7d2184 | |||
998b2e9add | |||
0e70a99e8a | |||
ef3e69b327 | |||
71f502fc95 | |||
ae164db70f | |||
c089ee1f89 | |||
9b5dc81118 | |||
75068f6625 | |||
577494e969 | |||
704870bb12 | |||
8fbe71d45f | |||
1e43dcb17e | |||
6c7b365e4b |
1
.eslintignore
Normal file
@ -0,0 +1 @@
|
|||||||
|
dist
|
12
.eslintrc.json
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"extends": "airbnb-base",
|
||||||
|
"plugins": [
|
||||||
|
"import"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"no-use-before-define": "off",
|
||||||
|
"arrow-parens": ["error", "as-needed"],
|
||||||
|
"no-shadow": "off",
|
||||||
|
"no-console": ["error", { "allow": ["warn", "error"] }]
|
||||||
|
}
|
||||||
|
}
|
4
.gitignore
vendored
@ -1,7 +1,5 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
node_modules
|
node_modules
|
||||||
_site
|
dist
|
||||||
*.zip
|
|
||||||
manifest.json
|
|
||||||
sandbox
|
sandbox
|
||||||
stash
|
stash
|
||||||
|
@ -7,5 +7,7 @@ notifications:
|
|||||||
node_js: 6
|
node_js: 6
|
||||||
before_script:
|
before_script:
|
||||||
- npm prune
|
- npm prune
|
||||||
|
script:
|
||||||
|
- npm run all
|
||||||
after_success:
|
after_success:
|
||||||
- npm run semantic-release
|
- npm run semantic-release
|
||||||
|
238
CHANGELOG.md
@ -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, Don’t 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
|
|
4
Gemfile
@ -1,4 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
source "https://rubygems.org"
|
|
||||||
|
|
||||||
gem "jekyll"
|
|
47
Gemfile.lock
@ -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
|
|
31
Makefile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
src_files := src/*.js
|
||||||
|
src_dir := src
|
||||||
|
|
||||||
|
.PHONY: all lint build
|
||||||
|
|
||||||
|
all: lint build
|
||||||
|
|
||||||
|
lint: dist/icons.json
|
||||||
|
./node_modules/.bin/eslint .
|
||||||
|
|
||||||
|
build: dist/feather.js dist/feather.min.js dist/icons
|
||||||
|
|
||||||
|
node_modules:
|
||||||
|
npm install
|
||||||
|
|
||||||
|
dist:
|
||||||
|
mkdir dist
|
||||||
|
|
||||||
|
dist/icons.json: node_modules dist icons icons/*.svg
|
||||||
|
./node_modules/.bin/babel-node bin/build-json.js
|
||||||
|
|
||||||
|
dist/feather.js: dist/icons.json $(src_dir) $(src_files)
|
||||||
|
./node_modules/.bin/webpack --output-filename feather.js
|
||||||
|
|
||||||
|
dist/feather.min.js: dist/icons.json $(src_dir) $(src_files)
|
||||||
|
./node_modules/.bin/webpack --output-filename feather.min.js -p
|
||||||
|
|
||||||
|
dist/icons: dist/icons.json
|
||||||
|
rm -rf dist/icons
|
||||||
|
mkdir -p dist/icons
|
||||||
|
./node_modules/.bin/babel-node bin/build-svgs.js
|
@ -5,10 +5,13 @@
|
|||||||
|
|
||||||
Designed on a 24x24 grid with an emphasis on functionality, consistency and simplicity.
|
Designed on a 24x24 grid with an emphasis on functionality, consistency and simplicity.
|
||||||
|
|
||||||
Change Log
|
*Documentation coming soon*
|
||||||
|
|
||||||
|
Related Projects
|
||||||
---
|
---
|
||||||
|
|
||||||
See [CHANGELOG.md](https://github.com/colebemis/feather/blob/master/CHANGELOG.md)
|
- [angular-feather](https://github.com/michaelbazos/angular-feather) - Feather icons for Angular applications
|
||||||
|
- [react-feather](https://github.com/carmelopullara/react-feather) - Feather icons as React components
|
||||||
|
|
||||||
License
|
License
|
||||||
---
|
---
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
exclude:
|
|
||||||
- node_modules
|
|
||||||
- bin
|
|
||||||
- sandbox
|
|
||||||
- stash
|
|
@ -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>
|
|
@ -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 <3 by Cole Bemis</a>
|
|
||||||
</p>
|
|
||||||
</footer>
|
|
@ -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¤cy_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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
Before Width: | Height: | Size: 484 B |
Before Width: | Height: | Size: 36 KiB |
71
bin/build-json.js
Executable file
@ -0,0 +1,71 @@
|
|||||||
|
/**
|
||||||
|
* @file Builds `icons.json` from `icons` directory.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* eslint-disable import/no-extraneous-dependencies */
|
||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
import RSVP from 'rsvp';
|
||||||
|
import Svgo from 'svgo';
|
||||||
|
import parse5 from 'parse5';
|
||||||
|
|
||||||
|
const svgFiles = fs.readdirSync(path.resolve(__dirname, '../icons'))
|
||||||
|
.filter(file => path.extname(file) === '.svg');
|
||||||
|
|
||||||
|
buildIconsObject(svgFiles)
|
||||||
|
.then(icons => {
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.resolve(__dirname, '../dist/icons.json'),
|
||||||
|
JSON.stringify(icons),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build an icons object in the format: `{ <icon name>: <svg content> }`.
|
||||||
|
* @param {string[]} svgFiles - A list of file names.
|
||||||
|
* @returns {RSVP.Promise<Object>}
|
||||||
|
*/
|
||||||
|
function buildIconsObject(svgFiles) {
|
||||||
|
const icons = {};
|
||||||
|
|
||||||
|
svgFiles.forEach(svgFile => {
|
||||||
|
const svg = fs.readFileSync(path.resolve(__dirname, '../icons', svgFile), 'utf8');
|
||||||
|
const key = path.basename(svgFile, '.svg');
|
||||||
|
|
||||||
|
icons[key] = optimizeSvg(svg)
|
||||||
|
.then(optimizedSvg => getSvgContent(optimizedSvg));
|
||||||
|
});
|
||||||
|
|
||||||
|
return RSVP.hash(icons);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Optimize SVG with `svgo`.
|
||||||
|
* @param {string} svg - An SVG string.
|
||||||
|
* @returns {RSVP.Promise<string>}
|
||||||
|
*/
|
||||||
|
function optimizeSvg(svg) {
|
||||||
|
// configure svgo
|
||||||
|
const svgo = new Svgo({
|
||||||
|
plugins: [
|
||||||
|
{ convertShapeToPath: false },
|
||||||
|
{ mergePaths: false },
|
||||||
|
{ removeAttrs: { attrs: '(fill|stroke.*)' } },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
return new RSVP.Promise(resolve => {
|
||||||
|
svgo.optimize(svg, ({ data }) => resolve(data));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get content between opening and closing `<svg>` tags.
|
||||||
|
* @param {string} svg - An SVG string.
|
||||||
|
* @returns {string}
|
||||||
|
*/
|
||||||
|
function getSvgContent(svg) {
|
||||||
|
const fragment = parse5.parseFragment(svg);
|
||||||
|
const content = parse5.serialize(fragment.childNodes[0]);
|
||||||
|
return content;
|
||||||
|
}
|
13
bin/build-svgs.js
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/**
|
||||||
|
* @file Builds `dist/icons` directory.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
import { icons, toSvg } from '../src';
|
||||||
|
|
||||||
|
Object.keys(icons).forEach(icon => {
|
||||||
|
const svg = toSvg(icon);
|
||||||
|
|
||||||
|
fs.writeFileSync(path.resolve(__dirname, `../dist/icons/${icon}.svg`), svg);
|
||||||
|
});
|
@ -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/
|
|
18
examples/index.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Feather</title>
|
||||||
|
<script src="../dist/feather.min.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<i data-feather="eye"></i>
|
||||||
|
<i data-feather="heart"></i>
|
||||||
|
<i data-feather="feather"></i>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
feather.replace()
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Before Width: | Height: | Size: 238 B After Width: | Height: | Size: 238 B |
Before Width: | Height: | Size: 319 B After Width: | Height: | Size: 319 B |
Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 305 B |
Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 363 B |
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 373 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 303 B |
Before Width: | Height: | Size: 520 B After Width: | Height: | Size: 520 B |
Before Width: | Height: | Size: 352 B After Width: | Height: | Size: 352 B |
Before Width: | Height: | Size: 353 B After Width: | Height: | Size: 353 B |
Before Width: | Height: | Size: 266 B After Width: | Height: | Size: 266 B |
Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 266 B After Width: | Height: | Size: 266 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 352 B After Width: | Height: | Size: 352 B |
Before Width: | Height: | Size: 265 B After Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 281 B |
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 281 B |
Before Width: | Height: | Size: 501 B After Width: | Height: | Size: 501 B |
Before Width: | Height: | Size: 501 B After Width: | Height: | Size: 501 B |
Before Width: | Height: | Size: 552 B After Width: | Height: | Size: 552 B |
Before Width: | Height: | Size: 286 B After Width: | Height: | Size: 286 B |
Before Width: | Height: | Size: 334 B After Width: | Height: | Size: 334 B |
Before Width: | Height: | Size: 279 B After Width: | Height: | Size: 279 B |
Before Width: | Height: | Size: 253 B After Width: | Height: | Size: 253 B |
Before Width: | Height: | Size: 308 B After Width: | Height: | Size: 308 B |
Before Width: | Height: | Size: 247 B After Width: | Height: | Size: 247 B |
Before Width: | Height: | Size: 636 B After Width: | Height: | Size: 636 B |
Before Width: | Height: | Size: 301 B After Width: | Height: | Size: 301 B |
Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 367 B |
Before Width: | Height: | Size: 342 B After Width: | Height: | Size: 342 B |
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 315 B |
Before Width: | Height: | Size: 436 B After Width: | Height: | Size: 436 B |
Before Width: | Height: | Size: 273 B After Width: | Height: | Size: 273 B |
Before Width: | Height: | Size: 296 B After Width: | Height: | Size: 296 B |
Before Width: | Height: | Size: 221 B After Width: | Height: | Size: 221 B |
Before Width: | Height: | Size: 221 B After Width: | Height: | Size: 221 B |
Before Width: | Height: | Size: 222 B After Width: | Height: | Size: 222 B |
Before Width: | Height: | Size: 221 B After Width: | Height: | Size: 221 B |
Before Width: | Height: | Size: 222 B After Width: | Height: | Size: 222 B |
Before Width: | Height: | Size: 353 B After Width: | Height: | Size: 353 B |
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 354 B |
Before Width: | Height: | Size: 353 B After Width: | Height: | Size: 353 B |
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 354 B |
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 402 B |
Before Width: | Height: | Size: 218 B After Width: | Height: | Size: 218 B |
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 329 B |
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 260 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 383 B After Width: | Height: | Size: 383 B |
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 329 B |
Before Width: | Height: | Size: 643 B After Width: | Height: | Size: 643 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 243 B After Width: | Height: | Size: 243 B |
Before Width: | Height: | Size: 792 B After Width: | Height: | Size: 792 B |
Before Width: | Height: | Size: 382 B After Width: | Height: | Size: 382 B |
Before Width: | Height: | Size: 387 B After Width: | Height: | Size: 387 B |
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 354 B |
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 354 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 354 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 351 B |
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 354 B |
Before Width: | Height: | Size: 623 B After Width: | Height: | Size: 623 B |
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 375 B |
Before Width: | Height: | Size: 390 B After Width: | Height: | Size: 390 B |
Before Width: | Height: | Size: 334 B After Width: | Height: | Size: 334 B |
Before Width: | Height: | Size: 254 B After Width: | Height: | Size: 254 B |
Before Width: | Height: | Size: 335 B After Width: | Height: | Size: 335 B |
Before Width: | Height: | Size: 324 B After Width: | Height: | Size: 324 B |