I would like to add Font-awesome to my Ionic2 app and I already found these instructions, but they are based on the old ionic.config.js and now I don’t get the clue how to do it with the new ionic.config.json.
Can anybody provide hint or has an example for this?
Or is there a guide in general howto extend with the new ionic.config.json?
@tim: in this post you mention it’s easier to extend now Could you provide an example? I’m currently using beta22.
Thank you very much @tim! It helped me a lot to understand how it is all glued together
There are another two questions about the usage coming up:
1)
Using ionicons works like a charm: <ion-icon name="home"></ion-icon>
But how the following does not <ion-icon name="fa-bullhorn"></ion-icon>
because it transformed to <ion-icon aria-label="fa bullhorn" class="ion-ios-fa-bullhorn" role="img" name="fa-bullhorn"></ion-icon>
and the style class ion-ios-fa-bullhorn does not exist.
If I change it to <ion-icon aria-label="fa bullhorn" class="fa fa-bullhorn" role="img" name="fa-bullhorn"></ion-icon> the icon appears (in FF webdev console, just for trying).
I could also use a <span class="fa fa-bullhorn"></span>, or define specific css classes, or create an <fa-icon> component, but is this the desired way?
=> How should these custom icons be used correctly in ionic2?
In the app/theme/app.core.scss file: @import "font-awesome"; -> complains about the file is not found
@import "../../node_modules/font-awesome/scss/font-awesome";-> seems fine
Maybe there is still something missing in the configuration? Fonts and stuff is copied fine by the gulp task.
Hmm, if Sass isn’t finding the import then there’s something wrong with the includePaths.
I wrote the gulp task from memory and didn’t test it so it’s possible there’s a typo here, but it’s not immediately apparent what it might be. Sometimes I forget to include sassOptions, is that it? Or did you leave your old ‘sass’ task in in addition to the new one? Just some ideas.
Regarding the ion-icon, I believe that component makes some assumptions about using Ionicons. @brandyshea any ideas on custom icons? I would maybe just set the fa class on an <i> or <span>.
So ion-icon is an Ionic component. You pass the name of the icon you want to use in the name property, and then it adds the class for that icon based on the mode. For example, if you pass heart:
<ion-icon name="heart"></ion-icon>
on iOS it would be:
<ion-icon class="ion-ios-heart"></ion-icon>
and for material design mode it would be:
<ion-icon class="ion-md-heart"></ion-icon>
So when you pass fa-* to the name property it will perform all of our logic. You should be able to use the i element for font awesome, like:
I remove the existing sass task and just replaced it with your example. The issues with the includePath were Webstorm specific. I am still trying different IDEs to find my favorite one.
I used the provide example with the <i> element. That’s alright
This has been a very helpful thread. I’m trying to implement the weather-icons font in my project. But I’m stuck because, unlike font-awesome, they use less. there is a pre-compiled css file however. Any clue how I can include it with the sass gulp task?
Good Morning. I tried to carry out this step by step, but my project can not find the the Font Awesome files. He can find it in the folder node_modules still on the app icon appears only a square, as if he had not caught the family source.
In the ‘ionic serves’ it shows the message that failed to find or the file is unreadable.
Well that could have an official topic on the use of custom fonts, it is something that everyone uses.
@daniel_rf121 Have you added @import "font-awesome" in your app/theme/app.core.scss file? Have you updated both your sass and files tasks in gulpfile.js as explained in the following comment? Also make sure that you’re using them correctly, e.g.:
Yes, I performed all the steps. Font Awesome installed via NPM, then I added the codes in gulpfile and used the @import in the core. still displaying the error:
Starting ‘sass’…
app/theme/app.core.scss
Error: File to import not found or unreadable: font-awesome
Parent style sheet: /Users/danielrodrigues/Projects/funlife-ionic/app/theme/app.core.scss
on line 10 of app/theme/app.core.scss
@daniel_rf121 Actually after looking closer at this, you should use only @import "font-awesome"; if you configured both sass and files tasks properly in gulpfile.js. Also note that you should not just add the code from the comment to your gulpfile.js - you have to replace the existing tasks with the same names (or delete these). And check if the FontAwesome font files are copied to your www/build/fonts folder.
Good evening my friend, I managed to make it work. I removed the lines you listed, deleted the build folder, then run the ionic serve command again. The gulp could import sources to the folder just right. Now I will try to make the import of icomoon.
I followed the same steps, but using other type of font (google maven), which is local under my app folder. I then copied all the fonts with the gulp task to www/build/fonts.
In the app.variable I tried to set $font-family-base to have my custom font name.
When I run the app and debug it, my custom font is there, but current font-family is still the old one.
@tim@brandyshea
the projects, generated with the new ionic-cli 2.1, using ionic 2.0.0-rc.0 do not have gulpfile.js anymore. What is the way to add custom fonts and icons now?
I must use both font-awesome and other custom fonts in my application, so it’s really important to know how to do it with the new build process.
Thanks!
Edit: I found out that everything from the src/assets/ directory is already configured to be copied in the www/assets/ directory, so custom fonts can be just dropped there and referenced from the scss file.
Still wondering how to use fonts and scss from external libraries, installed with npm, like font-awesome.