Deprecated: Constant E_STRICT is deprecated in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/ProcessWire.php on line 451

Deprecated: ProcessWire\ModulesConfigs::getModuleConfigInputfields(): Implicitly marking parameter $form as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/ModulesConfigs.php on line 561

Deprecated: ProcessWire\ModulesLoader::hasPermission(): Implicitly marking parameter $user as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/ModulesLoader.php on line 750

Deprecated: ProcessWire\ModulesLoader::hasPermission(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/ModulesLoader.php on line 750

Deprecated: ProcessWire\PagesRequest::___getLoginPageOrUrl(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/PagesRequest.php on line 713
Background
Menu

Deprecated: ProcessWire\Pagefile::setDescription(): Implicitly marking parameter $language as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/Pagefile.php on line 428

Deprecated: ProcessWire\Pagefile::extras(): Implicitly marking parameter $value as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/Pagefile.php on line 1394

Background


Deprecated: ProcessWire\MarkupQA::__construct(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/MarkupQA.php on line 74

Deprecated: ProcessWire\MarkupQA::__construct(): Implicitly marking parameter $field as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/MarkupQA.php on line 74

Deprecated: ProcessWire\MarkupQA::findLinks(): Implicitly marking parameter $page as nullable is deprecated, the explicit nullable type must be used instead in /var/www/vhosts/veravandeseyp.com/type.veravandeseyp.com/wire/core/MarkupQA.php on line 623

Type design basics

I have been talking about type design without really mentioning what that entails. In this section, we will go over some type design basics, and I’ll also elaborate on more specific parts of type design that will be important for the experiments.

Type anatomy uses specific terminology to refer to parts of letters, such as ascenders, descenders, and x-height. Some parts of letters are named after body parts, such as ear, tail, arm [Seddon 2015]. Variables like weight, contrast, stress, spacing, and alignment also affect the way a typeface looks and behaves.

The Latin alphabet is generally constructed from three basic, geometric shapes [Cheng 2005]:

⏹ Squares (N/n, H/h, E, F, T, L …)
⏺ Circles (O/o, C/c, e, G, …)
⏶ Triangles (A, V/v, W/w, …)

Some letters are hybrids: the D is circle a with some square; the Y is a lot of triangle with a little square. The S is its whole own thing, and is often mentioned as one of the more challenging letters to design, together with the g.

A common way to approach designing lettering or a typeface is to start by designing one key character of each geometric group. From there, you can extrapolate this design to the other characters in the same shape group [Cheng 2005]. This extrapolation method helps create a coherent design. Type designers often start with the characters n, o, and v, which form a good basis for extrapolation [Henestrosa et al. 2017].

According to type designer Gerard Unger, a typeface’s quality can be assessed based on four criteria:

Type designers tend to evaluate their typefaces by creating words that have all shapes, such as Hamburgerfontsiv or Handgloves. As the typeface progresses, more elaborate sentences are fair game too. The goal is to work towards the pangram, a sentence that includes all letters, such as the quick brown fox jumps over the lazy dog.

While algorithms are great at mathematical calculations, they are not as effective in testing the quality of a typeface as a designer’s critical eye [Henestrosa et al. 2017].

Categorizing Latin typefaces is somewhat of a slippery slope. You can roughly create groupings such as serif, sans serif, slab serif, monospace, script, and display typefaces. These genres are not clearly delineated and the groups often have some overlap. Then, they also have historical subcategories. These groups can be used as a framework to be able to address type characteristics rather than as rules carved in stone [Cheng 2005].

Type design software

Most, if not all, contemporary type designers use software to create and manipulate typefaces. These tools offer a range of features, including vector drawing tools, scripting capabilities, and interpolation functions.

FontLab is another prominent type design software widely used by professionals. It was released in 1992 and has continually evolved to meet the needs of modern type designers. FontLab is particularly well-regarded for its advanced vector editing capabilities and support for multiple font formats.

Glyphs is a popular software for type design that allows designers to create, edit, and refine typefaces with ease. It was released in 2011 and has since become an industry standard due to its intuitive interface and powerful features. its distinguishing factor is its ability to generate variable fonts.

RoboFont, released in 2011, is a UFO-based font editor that offers a highly customizable environment for type designers. It is particularly favored for its scripting capabilities, allowing designers to automate repetitive tasks and create custom tools to enhance their workflow.

The computational designers interviewed build their own type design tools that are more computational in in the following frameworks: Processing, p5.js, GLSL, HTML/CSS, DrawBot, Swift and Python. See the toolkit chapter for a more elaborate overview.