How do I add a Google font to a jekyll theme

Issue

I have a simple jekyll website using the minima theme at: https://github.com/WesPeacock/simplesite
Here is what the site’s simple index.md file looks like:

---
layout: home
---
# A Simple site for testing stuff

The next two lines should be in different fonts
* This bullet point is in the default minima font. The next point should be in Google Gentium Basic web font
* <span class="nkonya">Nɔ́pʋ Gugɛl Gyɛntiam Besɩk wɛbfɔnt wanlɩn ɩ́nɩ.</span>

This is on the Home Page.

I don’t know enough about jekyll and css/sass/scss to make the magic happen so that the Gentium Basic font from the Google API would apply to the code that I’ve marked with <span>…</span>.

If there’s a better solution than using a <span class…> marker, that would be fine.

Most of the answers I’ve found involve replacing the base font. I don’t want to do that, just add a font and have a reasonably simple way to apply that font.

Solution

It’s very easy. You need to override the head.html file in _includes. If you haven’t done so, copy it from the minima theme repository here
https://github.com/jekyll/minima/blob/master/_includes/head.html
and add the following line beween <head> and </head:

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

changing Arvo and Raleway with the fonts you choose of course.

Then you need to override the CSS. You can create a css/override.css file and add your fonts to the styling, for example the following will use Raleway by default, and Arvo for all headings and all elements with class .site-title and .site-nav. To use fonts in specific elements you need to learn a little about CSS but nothing you couldn’t easily google.

body {
  font-family: 'Raleway', serif;
  }

h1, h2, h3, h4, h5, .site-title, .site-nav {
  font-family: 'Arvo', sans-serif;
}

Then you to load this CSS. Go back to your head.html file and include this line inside the <head> tag after any other CSS style you find referenced there (the order in which the files are loaded matters)

<link rel="stylesheet" href="{{ site.baseurl }}/css/override.css" />

Answered By – andrea m.

Answer Checked By – Marilyn (AngularFixing Volunteer)

Leave a Reply

Your email address will not be published.