Feather
What is Feather?
Feather is a collection of simply beautiful open source icons. Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency and readability.
feathericons.com
npm install feather-icons
Table of Contents
Quick Start
Start with this CodePen Template to begin prototyping with Feather in the browser.
Or copy and paste the following code snippet into a blank html
file.
<!DOCTYPE html>
<html lang="en">
<title></title>
<script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script>
<body>
<i data-feather="circle"></i>
<script>
feather.replace()
</script>
</body>
</html>
Usage
At its core, Feather is a collection of 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
The following are additional ways you can use Feather.
Client-side
1. Install
Note: If you intend to use Feather with a CDN, you can skip this installation step.
Install with npm.
npm install feather-icons --save
Or just copy feather.js
or 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. These files are located in the dist
directory of the npm package.
<script src="path/to/dist/feather.js"></script>
Or load the script from a CDN provider.
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script src="https://unpkg.com/feather-icons/dist/feather.min.js"></script>
After including the script, feather
will be available as a global variable.
3. Use
To use an icon on your page, add a data-feather
attribute with the icon name to an element.
<i data-feather="circle"></i>
See the complete list of icons at feathericons.com.
4. Replace
Call the feather.replace()
method.
<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 for more information about feather.replace()
.
Node
1. Install
Install with npm.
npm install feather-icons --save
2. Require
const feather = require('feather-icons')
3. Use
feather.icons.x
feather.icons.x.toSvg()
feather.icons.x.toSvg({ class: 'foo bar', 'stroke-width': 1, color: 'red' })
See the API Reference for more information about the available properties and methods of the feather
object.
API Reference
feather.icons
An object with information about every icon.
Usage
feather.icons.x
feather.icons.x.toString()
View Source
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. |
Usage
feather.icons.circle.toSvg()
feather.icons.circle.toSvg({ 'stroke-width': 1 })
feather.icons.circle.toSvg({ class: 'foo bar' })
View Source
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:
<i data-feather="circle"></i>
<script>
feather.replace()
</script>
You can pass feather.replace()
an attrs
object:
<i data-feather="circle"></i>
<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:
<i data-feather="circle" id="my-circle" class="foo bar" stroke-width="1"></i>
<script>
feather.replace()
</script>
View Source
[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
feather.toSvg('circle')
feather.toSvg('circle', { 'stroke-width': 1 })
feather.toSvg('circle', { class: 'foo bar' })
View Source
Roadmap
Contributing
For more info on how to contribute please see the contribution guidelines.
Caught a mistake or want to contribute to the documentation? Edit this page on Github
Related Projects
License
Feather is licensed under the MIT License.
👋