Time to Cache UpFor a long time I’ve been searching for a sound solution to storing the entire webmention history of my blog, as packaging it up with the rest of the repository was not cutting it for me. Enter the world of async.published 23 November 2020 · 12 responses to Time to Cache Uparticle
Sassy Lobotomised OwlManaging spacing between elements and components on your page can be a tiring task if undertaken manually. This is where the lobotomised owl comes in: a short, simple snippet of CSS that simplifies this whole process for you. In this article I’ll explain how I make use of it in a more dynamic way using a SCSS mixin.published 14 January 2020 · 15 responses to Sassy Lobotomised Owlarticle
The Flip-Flop TechniqueI recently implemented a colour scheme toggler in the footer of my website, following Andy Bell’s guide, Create a user controlled dark or light mode, and I found a wonky but fun alternative solution for styling my dark theme which leverages CSS’s filter property.published 30 August 2019 · updated 07 September 2020 · 4 responses to The Flip-Flop Techniquearticle
Reply TargetsProviding a useful context to content written in response to someone else's blog post, tweet, toot, etc. helps a reader to understand the conversational nature of these back-and-forths. What abstractions can we make to the data that holds these reply targets, and how can those abstractions make for a richer reading experience and for a leaner publishing workflow?published 19 June 2019 · 6 responses to Reply Targetsarticle
LiquidBase60I have started auto-generating short-URLs for each of my posts, old and new, and opted to implement Tantek Çelik's NewBase60 for representing the unique URLs, but I've done so with Liquid so it plays nicely with my Jekyll-powered website.published 04 March 2019 · updated 08 August 2020article
Sparkline Sound-OffI have been following in the footsteps of Jeremy Keith for a few months now. Dotted around my website, now, are sparklines, representing my activity over time. As an added bonus, a little tune based on the sparkline's values plays when you click on it. With a moderate amount of musical theory under my belt, here's how I accomplished that audio delight.published 04 March 2019 · 5 responses to Sparkline Sound-Offarticle
Numerals, RomanticisedFor a better part of the year, I've been working on a Jekyll-based Progressive Web App, BloodBuilder, for managing my Sorcerer in a game of Pathfinder I've been playing with some friends. One of the many intricate parts of logic involves the ability to convert Arabic numerals to and from Roman numerals, so I wrote a simple Liquid include to handle this.published 07 November 2018 · 1 response to Numerals, Romanticisedarticle
Variables for BothNow that CSS Custom Properties, or CSS Variables, are becoming a solid standard, I'm using a method to map their values to CSS Variables whilst providing a value-as-is fallback using a straightforward syntax in a SCSS function and mixin.published 15 October 2018 · 9 responses to Variables for Botharticle
Crossing GuardsThrottle back on your scroll events and watch out for the IntersectionObserver!published 09 November 2017 · 3 responses to Crossing Guardsarticle
No Three Snowflakes Are AlikeI developed a Sass function to generate a list of unique pairs given a List or Map of data, so I extrapolated the idea and refactored the function to generate a series of unique groups of size n.published 03 November 2017article
Unique Pairs in SassIn creating a from-scratch grid for a redevelopment project, I was using Sass to loop through various bits of data to generate a bunch of repetitive CSS, but I realised I had no DRY way of generating a list of unique pairs of items from a given dataset, so I set out to find out how.published 16 June 2017 · 1 response to Unique Pairs in Sassarticle
Remapping Ranges in SassGreat inspiration can sometimes be found in exploring available opportunities and embracing new ideas. In this article, I'll try to replicate a foreign concept in a familiar way, and explain why I decided to even do it.published 15 June 2017 · 1 response to Remapping Ranges in Sassarticle
April LWS TalkI gave a talk at London Web Standards and asked the question, So how can we write media queries that are both consistent and succinct?published 29 April 2016article
Shoot for the MoonDon't be half-minded when dealing with fractions and pixels. How can we ensure all browsers interpret fractions in our CSS equally?published 23 March 2016article
An Extended ResponseIf you've dabbled in Sass before, you're likely familiar with @extend and @mixin, but is there any use-case for @extend? Given the benchmark performance of the two, can we still be confident in the cascade when @extending in Sass?published 18 March 2016article
Backscratching RevisitedI revised my original technique for styling default elements and took it a step further to scratch the greatest number of backs.published 08 June 2015article
Theming PinboardI recently decided I would embark on the task of theming Pinboard. Here's how I did it.published 12 March 2015article
On Your Marks, Get Set, WaitWhat's really important when reading an article online? Content should always come first, and give users the option for more later.published 22 September 2014article
A Slice of HeavenWe know that webpages are composed of text and boxes. Lots and lots of boxes. But with the power and might of CSS3 we can do some fancy stuff that never used to be possible.published 27 August 2014article
Let’s Look BackI haven't published a new article in a while now, but I haven't been twiddling my thumbs. Let's look at what happened behind-the-scenes in the last eight months since my first article.published 09 February 2014 · 2 responses to Let’s Look Backarticle
I’ll Scratch Your Back, And Mine TooI've been playing around with CSS content and attribute selectors recently, and came across a useful trick for styling default elements.published 29 October 2013article
Viewport WoesI've been around the block and seen just about every combination of variables and syntax in viewport meta tags. What's the correct way to go about it? And maybe I'll comment on the state of browsers today as well.published 29 August 2013article
Persistent ShadowsHow easy is it to keep a shadow's direction consistent whilst rotating an element?published 18 June 2013article
Annoying Navigation CSSNavigation is crucial to a functional website. It is how your users find the information they're after; get it right, and your users are happy—get it wrong, and they go insane!published 16 June 2013article
First Article EverWell, I've finally gotten my site up and running to a point where I can consider it to be a success. What was the process, and what did it involve? What mistakes did I make that you can avoid?published 15 June 2013article