<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[bramstein.com news]]></title><description><![CDATA[Updates from the personal website of Bram Stein, a web developer.]]></description><link>https://www.bramstein.com/</link><generator>metalsmith-feed</generator><lastBuildDate>Mon, 26 Sep 2022 10:39:59 GMT</lastBuildDate><atom:link href="https://www.bramstein.com/rss.xml" rel="self" type="application/rss+xml"/><item><title><![CDATA[Web Font Loading Patterns]]></title><description><![CDATA[Web font loading may seem complicated, but it is actually quite simple if you use these font loading patterns. Combine the patterns to create custom font loading behaviour that works in all browsers.The code examples in these patterns use Font Face Observer, a small and simple web font loader. Font…]]></description><link>https://www.bramstein.com/writing/web-font-loading-patterns.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/web-font-loading-patterns.html</guid><pubDate>Wed, 13 Apr 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Web Font Anti-Pattern: Using local fonts]]></title><description><![CDATA[Never mix locally installed fonts and web fonts in @font-face rules. Assuming two fonts are identical because they share a name is a recipe for disaster. The @font-face src property takes one or multiple URLs, which tells the browser where to find a web font. The src property also accepts a local()…]]></description><link>https://www.bramstein.com/writing/web-font-anti-patterns-local-fonts.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/web-font-anti-patterns-local-fonts.html</guid><pubDate>Mon, 19 Oct 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[Web Font Anti-Patterns]]></title><description><![CDATA[Almost every web developer has used web fonts. Unfortunately, there is a lot of confusion about web fonts. Are they really bad for performance? Maybe you should not use web fonts at all?Fear not, this series of articles takes a look at some of the most common anti-patterns for creating, using, and l…]]></description><link>https://www.bramstein.com/writing/web-font-anti-patterns.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/web-font-anti-patterns.html</guid><pubDate>Tue, 13 Oct 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[Web Font Anti-Pattern: Agressive subsetting]]></title><description><![CDATA[Subsetting is a great way to reduce the file size of your fonts. Don’t go overboard with subsetting though, there may be unexpected consequences. Subset, but subset with care.Professionally designed fonts usually contain support for multiple languages so they can be used all over the world. However,…]]></description><link>https://www.bramstein.com/writing/web-font-anti-patterns-subsetting.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/web-font-anti-patterns-subsetting.html</guid><pubDate>Tue, 13 Oct 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[Web Font Anti-Pattern: Overusing web fonts]]></title><description><![CDATA[This is my favourite web font anti-pattern and one I often get wrong myself; why are you using web fonts for that? I get it. Web fonts are great. I love them too, but they are overused. The global average of font requests per page has tripled in the last couple years. It’s great that developers and…]]></description><link>https://www.bramstein.com/writing/web-font-anti-patterns-overusing.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/web-font-anti-patterns-overusing.html</guid><pubDate>Tue, 13 Oct 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[Web Font Anti-Patterns: Inlining]]></title><description><![CDATA[A very common anti-pattern is inlining font files in a stylesheet using base64 encoding. Inlining fonts avoids the overhead of an HTTP request, but that advantage may not outweigh the many downsides.Inlining is beneficial when you load multiple fonts. Normally a browser needs to create a new connect…]]></description><link>https://www.bramstein.com/writing/web-font-anti-patterns-inlining.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/web-font-anti-patterns-inlining.html</guid><pubDate>Tue, 13 Oct 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[Preload Hints For Web Fonts]]></title><description><![CDATA[Web fonts are a popular topic in the web performance community. However, one fundamental problem is often overlooked: web fonts are lazy loaded. Can web font preload hints help us?Browsers only load web fonts when there is a CSS selector for a connected DOM node (i.e. one that is part of the documen…]]></description><link>https://www.bramstein.com/writing/preload-hints-for-web-fonts.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/preload-hints-for-web-fonts.html</guid><pubDate>Fri, 07 Aug 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[Detecting System Fonts Without Flash]]></title><description><![CDATA[Update 2017-11-04: The latest version of Font Face Observer no longer supports detecting local fonts, so you’ll need to grab an old copy to use the code in this article.Many web-based text editors allow the user to select custom fonts through a drop down menu. These font menus often include system f…]]></description><link>https://www.bramstein.com/writing/detecting-system-fonts-without-flash.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/detecting-system-fonts-without-flash.html</guid><pubDate>Thu, 30 Jul 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[Smashing Book 5: Web Fonts Performance]]></title><description><![CDATA[Smashing Magazine asked me to write a chapter about web fonts performance for Smashing Book 5. I think web fonts are great, but they suffer from one big problem: by default they block rendering in almost all browsers. You may have experienced this yourself on a site using web fonts while using a slo…]]></description><link>https://www.bramstein.com/writing/smashing-book-5-web-fonts-performance.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/smashing-book-5-web-fonts-performance.html</guid><pubDate>Sun, 28 Jun 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[Advanced Pattern Matching in JavaScript]]></title><description><![CDATA[We’ll start with the pattern matcher we built in the previous article . If you haven’t read that yet, I would suggest you do so because it will be the foundation for this one. Recall the final factorial function:It would be nice if we could address each variable by its name in both the pattern and c…]]></description><link>https://www.bramstein.com/writing/advanced-pattern-matching.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/advanced-pattern-matching.html</guid><pubDate>Mon, 07 May 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[Pattern Matching in JavaScript]]></title><description><![CDATA[Pattern matching is a form of conditional branching which allows you to concisely match on data structure patterns and bind variables at the same time (Wikipedia, Conditional Statements, Pattern Matching.) Pattern matching is supported in some functional languages such as ML, Haskell, OCaml, and Erl…]]></description><link>https://www.bramstein.com/writing/pattern-matching.html</link><guid isPermaLink="true">https://www.bramstein.com/writing/pattern-matching.html</guid><pubDate>Mon, 13 Feb 2012 00:00:00 GMT</pubDate></item></channel></rss>