I am using bootstrap-sass and the font-awesome ( https://github.com/littlebtc/font-awesome-sass-rails) gems. I would like to override the bootstrap font setting from that of font-awesome.
From font-awesome's site I can override the bootstrap defaults, if I just import if after bootstrap's import.
@import 'bootstrap';
@import 'font-awesome';
I have done the above, but font-awesome's font is not overriding. I have pushed my project on github - https://github.com/murtaza52/rails-base. The url is accessible on localhost:3000/posts
I will appreciate if someone can help me overriding bootstraps's default font with those of font-awesome's
Adding Font Awesome to Your CompileOpen your project's scss/variables. scss and edit the $fa-font-path variable to point to where you placed the webfonts folder. $fa-font-path: "../webfonts"; In your main SCSS compile file, import Font Awesome by adding the core styles file, @import "scss/fontawesome.
Bootstrap 5 Default Settings Bootstrap 5 uses a default font-size of 1rem (16px by default), and its line-height is 1.5. In addition, all <p> elements have margin-top: 0 and margin-bottom: 1rem (16px by default).
@CXJ you are correct, v3 sets $font-size-base as 14px . If you are tied to v3, I would recommend changing that value to 1rem , and then setting html {font-size: 14px} as in the example above. This is the best way. Bootstrap 4 will magically size like v3 once you change this to 14px.
Modify your application.css.scss
to look like below
@import "font-awesome";
$baseFontFamily: 'FontAwesome';
@import "bootstrap";
...
@import "bootstrap-responsive";
//@import "scaffolds";
@import "posts";
WHY?
import "font-awesome"
at the top and then define baseFontFamily
because that's what bootstrap uses to define font-family
for all the elements. Check Typography and links block in the middle. If you import bootstrap
after this, FontAwesome
will be used by default.import "scaffolds";
line because scaffolds.css.scss
will reset your font family for body
element which will be inherited by every other element.If you can't avoid importing it before bootstrap. I hope that helps.
For those of you guys using Bootstrap 3.2+ (I guess), here's the list of SASS variables you can modify:
https://github.com/twbs/bootstrap-sass/blob/master/assets/stylesheets/bootstrap/_variables.scss
In our case, we want to make sure to define $font-family-base
before doing @import "bootstrap"
.
By setting $font-family-base
before the line below is reached, Bootstrap uses our $font-family-base
instead (otherwise, it defaults to $font-family-base-serif
, also defined in the variables.scss
above).
$font-family-base: $font-family-sans-serif !default;
This is how my application.css.sass looks like
/*
*= require_tree .
*= require_self
*/
@import "fonts"
@import "compass"
@import "bootstrap"
And I have the following in _fonts.css.sass
(You don't have to have it in a separate file)
$font-family-sans-serif: 'Roboto', verdana, arial, sans-serif
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With