Icons

DesignVisual Design

Most icons are boring. They're tidy, consistent and generic, and after a while every app ends up looking like every other app. Where's the playfulness?

I make a lot of small tools for myself and they all end up using SF Symbols because it’s the default one. I wanted a set I could reuse across them that felt a bit more like me. So these are chunky, bold and a little imperfect.

All hundred of them.
All hundred of them.

One heavy shape

Each icon is one heavy shape with a cut or two taken out of it. Where an icon has more than one part, the parts are split by a clean gap instead of an outline, so the padlock's shackle is lifted clear of its body, the bell's clapper hangs on its own, and the microphone sits in its cradle without touching it. Thin stems sit against heavy bodies, so the cherries hang off stalks that look too thin to hold them, and the TV has rabbit ears.

Some of my favourites.
Some of my favourites.

I tried to give the obvious ones a bit of a story too. The stopwatch has the time that's gone cut out of its face, the ice lolly has been dipped in chocolate, the phone is an old desk phone with a dial, and the video icon is a film camera with two reels.

How they're drawn

They're drawn on a 196 unit square, with everything kept between 14 and 182 so they all sit at the same size. Each part is added to or cut out of a mask, then the whole mask is blurred and thresholded so every corner is rounded by the same amount, and traced with potrace into SVG and PDF.

The rounding sets the one rule they all keep to. Any gap or bit of solid narrower than about 9 units fills in or breaks when it's rounded, so a small script measures the narrowest gap in each icon before I look at it.

They come out as 24 pixel SVGs that take the colour of the text around them, and 24 point PDFs for Xcode, set to render as templates so SwiftUI can tint them. They still read at 24 pixels, which is the size I'll mostly use them at.

At 48 and 24 pixels.
At 48 and 24 pixels.

Posted on 23 October 2026
Permalink, All Playground