I want to use something other than the standard fonts with my Chrome extension. I was excited about the possibility of using the Google Web Fonts, but it seems that could incur a penalty for transferring the web font over the network whenever your extension uses it, to the point of affecting the performance of my extension. Do I have any option for packaging a font with my extension that will work on all Chrome-supported platforms (Windows/Mac/etc.)? Thanks in advance
WhatFont. A very popular and useful Chrome extension for developers and designers. If you are thinking about what font is used on a website, then WhatFont will identify the typeface for you. Just hover over it and find out instantly which font it is.
Packed are extensions that have been compiled into a downloadable . crx file. These are the files you download and install from such places like the Chrome Web Store. Unpacked are extensions that are available from your computer. Typically all the source files within a folder when you are developing an extension.
Google FontsClick on the download link (top right): Select 'Collection as zip': Then place the fonts you want into a new folder in your extension.
Choose your font. As example I'll take "Stint Ultra Expanded". There is example how to add it to your page:
<link href='http://fonts.googleapis.com/css?family=Stint+Ultra+Expanded' rel='stylesheet' type='text/css'>
Take only the href
and open it in browser. You'll see something like this:
@font-face { font-family: 'Stint Ultra Expanded'; font-style: normal; font-weight: 400; src: local('Stint Ultra Expanded'), local('StintUltraExpanded-Regular'), url(http://themes.googleusercontent.com/static/fonts/stintultraexpanded/v1/FeigX-wDDgHMCKuhekhedWmdhyVWfbygZe-w47Q2x_f3rGVtsTkPsbDajuO5ueQw.woff) format('woff'); }
Take first parameter of url
value from src
property (http://themes.googleusercontent.com/static/fonts/stintultraexpanded/v1/FeigX-wDDgHMCKuhekhedWmdhyVWfbygZe-w47Q2x_f3rGVtsTkPsbDajuO5ueQw.woff).
Now download this file.
Use parameter of local
value of src
property as filename (Stint Ultra Expanded)
Easy way is to download it is using wget:
wget -O "Stint Ultra Expanded.woff" http://themes.googleusercontent.com/static/fonts/stintultraexpanded/v1/FeigX-wDDgHMCKuhekhedWmdhyVWfbygZe-w47Q2x_f3rGVtsTkPsbDajuO5ueQw.woff
Now create css file and add content that you have seen before. But you have to change value of src
property. Remove all local
s and adjust url
. It should be smth like this:
@font-face { font-family: 'Stint Ultra Expanded'; font-style: normal; font-weight: 400; src: url('../fonts/Stint Ultra Expanded.woff') format('woff'); }
Now add your css file to extension and use the font:
popup.html
<!DOCTYPE html> <html> <head> <title></title> <link href='css/fonts.css' rel='stylesheet' type='text/css'> </head> <body> <span style="font-family: 'Stint Ultra Expanded';">Hello Font</span> </body> </html>
If you would like to use this font in content_script you have to adjust url
in your css:
@font-face { font-family: 'Stint Ultra Expanded'; font-style: normal; font-weight: 400; src: url('chrome-extension://__MSG_@@extension_id__/fonts/Stint Ultra Expanded.woff') format('woff'); }
You can add as many @font-face
rules in your css as you like.
Notice: local
value in src
property tells you which name should be used to store it. It is good idea to use this name.
Second notice: If you are using it like google expected, your browser would check if this font is already available local. If this is not the case, then it would be downloaded and stored. So next time it would use font that was previously stored.
As of Chrome 37 (maybe earlier), you need to mention the font as a web accessible resource in the extension's manifest:
"web_accessible_resources": [ "font/*.woff2" ]
Otherwise you would see an error like:
Denying load of chrome-extension://{ID}/font/My Web Font.woff2. Resources must be listed in the web_accessible_resources manifest key in order to be loaded by pages outside the extension.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With