If you’re seeing this, the site behind it is likely broken!

Hi, there. I use these course sites as little sandboxes to experiment with and learn various “brand new” CSS properties—and your browser does not support (at least) one of them. Apologies. It “should” always work in current/updating Safari and Chrome!

  • Typography & Interaction

    ’25–26

  • The Syllabus

  • Our Class

  • Unit Nº 1: “Type and the Web”

    Wks. 1–6

    • Week Nº 1

      Aug. 29

    • Everything Is a “Web Page”

    • Week Nº 2

      Sep. 5

    • It’s All About Type

    • Week Nº 3

      Sep. 12

    • An Intro to HTML

    • Week Nº 4

      Sep. 19

    • An Intro to CSS

    • Week Nº 5

      Sep. 26

    • The Box Model

    • Project Nº 1: “Manuscript”

      Oct. 3

    • Week Nº 6

      Oct. 3

  • Unit Nº 2: “There Is No Perfect Layout”

    Wks. 7–10

    • Week Nº 7

      Oct. 10

    • Responsive Design

    • DevTools (Web Inspector)

    • There is no single best browser; they are all kind of differently bad, in different ways.

      • Chrome DevTools
        We’ll be using these.

      • Safari Web Development Tools
        Got some long-overdue love back in Sonoma, but little since.

      • Firefox DevTools User Docs
        Spiritual successor to Firebug, the first suite.

      Many developers use Chrome for its popularity/​hegemony, before testing in other browsers. It also arguably has the most robust set of DevTools⁠—though Safari and Firefox have their own versions, too. Much of this is just preference, but ultimately you’ll want to see what your visitors are seeing.

      You have always been able to View Source, from the earliest days/​browsers⁠—remember that the open web has always trafficked in source code. But we’ll use DevTools for the same reason we use an IDE⁠—more comfortable ergonomics, specifically around building for the web.

      You’ll often hear people (Michael) call it the Web Inspector, or just The Inspector. It’s going to be your best (Web) friend, showing you everything that the browser has parsed to display your pages.

      Inspecting Pages

      In Chrome, you can bring them up by right-clicking on any element/​part of a page and clicking Inspect :

      You can also hit ⌘ ⌥ I .

      undefined

      By default, you’ll see the tools open on the right side of the page. Depending on how big your screen is, they might be laid out a bit differently⁠—but the basics are usually the same:

      undefined

      The Customize ⋮ button will let you change the side they appear on, or undock the tools out entirely into a separate window⁠—sometimes easier on a laptop/​small screen:

      Elements Panel

      The top part of the tools is the DOM⁠⁠—you can expand/​collapse all the nested HTML elements on the opened page.

      The first ↖ button in the upper-left lets you mouse over on the page, and will then show you that element nested/​hierarchically within the DOM.

      The second ⿸ button (more about this below) toggles the Device Toolbar, a.k.a. “responsive mode.”

      The flex /​grid badges (pills?) toggle their layout overlays on the page.

      Handy tip: ⌘ F in here will let you search for elements or text by name/​class/​contents!

      Styles Tab

      The area below is for the styles. It shows whatever CSS properties apply to the element you have selected above, in the DOM/​Elements panel.

      These are ordered (somewhat unintuitively) in a more-specific, reverse-cascade sequence⁠—inline styles at the top, external and internal stylesheets, then user-agent styles at the bottom⁠—with any cascading/​conflicting rules crossed out, as you go down.

      On the right, you can see the sum Computed (or rendered) values of all the rules that apply⁠—regardless of where they come from. These represent exactly what the browser is showing to you for the selected element.

      You can type specific CSS properties/​values into both Filter boxes to quickly narrow things down!

      You can make changes in Elements or Styles, and the edits will be immediately visible on the page as if you had edited the source files!

      It’s useful to try things out quickly⁠—and diagnose where problems/​conflicts arise.

      Warning: DevTools edits are ephemeral

      Keep in mind that these changes are only temporary⁠—any edits in the DevTools will be lost when you leave or reload the page! They are just for you.

      Device Mode

      Enter device mode with the little phone/​laptop ⿸ button,
      in the upper left of the DevTools:

      Be sure to refresh with ⌘ R if the page doesn’t rescale correctly when you enter this mode! They sometimes don’t, depending on how they are built⁠—especially with JS shenanigans.
      Be sure to refresh with ⌘ R if the page doesn’t rescale correctly when you enter this mode! They sometimes don’t, depending on how they are built⁠—especially with JS shenanigans.

      Generally, use the Responsive mode that lets you type in specific pixel dimensions for width/​height. Or you can use the divided bar underneath to quickly jump through common/​ballpark widths.

      The Preview Zoom also allows you to approximate views larger than your current screen! You can specify larger dimensions, and it will scale down to show the entire viewport. This is great for developing on a laptop⁠—it won’t be precise, but it’ll give you some idea of big screens.

      The Device List is… ancient and inaccurate⁠—they don’t account for the browser’s own interface, so they are all too tall!
      The Device List is… ancient and inaccurate⁠—they don’t account for the browser’s own interface, so they are all too tall!
      The More Options menu here has some handy tricks!
      The More Options menu here has some handy tricks!

      Remember that you are not targeting specific devices; you are looking for when your design/​content breaks!

      Always check your work on the real thing

      This is just a quicker preview, but isn’t always perfectly accurate⁠—and also won’t reflect any platform-specific behaviors around scrolling or rotating. (We’re looking at you, iOS Safari.)

    • Week Nº 8

      Oct. 17

    • Finally, Flexbox

    • And (CSS) Grid

    • Week Nº 9

      Oct. 24

    • Some Additional, Advanced CSS

    • Project Nº 2: “Spread”

      Oct. 31

    • Week Nº 10

      Oct. 31

  • Unit Nº 3: “Typography as Interface”

    Wks. 11–15

    • Week Nº 11

      Nov. 7

    • Working with Images

    • Week Nº 12

      Nov. 14

    • Week Nº 13

      Nov. 21

    • Thanksgiving Week

    • Project Nº 3: “Binding”

      Dec. 5

    • Week Nº 14

      Dec. 5

    • Week Nº 15

      Dec. 12

  • Winter Break

  • Unit Nº 4: “Interface as Interface”

    Wks. 16–21

    • Week Nº 16

      Jan. 21

    • Week Nº 17

      Jan. 28

    • An Intro to JavaScript

    • Week Nº 18

      Feb. 4

    • Some More JavaScript

    • Week Nº 19

      Feb. 11

    • Week Nº 20

      Feb. 18

    • Project Nº 4: “Links”

      Feb. 25

    • Week Nº 21

      Feb. 25

  • Unit Nº 5: “If All You Have Is a Hammer, Everything Looks like a Nail”

    Wks. 22–30

    • Week Nº 22

      Mar. 4

    • Putting a (Link/​Meta) Bow on It

    • Week Nº 23

      Mar. 11

    • Spring Break

    • Week Nº 24

      Mar. 25

    • Week Nº 25

      Apr. 1

    • Week Nº 26

      Apr. 8

    • Week Nº 27

      Apr. 15

    • Project Nº 5: “Functions”

      Apr. 22

    • Week Nº 28

      Apr. 22

    • Week Nº 29

      Apr. 29

    • Week Nº 30

      May 6

    • “Everything Else”

    • The end