Web Typography
Expand your typographic potential
Overview
This hands-on workshop is intended for designers new to typography in the browser and will cover how to work with fonts on the web. From standard typesetting to experimental techniques, we will learn various ways to work with digital type—ranging from loading a webfont to animating variable fonts. We will approach the browser as a creative medium by developing a single-serve website that demonstrates intentional typography, in both design and functionality. Instruction will cover ways to control visual composition and basic interactivity on the web, using HTML & CSS. Participants will need no prior knowledge of these languages for this workshop but should be prepared to dive into coding.
Design Goals
- Refine control and expand our range of expression for typography on the screen
- Establish hierarchy and develop a design system for web typography
- Control typography and layout through grid structures
- Understand how to design for multiple viewports and devices
Technical Goals
- Load and use webfonts effectively, accessing the embedded features in font files
- Understand semantic markup of HTML and browser styles
- Control typographic expression and layout on a webpage using CSS
- Become familiar with tools for animation and interactivity
Structure
This workshop will consist of lectures to cover key concepts, exercises to experiment with those ideas, and an ongoing project to apply your learnings. By the end of the class, you should have a completed typographic webpage published online.
Tools
We will be using the following tools for this class.
- A laptop & internet access
- Browser. Firefox or Chrome is recommended for their Inspector tools.
- A Text Editor. I will be using Sublime Text; VS Code is another option.
- A prototyping tool to quickly mockup designs, such as Figma or Adobe programs.
Setup
- Join the Slack Channel. We’ll be using this for all class communications.
- Create an account on Github.
- Download and install Github Desktop.
Troubleshooting
Try to be patient when writing code. So much of programming is debugging; typos are one of the most common errors! If you find yourself stuck, try breaking your issue down into smaller, more manageable parts.
Once you’ve identified those parts, try a search on Google or Stack Overflow for how to solve them, one at a time. These days, ChatGPT might be helpful. That said, be aware that there are many solutions that may not work or are outdated (and ChatGPT will recite a wrong answer with confidence.) While frustrating, these bugs may lead you to discover something new you would not have considered before. If you cannot solve a problem a way you anticipate, try “hacking” it—tackling the issue with the means you currently have.
Use discretion and credit when appropriate when reusing code found from the internet. Information on practical implementation that is available anywhere need not be credited, but exercise caution a specific mechanism or designed funtionality. Is it available for your use? Does it support your design concept?
Schedule
Introduction to HTML and basic CSS
- Introductions
- Review syllabus and setup
- What is a website?
- Exercise: Getting started with Github
- Introduction to HTML
- Exercise: Semantic Markup
- Introduction to CSS
Homework: Make a mockup of your a typographic single-page website in a tool of your choice. Here’s some Some inspiration.
CSS Layout & Typography
- Typography Review
- Exercise: Inspector Experiment
- Loading Fonts
- Exercise: Load a font and style your marked-up text from last week with CSS
- CSS Layouts
Homework: Code your designed webpage using CSS. First begin by marking up the text in HTML. Then add your CSS file: connect your page to the appropriate fonts; typeset your page.
Animation & Interactivity, Responsive Design
- CSS Positioning
- CSS Transforms and Animations
- Exercise: (Loosely) recreate / reinterpret a typographic poster using CSS grid or flexbox. See this Airtable by Allie or some Josef Müller-Brockmann posters for reference. Try add animations and/or transitions on hover.
- Accessing Open Type Features
- Responsive Design
- Exercise: Refine the typography of either a) the contrasts text, or b) the grid poster, or c) your own webpage, and make it responsive.
Homework: Complete coding your webpage, and try adding @media rules to make the site responsive. Be sure to check your page on your phone!
JavaScript Basics & Variable Font Interaction
- Typeface as Interface
- JavaScript Basics
- Demo: Toggle
- Exercise: Add an alternate “mode” for a webpage by toggling a class.
- JSON Data
- VF + JavaScript Demos: Cursor and API
- Exercise: Set up a variable font to respond to either a) a user interaction or b) some form of data input. For data, you can start with the Open Weather API, or explore a random API list, or simply download a JSON file from an open data source such as Open Data NYC.