How to import Google Web Font in CSS file?
Asked Answered
P

14

318

I'm working with a CMS which I only have access to the CSS file. So, I can't include anything in the <head> of the document. I was wondering if there was a way to import the web font from within the CSS file?

Periapt answered 3/2, 2013 at 19:56 Comment(0)
O
483

Use the @import method:

@import url('https://fonts.googleapis.com/css?family=Open+Sans&display=swap');

Obviously, "Open Sans" (Open+Sans) is the font that is imported. So replace it with yours. If the font's name has multiple words, URL-encode it by adding a + sign between each word, as I did.

Make sure to place the @import at the very top of your CSS, before any rules.

Google Fonts can automatically generate the @import directive for you. Once you have chosen a font, click the (+) icon next to it. In bottom-left corner, a container titled "1 Family Selected" will appear. Click it, and it will expand. Use the "Customize" tab to select options, and then switch back to "Embed" and click "@import" under "Embed Font". Copy the CSS between the <style> tags into your stylesheet.

Osei answered 3/2, 2013 at 20:0 Comment(7)
@Ronny how come it needs to come before all other style rules?Bauske
You shoud avoid the use of @import because it will defer the loading of the included resource until the file is fetched. See the detailed answer here: https://mcmap.net/q/100064/-including-google-fonts-link-or-importCinchonine
Moving the @import line to the top resolved my life! Thank you!Baiss
Why does google say this? Google Insides claims to not do @import. developers.google.com/speed/pagespeed/insights?Cordillera
This is an outdated answer. @import loads sequentially and is best avoided: varvy.com/pagespeed/avoid-css-import.html The preferred (and default) way to load Google fonts these days is using <link>.Marybelle
+100 for "Place @import at the very first line of the CSS file."Clack
You will regret this when you come to SEO and start to optimize your page speed with Google PageSpeed insights. Use <link> and optimize it's delivery instead.Oodles
M
105
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&amp;lang=en" />

Better to not use @import. Just use the link element, as shown above, in your layout's head.

Mosby answered 1/7, 2015 at 21:52 Comment(7)
Can you expand on why "Better to don't use"? I searched for this question because I would like to know which method is considered best.Osyth
I had internet explorer problem with @import. Sometimes it just don't read it.Mosby
He specifically said he can't use the <link> tag in his header.Kimmie
I had problems with @import url and ended up with this solution. Thank youArvie
+1 for using 'link', as it will not block parallel loading of other external files. 'import' will block parallel loading of other external files.Acheron
@AdamHollow @import loads sequentially and is best avoided: varvy.com/pagespeed/avoid-css-import.htmlMarybelle
By using @import you are able to make the font part of the CSS styling instead of the HTML markup, which semantically feels more correct, and you can swap out the fonts on your site through CSS. But as Chuck commented, it seems you take a slight speed hit for it. Maybe clock the load times, then decide, case by case. Note that for SVGs @import is the only way that works AFAIK.Jimerson
K
74

Download the font ttf/other format files, then simply add this CSS code example:

@font-face { font-family: roboto-regular; 
			 src: url('../font/Roboto-Regular.ttf'); } 
h2{
	font-family: roboto-regular;
}
Kenon answered 23/4, 2017 at 15:1 Comment(2)
I like this answer because unlike all import & link answers, this does not let Google track your users ip address. Which in Europe would be a violation of GDPRInterested
I needed to import it from downloaded TTF file. Thanks, Fidel.Mateo
H
47

Add the Below code in your CSS File to import Google Web Fonts.

@import url(https://fonts.googleapis.com/css?family=Open+Sans);

Replace the Open+Sans parameter value with your Font name.

Your CSS file should look like:

@import url(https://fonts.googleapis.com/css?family=Open+Sans);

body{
   font-family: 'Open Sans',serif;
}
Horsemint answered 13/12, 2015 at 11:45 Comment(0)
B
27

Along with the above answers, do also consider this site; https://google-webfonts-helper.herokuapp.com/fonts

Main Advantage:

  • allows you to self-host those google fonts for better response times

Other Advantages :

  • choose your font(s)
  • choose your character set
  • choose your font styles/weight
  • choose your target browsers ( modern preferred )
  • and u get the CSS snippets ( to add to your css stylesheet ) plus a zip of the font files to include in your project folder ( say css_fonts )

In file 'your_css_theme.css' add

/* open-sans-regular - latin - modern browsers  */
@font-face {
   font-family: 'Open Sans';
   font-style: normal;
   font-weight: 400;
   src: local(''),
        url('css_fonts/open-sans-v18-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
        url('css_fonts/open-sans-v18-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
 }

 body { 
        font-family: 'Open Sans',sans-serif;  
 }
Birdlime answered 11/9, 2018 at 8:16 Comment(2)
This also allows you to load font-weight: 400 first and then load the rest of the font by using the same code with no arguments. This allows for quicker display and, if you don't end up needing the whole font, smaller CSS files.Mayer
i would not recommend using the local parts, because ppl rarely have the desired font installed, and even then most often have a different version of it came from somewhere else. It is also harder to develop and debug, especially if you installed the font and may miss that for some reason the font do not load for the users, because of some server failure or other bug.Guntar
C
21
  1. Just go to https://fonts.google.com/
  2. Add font by clicking +
  3. Go to selected font > Embed > @IMPORT > copy url and paste in your .css file above body tag.
  4. It's done.
Camion answered 11/10, 2016 at 7:38 Comment(0)
J
13

Use the tag @import

@import url('http://fonts.googleapis.com/css?family=Kavoon');
Johnie answered 3/2, 2013 at 19:59 Comment(0)
P
4

You can also use @font-face to link to the URLs. http://www.css3.info/preview/web-fonts-with-font-face/

Does the CMS support iframes? You might be able to throw an iframe into the top of your content, too. This would probably be slower - better to include it in your CSS.

Paugh answered 3/2, 2013 at 20:4 Comment(1)
iframes result in a totally different space for everything. I don't think this would work.Peril
M
4
<link href="https://fonts.googleapis.com/css?family=(any font of your 
choice)" rel="stylesheet" type="text/css">

To choose the font you can visit the link : https://fonts.google.com

Write the font name of your choice from the website excluding the brackets.

For example you chose Lobster as a font of your choice then,

<link href="https://fonts.googleapis.com/css?family=Lobster" rel="stylesheet" 
type="text/css">

Then you can use this normally as a font-family in your whole HTML/CSS file.

For example

<h2 style="Lobster">Please Like This Answer</h2>
Manslaughter answered 7/7, 2018 at 10:23 Comment(0)
S
3

Jus go through the link

https://developers.google.com/fonts/docs/getting_started

To import it to stylesheet use

@import url('https://fonts.googleapis.com/css?family=Open+Sans');
Schonfield answered 12/6, 2017 at 6:46 Comment(0)
N
2

Googles side changed a bit since 2015.. I had some difficulties finding it so figured to include the new method:

  1. Scroll down on the desired font page
  2. click the small plus icon on the side of the font name
  3. the embed link and other options will appear on the "selected family" dialogue on the right of the web page.
Nephelinite answered 12/5, 2021 at 12:28 Comment(0)
I
1
  1. Go to https://fonts.google.com/ and select your desired font family (you can search by name):

    Step 1: selecting a font

  2. Select the desired variations (weight, italics, etc.):

    Step 2: selecting the variations

  3. Click on View selected families button on the top right corner:

    Step 3: clicking on the view font family button

  4. Select @import on the right panel to get the code:

    Step 4: getting the css code

Insistent answered 15/5, 2022 at 10:13 Comment(0)
M
1

Everyone here have given an answer using link tag and @import. That works well if you have an internet connection while working on your project(html,css). But if you want to use your font 'offline' ie by downloading ,follow these steps-

  1. Download zip file of desired font from google fonts website using DOWNLOAD ALL option.
  2. Extract zip file and you will get your .ttf files.
  3. in your styles.css use-
    @font-face{ font-family: ....... ; src:url(........); }

**Inside font-family write name of the font you want to use from extracted .ttf file. Name can found by opening that .ttf file.

Inside url mention local path of your .ttf file.**

  1. Now if you want to use your font. Simply use font-family property and inside it write name of font used in above step(that you got using opening .ttf file) If you want to add this font to whole webpage use font-family property within universal selector(*).
Microdont answered 14/5, 2023 at 15:42 Comment(0)
F
0

We can easily do that in css3. We have to simply use @import statement. The following video easily describes the way how to do that. so go ahead and watch it out.

https://www.youtube.com/watch?v=wlPr6EF6GAo

Followup answered 26/5, 2016 at 9:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.