How to Add Custom Fonts to Any Website

Today we are exploring how to add custom fonts to any website including WordPress. First let’s take a quick look at the basic available font formats:

Font Formats:

TTF – Works in Firefox and most decent browsers but does NOT work IE and iPhone.
EOT – IE only because they have to be difficult.  EOT is an acronym for Embedded Open Type. The format was created by Microsoft (the creator of @font-face) over 15 years ago. It’s the only format that IE8 and below will recognize when using @font-face.
WOFF – Web Open Font Format. Created for use on the web, and developed by Mozilla, it is the compressed, emerging standard. Should soon work with ALL modern browsers!
SVG – SVG or Scalable Vector Graphics fonts are For iPhone/iPad. Its the only format allowed by Safari version 4.1 and below. iPhoneSVG fonts are basically for older versions of iOS Safari (3.2-4.1).

Here is how to embed custom fonts on your website using the @font-face property of CSS:

  1. First be sure to have at least a true type font file and a .woff file because .woff is for modern browsers including Firefox while true type fonts are for some versions of Firefox, safari, android, etc. browsers. so if you only have a .ttf file for your new font, use an online file converter to convert the .ttf file to a .woff file like the one found HERE: http://everythingfonts.com/ttf-to-woff
  2. find your site’s main CSS style sheet and add the following code to the start of the file:
      @font-face{
    font-family: ‘shapefont’;
    src:  url(‘fonts/OptimusPrinceps.woff’) format(‘woff’), /* Modern Browsers */
    url(‘fonts/OptimusPrinceps.ttf’)  format(‘truetype’);/* Safari, Android, iOS */
    }
  3. Then simply declare your font wherever needed in the site’s css sytles using the new font-family you created so an example CSS delaration for the above font which I named “shapefont” would be:
    font-family: shapefont;

NOTE: if you copy and paste, you’ll need to replace all quotes, single and double because this site uses fancy ones that don’t work with CSS code.

Using Free Web Font Kits from FontSquirrel.com

A quick and easy way to make sure that you have fonts that will work in all browsers and devices is to include all four basic font types, tff, wof, eot and svg. An easy way to assure that you can get all four in a nicely wrapped font kit is to use Font Squirrel. Here are the simple instructions for geting a complete free font kit from Font Squirrel:

  1. Go to http://www.fontsquirrel.com/fonts/list/find_fonts and you’ll see a list of the fonts available through Font Squirrel.
  2. Click on one of the fonts(not on the download button because that is for one font type only).
  3. Then select the “webfont kit” tab on that font’s page.
  4. Make sure that all 4 file types are checked then click on the button that reads “DOWNLAD @FONTFACE KIT” and click “ok” to download to your computer.
  5. Unzip the zip file on your desktop and open it. You’ll see a file named “How_to_use_webfonts.html” which will have step by step instructions on how to install the fonts from here.

A Sure-Fire Method to Make your Font Work

I understand that the instructions from Font Squirell can be a little vague, so here is my sure-fire method for installing a web font kit and this method will work with fonts from anywhere by the way.

  1. After you have your font files(steps 1-5 above). Make a new folder on your desktop named “mysite”.
  2. put your HTML page or a test HTML page into your “mysite” folder.
  3. Inside of the head tags in your HTML page, add:      <!–Custom fonts:–>
        <link rel=”stylesheet” href=”font.css” type=”text/css” charset=”utf-8″ />
  4. Create a new CSS file called font.css and paste the following code into it: @font-face{
    font-family: ‘MyFont’;
    src: url(‘WebFont.eot’);
    src: url(‘WebFont.eot?iefix’) format(‘eot’), url(‘WebFont.woff’) format(‘woff’), url(‘WebFont.ttf’) format(‘truetype’), url(‘WebFont.svg#webfont’) format(‘svg’);
    }
  5. In line two of the above code, where font-family is declared, change “MyFont” to whatever you want to call your new font. This is the name you will use to call your font by in your regular style sheet.
  6. Save the font.css file and put it inside your “mysite” folder with your HTML page.
  7. Move your .wott, .eot, .ttf and .svg font files into the same “mysite” folder as the HTML and CSS files. If you are using a Font Squirrel kit, open the folder you unzipped earlier, find the “web fonts” folder inside and select the one you want. There are different types such as light, medium, bold etc. for most fonts. You may choose to install more than one type. If so, simply repeat the process for each type and give it a unique font-family name. If you’re not sure which folder has your font files, use the one that ends with “regular_macroman” and open it. copy the .svg, .eot, .wott and .ttf files into your “mysite directory.”
  8. Take the name you named your custom font(originally MyFont”) in steps 4 & 5 above and use it in your web page’s CSS style sheet. If you don’t have one yet, create a new file called style.css and add the following code to it:

    body{
    font-family: “MyFont”;
    }

  9. Save your style sheet as style.css if you made a new one. If you had an existing CSS file already, modify the font-family declarations you want to include the custom font name you created for “MyFont”. Simply replace whatever comes after “font-family:” with the name of your new font wherever you want to use it and you are done!

 Summary

That’s really all there is to it. The Font Squirrel method just described was made simple by putting everything in the same folder. You’ll probably desire a different structure, so be sure to change any file paths accordingly if you do so. If you’re doing this to a WordPress website, just locate your current theme’s style.css file and add the @font-type declaration shown above to the top of the file then add the font you named wherever you like in the site using the font-family declaration. It’s easy as pie! Good Luck!

Leave a Reply

Your email address will not be published. Required fields are marked *