Errata in the first edition of Web Typography by Richard Rutter.

Page numbers refer to the print edition. The latest version (v1.1.0) of the ebook contains clarifications and corrections to these errata. If you spot a mistake please let me know at errata@webtypography.net. Thank you to those who have already been in touch, in particular Elika Etemad.


The following are errors in the print edition.

  • Pages 84, 167, 170

    The OpenType tag for historical ligatures is hlig not hist.

  • Page 117

    Removed 1px from text-decoration code sample as it is not allowed here and should be applied (at some point in the future) using the text-decoration-width property. The updated code sample is:

    a {
    	text-decoration: none; border-bottom: 1px solid #ccc;
    @supports (text-decoration-skip: ink) {
    	a {
    		text-decoration: underline solid #ccc;
    		text-decoration-skip: ink;
    		border-bottom: 0;
  • Page 122

    Code sample chemical formula should be subscripts not superscripts.

    Caffeine<sup>1</sup> is C<sub>8</sub>H<sub>10</sub>
  • Pages 166, 168, 169

    The font-variant-alternates property, when used with swash, stylistic and styleset, requires use of a @font-feature-values rule as these are font-specific variants. See completely rewritten section of ebook for a full explanation.

  • Page 284

    To use to a variable font as a web font, you should set the file format to truetype-variations, not ttf-variations as stated.

    Development browsers now support both woff-variations or truetype-variations, so the font format no longer needs to be woff or ttf as stated.

    Safari 11 on MacOS 10.13 supports variable fonts, as does Mobile Safari on iOS 11.


The following are clarifications to the print edition.

  • Pages 19, 32

    Corrected that pixels have always been relative to the reference pixel (this was not introduced in CSS2 as stated).

  • Page 76

    Clarified that <meta charset> is HTML5, and added that you can use HTTP headers to set character encodings.

  • Pages 107, 108

    Added details about the hanging-punctuation property, including updating the example code:

    .quoted p:first-of-type::before {
    	    margin-left: -0.83ch;
    	.quoted p {
    		hanging-punctuation: first last;
    	@supports(hanging-punctuation: first last) {
    		.quoted p:first-of-type::before {
    		    margin-left: 0;

    Also updated selectors in the hanging quotes example to cope with multiple paragraphs:

    .quoted p {
        quotes: '“' '”' '‘' '’';
    .quoted p:first-of-type::before {
        content: open-quote;
    .quoted p:last-of-type::after  {
        content: close-quote;
  • Page 109

    Tweaked example margin.

    ol li::before {
    	counter-increment: mylist;
    	content: counter(mylist);
    	margin-left: -1.5em; margin-right: 1em;
  • Page 124

    Replaced vertical-align:inherit with vertical-align:baseline, as on the off-chance the parent element has vertical-align:something-else, the example will break. (The vertical-align property doesn't inherit, so unsetting it uses the initial value, not inheritance.)

  • Page 170

    Updated table to better imply that all values of font-variant-alternate except for historical-forms require a feature-value-name as specified in a @font-feature-values rule.

  • Page 191

    Clarification: “if your column height extends beyond the viewport”.

  • Page 260

    Added details of system-ui generic font family. In short, use it ahead of -apple-system for a more cross-browser, standards-based approach to specifying the system font.

  • Page 284

    Typo in penultimate paragraph: "but none supports".

  • Pages 325, 326

    Additions to CSS index: @font-feature-values, counter(), hanging-punctuation.