Article archive
-
My favorite records from 2024
· The past year in music releases.
-
My “Skip to content” markup was breaking the back button on iOS
·
<main tabindex=-1>
makes iOS Safari forget its scroll position. -
How to think about HTML responsive images
· srcset, sizes, picture, source, and how they all fit.
-
My favorite records from 2023
· The past year in music releases.
-
So you want to add a web feed
· How to write an Atom feed from scratch.
-
Slotted content in Eleventy
· Fill slots in an HTML layout with chunks of Markdown content.
-
Sass in Eleventy, with versioning
· Adding support for
.scss
files, complete with content hashes. -
Line-height tricks made simpler with the ‘lh’ CSS unit
· Three old CSS techniques made new with the line-height unit.
-
Why do mobile browsers share canonical URLs?
· And the case for them to revisit.
-
Get useful input values with formDataMap()
· A utility function inspired by the FormData DOM interface.
-
My favorite records from 2022
· Fourty-eight albums I've enjoyed this year.
-
Relational data in Eleventy
· A pattern for handling many-to-many relationships.
-
This website uses a variable font
· How hours of debugging can save minutes of reading, and more takeaways from sprucing up the type on this website.
-
Sizing images based on their aspect ratio
· Make images visually uniform with the
sqrt()
CSS function. -
Button type matters, after all
· A button is a button until it's a submit button.
-
Observe an element's focus-within state
· Implementing
:focus-within
as a DOM event. -
My favorite records from 2021
· It's Yeti Season!
-
Pinch me, I'm zooming: gestures in the DOM
· A deep-dive on panning and pinch-zooming using wheel, touch, and gesture DOM events.
-
On some features in Safari 15
· A look at what changed since the beta was first announced.
-
How it's made: Watch/Star/Fork
· My workflow from browser tabs to Markdown.
-
Use code to explore and change JavaScript files
· Gathering statistics for a JavaScript codebase with
jscodeshift
. -
How I digitize books
· A workflow for getting digital text out of printed material.
-
My favorite records from 2020
· A sampler of what I liked, or found interesting, in 2020.
-
A little npm head-scratcher
· Tracking down a puzzling bug taught me a few things on how
npm
runs scripts. -
Make PNG font samples with ImageMagick
· Putting words on pictures from the command line.
-
My favorite records from 2019
· Don't break the streak.
-
Prevent history navigation on horizontally-scrolling elements with CSS
· The
overscroll-behavior
property to the rescue from an annoying browser behavior. -
Prevent the need to zoom into inputs with CSS
· A neat little use-case for the
max()
function. -
Making sense of units in CSS Media Queries (in the year 2019)
· Building the case for
em
s in media queries. -
A CSS-only layout debugger
· How to draw element boxes on hover using just CSS.
-
My favorite records from 2018
· Noted without comment.
-
My favorite records from 2017
· This year's records, listed alphabetically.
-
My favorite records from 2016
· It's been a great year for soundtracks, ambient, and modern classical music.
-
Extracting things from JavaScript strings
· One weird trick using
String.replace
. -
A few FACT mixes
· Some favorite mixtapes from the music magazine.
-
Drawing every street in Romania
· Using Node.js and SVG to draw a buttload of OpenStreetMap data.
-
Eight Versions of Satie’s Gnossienne No. 1 (1890)
· A YouTube playlist.
-
My favorite records from 2015
· Great albums released this year.
-
Walking in Walden
· Every sentence in Walden contains the words 'I' and 'walk'.
-
My favorite records from 2014
· In no particular order.
-
Recently: Oldies
· Current mood.
-
Linked: Erik Satie
· Some bits and bobs.
-
Recently: living in cold places
· Current mood.
-
How to create a SVG icon system
· An Illustrator-to-web workflow for SVG icons.