Publishers of technology books, eBooks, and videos for creative people

Home > Articles > Web Design & Development > Usability

  • Print
  • + Share This
This chapter is from the book

This chapter is from the book

Type Space

One way to add variety to your text is through the use of spacing between characters and words. Although not for everyday use, adding or subtracting space in your type is an important tool for creating fluid typography.

Letterspacing is not kerning, but it’s all we’ve got

It’s easy to confuse kerning with the practice of simply spacing characters farther apart or closer together. Kerning adjusts the spacing between characters in a proportional font; however, it will do this differently for different combinations of character pairs, allowing them to fit together optimally based on the font’s own coordinate system. For example, the kerning applied to the letter pair “WA” is negative, so that the “A” slides in underneath the “W,” increasing both letters’ readability by reducing the optical space between them. The kerning for “UA”, on the other hand, is 0, since there is no room to comfortably adjust the optical space.

In digital typesetting, kerning is automatically set by the font but can be adjusted. The base kerning between two characters is 0. You adjust the kerning with values between -100 and 200 (there are no units associated), which are applied to loosen (positive) or tighten (negative) the space between two or more letters in a block of text. Each letter is affected differently by the values, relative to the letters next to them.

In Web design, though, true kerning is not available. Instead, CSS offers the letter-spacing property to add tracking to text. Tracking is the ability to add a specific amount of space between each character, regardless of the letters themselves. In theory, you could use this to adjust individual letters by placing span tags around one or more letters and then applying letterspacing:

  .kern_neg2 { letter-spacing: -.2em; }

In practice, though, this technique is all but unworkable, since tags have to be placed for every instance where a kerning adjustment is needed:

  <h1>
  <span class="kern_neg2">WA</span>VE
  </h1>

Since different letters require different amounts of space added or removed to improve readability, and since so much content on the Web is dynamically created or contributed by writers who may not be able to control the code, this technique is only applied in extreme cases.

Use letterspacing or word spacing for effect, but use them sparingly

Both letterspacing and word spacing are blunt typographic instruments, coarsely adding space, regardless of the specific text. In general, the fonts you use in your design will already be carefully kerned by the type designer to maximize readability—if not, you probably need to pick a different font—so letterspacing and especially word spacing should not be necessary to improve readability.

There are times when you may want to add space in order to draw attention to text or to differentiate it from surrounding text, especially in titles and headers. Since this is done as a stylistic flourish rather than to improve readability, there are no hard and fast rules for how much space to add. It will be according to your design needs. To ensure that the text is easily scalable without having to adjust the spacing if the font size is increased, use ems, which will keep the same proportion at any font size.

Set letterspacing for capitalized abbreviations and acronyms

One place where letterspacing is often needed is in abbreviations and acronyms. These strings of capital letters are generally spaced as if they were solitary letters, rather than as part of a group. If your HTML code is properly constructed, this should not be a problem, as long as acronyms and abbreviations use the abbreviation tag:

  <abbr title="Cascading Style Sheets">
  CSS</abbr>

CSS can then be used to style the abbreviation tag to tighten up the spacing by 5% or five-tenths of an em:

  abbr { letter-spacing: -.05em; }

One potential issue is that not all abbreviations will need letterspacing. For example, the abbreviation for et cetera (etc.) is lowercase, and lowercase letters do not require tightening. So you only apply the abbreviation style to uppercase abbreviations.

You might also choose to set a negative letterspacing for long strings of numbers. This is a challenge, though, since there is no direct way to tag numbers in HTML without adding a span tag around the numerals.

Use indents or spaces between paragraphs, but not both

Traditionally, typographers separated paragraphs of text by indenting the first line of text by at least 1em with a space between paragraphs equal to the line height. The first line of the opening paragraph in a section would not be indented.

When the Web was first developed, though, there was no way to set a paragraph indent, and multiple spaces are always collapsed into a single space. To differentiate paragraphs, Web content producers began to simply add extra margin space between paragraphs, visually separating them.

Despite the fact that CSS long ago introduced the ability to add paragraph indents, separating paragraphs with additional white space has become the default standard style on the Web.

All paragraphs of text are automatically separated by the space of the line height. To calculate the optimal extra margin to add, multiply your line height by .75:

line height x 0.75 ≈ paragraph spacing

So, if your line height is 24px, then the optimal margin would be 18px. In theory, you should add this to either the top or bottom margin of the paragraph. However, one feature of modern Web browsers is that they will collapse top and bottom margins between elements, using the larger value as the only margin between the elements, ignoring the smaller value. Known as margin collapsing, this means that you not only can, but should set the margin for the top and bottom of paragraphs to the same value:

  p { font-size: 16px;
      line-height: 24px;
      margin-top: 18px;
      margin-bottom: 18px; }

This also ensures that the first and last paragraphs in your body copy can have top and bottom margins. The above code renders a total space between paragraphs of 42px as measured from baseline to baseline.

If you want to use indents, then you will need to remove the margin between paragraphs and add the desired indent, generally equal to twice the current font size or larger. If this is the first paragraph in a section, you will not want an indent:

  p { font-size: 16px;
      line-height: 24px;
      margin-top: 0;
      margin-bottom: 0;
      text-indent: 32px; }
  p:first-child { text-indent: 0; }

This will help with the scannability of the text, especially if you use a separate style for the first character and/or first line of text at the start of a section.

  • + Share This
  • 🔖 Save To Your Account