ember-font-awesome
An ember-cli addon for using
Font Awesome icons in Ember
applications.
WARNING: Please verify that you are reading the README corresponding with
the version of ember-font-awesome
you are using.
Table of Contents
Ember Version Compatibility
Please consult the table to check which version of ember-font-awesome
you
should use:
Addon version | Ember version | Addon name |
---|
>= 2.0.0 , < 3.0.0 | >= 2.3.0 | ember-font-awesome |
>= 1.0.0 , < 2.0.0 | >= 1.11.0 | ember-cli-font-awesome |
>= 0.1.0 , < 1.0.0 | >= 1.13.0 | ember-cli-font-awesome |
0.0.9 | < 1.11.0 | ember-cli-font-awesome |
Installing the Add-on
In your application's directory:
$ ember install ember-font-awesome
Using the Add-on
Use the component in your Handlebars templates:
{{fa-icon "camera"}}
This will render:
<i class="fa fa-camera"></i>
To see which icons are available please check the
complete list of Font Awesome icons
The Font Awesome examples
illustrate the various options and their effects. It should be fairly simple to
map these options to their {{fa-icon}}
counterparts.
:sos: Looking for Help?
- :warning: Bug reports: If your bug hasn't been reported yet, please open an issue. Try to pick a short but descriptive title. Make sure you're using the latest version of ember-font-awesome. In the issue body, try to provide exact steps for reproduction, ideally with example code. If you can't, please include any and all error messages, as many details as possible and exact information on which Ember.js / ember-cli version and browser / OS you're using.
- Slack: We're happy to help you in our #e-font-awesome Slack channel! You can create an Ember Community Slack account here for free.
Larger Icons
{{fa-icon "star" size="lg"}}
{{fa-icon "star" size=2}}
{{fa-icon "star" size=3}}
{{fa-icon "star" size=4}}
{{fa-icon "star" size=5}}
Fixed Width Icons
<div class="list-group">
<a class="list-group-item" href="#">
{{fa-icon "home" fixedWidth=true}} Home
</a>
<a class="list-group-item" href="#">
{{fa-icon "book" fixedWidth=true}} Library
</a>
</div>
List Icons
{{#fa-list as |l|}}
<li>{{l.fa-icon "check-square"}}List icons</li>
<li>{{l.fa-icon "check-square"}}can be used</li>
<li>{{l.fa-icon "spinner" spin=true}}as bullets</li>
<li>{{l.fa-icon "square"}}in lists</li>
{{/fa-list}}
Bordered & Pulled Icons
<p>
{{fa-icon "quote-left" pull="left" border=true}}
...tomorrow we will run faster, stretch out our arms farther...
And then one fine morning— So we beat on, boats against the
current, borne back ceaselessly into the past.
</p>
Animated Icons
{{fa-icon "spinner" spin=true}}
{{fa-icon "circle-o-notch" spin=true}}
{{fa-icon "refresh" spin=true}}
{{fa-icon "cog" spin=true}}
{{fa-icon "spinner" pulse=true}}
Rotate & Flipped
{{fa-icon "shield"}} normal
{{fa-icon "shield" rotate=90}} rotated 90 degrees
{{fa-icon "shield" rotate=180}} rotated 180 degrees
{{fa-icon "shield" rotate=270}} rotated 270 degrees
{{fa-icon "shield" flip="horizontal"}} flipped horizontal
{{fa-icon "shield" flip="vertical"}} flipped vertical
Stacked Icons
{{#fa-stack size="lg" as |s|}}
{{s.stack-2x "square-o"}}
{{s.stack-1x "twitter"}}
{{/fa-stack}}
{{#fa-stack size="lg" as |s|}}
{{s.stack-2x "circle"}}
{{s.stack-1x "flag" inverse=true}}
{{/fa-stack}}
{{#fa-stack size="lg" as |s|}}
{{s.stack-2x "square"}}
{{s.stack-1x "terminal" inverse=true}}
{{/fa-stack}}
{{#fa-stack size="lg" as |s|}}
{{s.stack-2x "square"}}
{{s.stack-1x "terminal" class="text-danger"}}
{{/fa-stack}}
The aria-hidden
Attribute
To better support accessibility (i.e. screen readers), the helper adds the
aria-hidden
attribute by default:
{{fa-icon "star"}}
Results in:
<i class="fa fa-star" aria-hidden="true"></i>
To remove the aria-hidden
attribute:
{{fa-icon "star" ariaHidden=false}}
The aria-label
Attribute
To better support accessibility (i.e. screen readers), the helper adds an
optional aria-label
attribute:
{{fa-icon "star" ariaLabel="Click Me"}}
Results in:
<i class="fa fa-star" aria-label="Click Me"></i>
Actions
You can respond to actions on the icon by passing on action handlers:
{{fa-icon "star" click=(action "myClickHandler")}}
Tag Name
Use tagName
to control the generated markup:
{{fa-icon "star" tagName="span"}}
Results in:
<span class="fa fa-star"></span>
Custom Class Names
{{fa-icon "bicycle" class="my-custom-class"}}
Results in:
<i class="fa fa-bicycle my-custom-class"></i>
Title attribute
{{fa-icon "edit" title="Edit the item"}}
Results in:
<i class="fa fa-edit" title="Edit the item"></i>
Customize with Sass/Scss or Less
If you are using the ember-cli-sass or ember-cli-less addon, you can opt-in to
the Scss or Less version of font-awesome by adding the following configuration
in ember-cli-build.js
:
var app = new EmberApp({
'ember-font-awesome': {
useScss: true,
useLess: true
}
});
Then in your app.scss
or app.less
:
@import "font-awesome";
Excluding assets
You can configure the addon to not import any assets (CSS or font files) by adding
the following configuration in ember-cli-build.js
:
var app = new EmberApp({
'ember-font-awesome': {
includeFontAwesomeAssets: false
}
});
You can also configure the addon to only import specific font formats by adding
the following configuration in ember-cli-build.js
:
Default: ['eot', 'svg', 'ttf', 'woff', 'woff2', 'otf']
var app = new EmberApp({
'ember-font-awesome': {
fontFormats: ['woff', 'woff2']
}
});
In addition, you can configure the addon to exclude the font file assets entirely by adding
the following configuration in ember-cli-build.js
:
var app = new EmberApp({
'ember-font-awesome': {
includeFontFiles: false
}
});
Output path
You can change the directory where the fonts are copied to using the following configuration:
var app = new EmberApp({
'ember-font-awesome': {
fontsOutput: "/some/dir/"
}
});
This is useful when you change the output paths for your ember app. By default, ember-font-awesome copies the font files to /dist/fonts
. The addon produces a css file to load the fonts that will be included in the vendor css file and expect to find the fonts at ../fonts
. If the css directory is not at the same level as the fonts directory, the site won't load the fonts.
For example, moving the css directory to /dist/assets/css
would require the fonts directory to be /dist/assets/fonts
and the configuration would look like this:
var app = new EmberApp({
outputPaths: {
app: {
css: {
app: "/assets/css/app-name.css",
},
js: "/assets/js/app-name.js",
},
vendor: {
css: "/assets/css/vendor.css",
js: "/assets/js/vendor.js",
},
},
'ember-font-awesome': {
fontsOutput: "/assets/fonts"
}
});
License
Public Domain