Use Specific Fonts on a Website

Oct 16, 2022

When trying to format my website with ASCII art (see my e-mail address at the bottom of the page for an example) I surprisingly found out that Android did not support monospace font, so I found a workaround to enforce font uniformity on my website:

Find a Font to Use

Liberation Fonts is an open-source font collection that provides Sans, Serif and monospace fonts to use. We can download the released fonts and put them in our website folder.

Configure @font-face in CCS

We need to specify these fonts in our CSS file so that the browser will fetch them:

@font-face { font-family: 'LiberationMono'; src: url('/liberation-fonts-ttf-2.1.5/LiberationMono-Bold.ttf') format('truetype'); font-weight: bold; font-style: normal; } @font-face { font-family: 'LiberationMono'; src: url('/liberation-fonts-ttf-2.1.5/LiberationMono-BoldItalic.ttf') format('truetype'); font-weight: bold; font-style: italic; } @font-face { font-family: 'LiberationMono'; src: url('/liberation-fonts-ttf-2.1.5/LiberationMono-Italic.ttf') format('truetype'); font-weight: normal; font-style: italic; } @font-face { font-family: 'LiberationMono'; src: url('/liberation-fonts-ttf-2.1.5/LiberationMono-Regular.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'LiberationSans'; src: url('/liberation-fonts-ttf-2.1.5/LiberationSans-Bold.ttf') format('truetype'); font-weight: bold; font-style: normal; } @font-face { font-family: 'LiberationSans'; src: url('/liberation-fonts-ttf-2.1.5/LiberationSans-BoldItalic.ttf') format('truetype'); font-weight: bold; font-style: italic; } @font-face { font-family: 'LiberationSans'; src: url('/liberation-fonts-ttf-2.1.5/LiberationSans-Italic.ttf') format('truetype'); font-weight: normal; font-style: italic; } @font-face { font-family: 'LiberationSans'; src: url('/liberation-fonts-ttf-2.1.5/LiberationSans-Regular.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'LiberationSerif'; src: url('/liberation-fonts-ttf-2.1.5/LiberationSerif-Bold.ttf') format('truetype'); font-weight: bold; font-style: normal; } @font-face { font-family: 'LiberationSerif'; src: url('/liberation-fonts-ttf-2.1.5/LiberationSerif-BoldItalic.ttf') format('truetype'); font-weight: bold; font-style: italic; } @font-face { font-family: 'LiberationSerif'; src: url('/liberation-fonts-ttf-2.1.5/LiberationSerif-Italic.ttf') format('truetype'); font-weight: normal; font-style: italic; } @font-face { font-family: 'LiberationSerif'; src: url('/liberation-fonts-ttf-2.1.5/LiberationSerif-Regular.ttf') format('truetype'); font-weight: normal; font-style: normal; }

Set font-family in CCS

Now we need to set the font-family attributes in CCS so that the browser actually uses the fonts to display our content:

html { font-family: LiberationSerif, serif; } code { font-family: LiberationMono, monospace; }