Dark Mode is the new cool. Apps which automatically switch to an eye-friendly palette when lighting conditions are poor. Nifty! Most of the time, it's as simple as making the text a lightish colour, and the background a darkish colour. But all that fails when you use transparencies in images. Here's a quick example. Using the GitHub app in dark mode, I visited a repo which used a transparent…
Continue reading →
For my contact page, I wanted a generic calendar icon to let people view my diary. Calendar icons are almost always a skeuomorph of a paper calendar, but I wondered if I could make it slightly more useful by creating a dynamic icon. Here it is, an SVG calendar which always display's today's date: The background image is derived from the Twitter TweMoji Calendar icon - CC-BY. Text support in …
Continue reading →
...or do I just need new glasses? I'm not a graphic designer. I find it hard to get into the mindset of excellence through beauty. I understand user flow, interactions, happy paths, delighting the user, humane design, and so on - but when it comes to the art of making something look nice I'm all at sea. I understand that, as Aral Balkan so perfectly puts it, design is not veneer - but that…
Continue reading →
The journalist Shiv Malik took a rather intriguing photo at the recent student protests. It appears to show a group of police officers gathered around a blue box. No one seems to know what the box is for. I'm sure it's got a rather prosaic function - but that doesn't stop the speculation! As soon I saw it, I could think of only one thing; chroma-key! (Or Colour Separation Overlay if you're…
Continue reading →
One of the lovely aspects of QR codes is the variable levels of error correction built in. On even the most basic code you can obscure or deform up to 7% of the code and most readers will still decode it. This leads us in to the amusing territory of "hiding" human readable data in the code. I say "hiding" because we are hiding it from the scanner - not from the human. One of the more famous e…
Continue reading →