(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.data-privacy-src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-1596564-1', 'auto'); ga('send', 'pageview');


Home » CSS

Happier HTML5 form validation in Vue

2020-12-07T03:01:37+01:00December 7th, 2020|Categories: News, Tutorials|Tags: |

It’s kind of neat that we can do input:invalid {} in CSS to style an input when it’s in an invalid state. Yet, used exactly like that, the UX is pretty bad. Say you have <input type="text" required>. That’s immediately invalid before the user has done anything. That’s such a bummer UX that you never [more]

How to create a client-serverless Jamstack app using Netlify, Gatsby and Fauna

2020-12-07T03:01:36+01:00December 7th, 2020|Categories: News, Tutorials|Tags: |

The Jamstack is a modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup. The key aspects of a Jamstack application are the following: The entire app runs on a CDN (or ADN). CDN stands for Content Delivery Network and an ADN is an Application Delivery Network.Everything lives in Git.Automated builds run [more]


2020-11-13T03:09:45+01:00November 13th, 2020|Categories: News, Tutorials|Tags: |

I’ve been saying for years that a pretty good icon system is just dropping in icons with inline <svg> where you need them. This is simple to do, offers full design control, has (generally) good performance, and means you aren’t smurfing around with caching and browser support stuff. Along those lines… using <img> isn’t the [more]

How to Work With WordPress Block Patterns

2020-11-13T03:09:43+01:00November 13th, 2020|Categories: News, Tutorials|Tags: |

Just a little post I wrote up over at The Events Calendar blog. The idea is that a set of blocks can be grouped together in WordPress, then registered in a register_block_pattern() function that makes the group available to use as a “block pattern” in any page or post. Block patterns are becoming upper-class citizens [more]

A Spreadsheet Importer You’ll Enjoy Using

2020-11-13T03:09:40+01:00November 13th, 2020|Categories: News, Tutorials|Tags: |

A great developer tool takes a painful task that would normally be a developer’s entire job, and makes it a pleasure to do. As a personal example, I’ve needed to build an image uploading experience many times in the past. I’ve hand-coded them and experienced far too much pain doing that. Then I used Filestack [more]

My WordPress Comments Wishlist

2020-11-12T03:09:29+01:00November 12th, 2020|Categories: News, Tutorials|Tags: |

A built-in commenting system is one of the reasons people reach for WordPress (and often stay there long-term). While I do think having a comment system is compelling (and as big of a fan of building on WordPress as I am), I find the comments system on WordPress quite crusty. It needs some love! There [more]

Libraries for SVG Drawing Animations

2020-11-12T03:09:24+01:00November 12th, 2020|Categories: News, Tutorials|Tags: |

In 2013, Jake Archibald introduced this cool trick of animating an SVG path to look like it’s drawing itself. It’s 2020 now, and the trick is still popular. I’ve seen it on a lot of websites I’ve visited recently. I, too, feature an animated SVG loader on my website using one of the libraries I’ll [more]