Skip to content

Instantly share code, notes, and snippets.

@sergejmueller
Last active November 15, 2025 22:07
Show Gist options
  • Select an option

  • Save sergejmueller/cf6b4f2133bcb3e2f64a to your computer and use it in GitHub Desktop.

Select an option

Save sergejmueller/cf6b4f2133bcb3e2f64a to your computer and use it in GitHub Desktop.
WOFF 2.0 – Learn more about the next generation Web Font Format and convert TTF to WOFF2

Prolog

Google Chrome Developers says:

The new WOFF 2.0 Web Font compression format offers a 30% average gain over WOFF 1.0 (up to 50%+ in some cases). WOFF 2.0 is available since Chrome 36 and Opera 23.

Some examples of file size differences: WOFF vs. WOFF2

TTF to WOFF2 converting

Embed WOFF2 in CSS (with WOFF fallback)

@font-face {
	font-family: MyFont;
	src:
		url('myfont.woff2') format('woff2'),
		url('myfont.woff') format('woff');
}
Base64 Data-URI

Of course you can use WOFF2 as a Base64 encoded string:

@font-face {
	font-family: MyFont;
	src:
		url('data:font/woff2;base64,...') format('woff2'),
		url('data:font/woff;base64,...') format('woff');
}

Good to know

  • Please no serverside GZIP compression for WOFF files, because WOFF already contains compressed data.
  • Think about the correct mime type for WOFF 2.0 files (Google uses font/woff2. W3C recommends font/woff2 too):
NGINX: WOFF2 mime type
types {
    font/woff2  woff2;
}
APACHE: WOFF2 mime type
AddType  font/woff2  .woff2

Browser Support

  • Google Chrome 36
  • Opera 23
  • Firefox 39
  • Opera 23
  • Edge 14
  • Safari 12

Helpful links

Powered by

Sergej Müller

@mpybkk

mpybkk commented Nov 3, 2014

Copy link
Copy Markdown

Wondering the same, is there still no command line options?

@shaunbent

Copy link
Copy Markdown

+1 on a command-line option!

@CrocoDillon

Copy link
Copy Markdown

What's missing from this gist is a feature test. We are using this one to detect WOFF2 supports https://github.com/filamentgroup/woff2-feature-test/blob/master/woff2.js

And serve WOFF or WOFF2 base64 encoded in a JSON file depending on the outcome. Basically like how The Guardian does it. This was an early prototype mimicking that behavior (without WOFF2 detection) http://codepen.io/CrocoDillon/pen/dkcbs , enjoy! :)

@paamayim

paamayim commented Dec 9, 2014

Copy link
Copy Markdown

In case anyone else has tried to retrieve the google hosted .woff2 in latin subset only, it will show all subsets(for some reason). To avoid that, it's possible to include the full range of characters in the url:

http://fonts.googleapis.com/css?family=Open+Sans&text=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!%22#$%&'()*+,-./0123456789:;<=>?@[]^_`{|}~
See http://codepen.io/iautomation/pen/gbPwxe for an example

You can also download the full google font package on my site[ http://iautomation.us ] in case anyone wants to quickly grab the files to host locally..

@arebee

arebee commented Dec 16, 2014

Copy link
Copy Markdown

To add the MIME type on IIS use:

appcmd set config /section:staticContent /+"[fileExtension='.woff2',mimeType='application/font-woff2']"

@majodev

majodev commented Jan 4, 2015

Copy link
Copy Markdown

You can also easily get woff2 files (and all other formats for any combined subset/charset) of any Google web font via my lil' service google-webfonts-helper.

Thanks for this great gist, I will embed it in a special FAQ on the front page of my service ASAP.

@ElijahLynn

Copy link
Copy Markdown

How come the woff2 mimetype has not been registered with the IANA?

http://stackoverflow.com/questions/27829408/why-isnt-woff2-in-the-mimetype-directory

@richiebee

Copy link
Copy Markdown

use .ahtacess works for me

@zachleat

zachleat commented Feb 6, 2015

Copy link
Copy Markdown

Can you add a warning here about Data-URI embedding multiple file formats? It’s not a recommended practice, it negates the page weight benefits offered by WOFF2 if you include both Data URIs in a single file.

@wayann

wayann commented Feb 16, 2015

Copy link
Copy Markdown

@cvrebert

Copy link
Copy Markdown

Google uses font/woff2

Could you please point to a specific example of this?

Edit: To answer my own question: http://www.google.com/fonts/
And here's hoping they rectify that: https://twitter.com/cvrebert/status/570155277648924672

@jimmywarting

Copy link
Copy Markdown

http://onlinefontconverter.com has a online & a command tool to convert any font to woff2. You don't need to install any program. font-packs also works (you get one woff2 file for every font

@PhilAndrew

Copy link
Copy Markdown

Does it work in SVG?

@boblauer

Copy link
Copy Markdown

As someone who uses the Data-URI method, is there an option for loading the correct type from the server? As @zachleat said, it makes no sense to embed both in a single file.

@blaja

blaja commented Jul 9, 2015

Copy link
Copy Markdown

You can also add FF 39 stable to the list, it is enabled by default now, which is great.

@jungshik

Copy link
Copy Markdown

W3C now recommends font/woff and font/woff2 for WOFF and WOFF2. See
http://dev.w3.org/webfonts/WOFF2/spec/#IMT

@nfroidure

Copy link
Copy Markdown

Hi guys. Made a NodeJS wrapper for the Google lib, thought you could be interested in adding it to this document: https://github.com/nfroidure/ttf2woff2

@jimmylee

Copy link
Copy Markdown

Is there a way to convert WOFF 2.0 to WOFF 1.0?

@tomByrer

Copy link
Copy Markdown

@Haroenv

Haroenv commented Aug 13, 2016

Copy link
Copy Markdown

Safari 10 should have support for it too.

@anthony-geoghegan

Copy link
Copy Markdown

@jungshik is right. The W3C now recommend using font/woff2 as the MIME type: https://www.w3.org/TR/WOFF2/#IMT

@lazylester

Copy link
Copy Markdown

@anthony-geoghegan how can one figure out whether apache is using the W3C/IANA mime type (font/woff2) or the previous mime type (application/font-woff2)?

@angristan

Copy link
Copy Markdown

@lazylester do a curl -I http://url/font.woff2 and check the Content Type header

@orynider

Copy link
Copy Markdown

@eladkarako Why you do not make an .7z for win32 as this one: https://github.com/aj-ash/woff2/releases ?

@3xploiton3

Copy link
Copy Markdown

how to view woff2 in windows 11?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment