My ar­ti­cles have ap­peared in PAGE Mag­a­zine, 8 Faces mag­a­zine, the Dev.Opera blog, and the Type­kit blog. I’m also the au­thor of the Web Fonts Per­for­mance chap­ter in Smash­ing Book 5.

Web Font Loading Patterns

April 13, 2016

Web font load­ing may seem com­pli­cated, but it is ac­tu­ally quite sim­ple if you fol­low some sim­ple font load­ing pat­terns. By com­bin­ing pat­terns you can cre­ate cus­tom font load­ing be­hav­iours that work in all browsers. Con­tinue read­ing…

Web Font Anti-Patterns

Oc­to­ber 13, 2015

There is a lot of con­fu­sion about web fonts. Are they re­ally bad for per­for­mance? Maybe you should not use web fonts at all? This on­go­ing se­ries of ar­ti­cles takes a look at some of the most com­mon anti-pat­terns for cre­at­ing, us­ing, and load­ing web fonts. Web fonts can be great when used cor­rectly and with mod­er­a­tion. Con­tinue read­ing…

Preload Hints For Web Fonts

Au­gust 7, 2015

Web fonts are a pop­u­lar topic in the web per­for­mance com­mu­nity. How­ever, one fun­da­men­tal prob­lem is of­ten over­looked: web fonts are lazy loaded. Can web font pre­load hints help us? Con­tinue read­ing…

Detecting System Fonts Without Flash

July 30, 2015

Many web-based text ed­i­tors al­low the user to se­lect cus­tom fonts through a drop down menu. These font menus of­ten in­clude sys­tem fonts. Un­for­tu­nately, there is no web plat­form API for re­triev­ing a list of lo­cally in­stalled fonts.

Google Docs font menu

Find out how you can use JavaScript to de­tect sys­tem fonts. Con­tinue read­ing…

Smashing Book 5: Web Fonts Performance

July 28, 2015

Smash­ing Mag­a­zine asked me to write a chap­ter about web fonts per­for­mance for Smash­ing Book 5. I think web fonts are great, but they suf­fer from one big prob­lem: by de­fault they block ren­der­ing in al­most all browsers. You may have ex­pe­ri­enced this your­self on a site us­ing web fonts while us­ing a slow cel­lu­lar net­work. Star­ing at a blank page is no fun, es­pe­cially when the con­tent has al­ready loaded.

Smashing Book 5

Block­ing ren­der­ing while down­load­ing fonts is wrong and against the very idea of pro­gres­sive en­hance­ment. Af­ter all, the con­tent is what peo­ple come for. Web fonts are an en­hance­ment of that con­tent. Im­por­tant, but not crit­i­cal. This chap­ter will show you how to op­ti­mise web fonts and how to load them with­out in­con­ve­nienc­ing your vis­i­tors. Con­tinue read­ing…

Dev.Opera: State of Web Type

March 3, 2015

Ty­pog­ra­phy has a long and rich his­tory, but much has been lost in the tran­si­tion to the web. Even though browser sup­port for ty­pog­ra­phy has im­proved a lot in the last few years, there are still many fea­tures that are un­sup­ported.

Opera asked me to write an overview of the state of web type for their Dev.Opera blog. The ar­ti­cle cov­ers browser sup­port for Open­Type fea­tures, font load­ing, and hy­phen­ation and jus­ti­fi­ca­tion (or the lack thereof). Con­tinue read­ing…

PAGE Magazine: Web Fonts

Oc­to­ber 1, 2014

What ex­actly is a web font? Are web fonts dif­fer­ent from desk­top fonts? What do you need pay at­ten­tion to when pur­chas­ing fonts? My ar­ti­cle in the Oc­to­ber 2014 is­sue of PAGE Mag­a­zine an­swers these ques­tions and more.

PAGE Magazine: Web Fonts cover and spread

The is­sue also fea­tures other ar­ti­cles on web fonts and web ty­pog­ra­phy and can be or­dered at the PAGE Mag­a­zine web shop. The is­sue is only avail­able in Ger­man.

8 Faces Magazine: Hyphenation & Justification

Oc­to­ber 6, 2013

Jus­ti­fi­ca­tion has al­ways been a source of con­tention on the web. Should you jus­tify text, or should­n’t you? To find out why there is such a dis­agree­ment, I take a closer look at what jus­ti­fi­ca­tion is, how it is im­ple­mented, and why browsers make the choice even more dif­fi­cult.

8 Faces

This ar­ti­cle ap­peared in is­sue #7 of 8 Faces mag­a­zine. Un­for­tu­nately the is­sue (and mag­a­zine) is out of print, but it will be avail­able in book form later this year.

Advanced Pattern Matching in JavaScript

May 7, 2012

A con­tin­u­a­tion of the pat­tern match­ing ar­ti­cle. This ar­ti­cle in­tro­duces a sim­pli­fied pat­tern syn­tax, an op­ti­miza­tion and ex­plains how to use pat­tern match­ing to­gether with al­ge­braic data types. Con­tinue read­ing…

Pattern Matching in JavaScript

Feb­ru­ary 13, 2012

A step by step guide for im­ple­ment­ing con­di­tional pat­tern match­ing in JavaScript as seen in func­tional pro­gram­ming lan­guages such as ML, Er­lang and Haskell. Con­tinue read­ing…