Some little ways I’m using CSS :has() in the real world

There’s a lot of chatter around the new(ish) :has() pseudo-class. It’s something we’ve been crying out for, for years: being able to select parent elements! A useful mental model for :has() is that you are querying the parent’s children’s state and/or presence rather than selecti … | Continue reading


@piccalil.li | 8 months ago

The Fifty-Fifty Split and Overflow

I saw the title of this post and thought “yeh I know how to do this” but boy are my techniques antiquated. I’ve historically used extra elements and dodgy flex-basis hacks for overflow content in stackable layouts. Prior to that, it was — like Ryan mentions — absolute positioning … | Continue reading


@piccalil.li | 8 months ago

The Fifty-Fifty Split and Overflow

Ryan Mulligan demonstrates not just some elegant layout work but also, a very tidy method of dealing with overflow content. | Continue reading


@piccalil.li | 8 months ago

The path to becoming a publisher

In my 2023 wrap-up post I said the following: I also see a gap in publications. CSS-Tricks is done now, and unfortunately, been abandoned. A List Apart has seemingly experienced the same too. At least Smashing is flourishing, but there’s a hole that’s been left by CSS-Tricks espe … | Continue reading


@piccalil.li | 9 months ago

CSS :has() Interactive Guide

I’m an Ahmad Shadeed super fan, I’m not going to shy away from that. This is because Ahmad is one of the best in the biz at explaining CSS capabilities. I’ve seen a lot of content about the new(ish) :has() pseudo-class since it arrived and while a lot of the content is good, it’s … | Continue reading


@piccalil.li | 9 months ago

Speedier tunes

I’ll be honest, I have not given the useful content-visibility CSS property much of a run out in production code for similar reasons that Jeremy outlines: The first gotcha is that if a browser doesn’t paint the element, it doesn’t know how much space the element should take up. S … | Continue reading


@piccalil.li | 9 months ago

Tailwind vs. Semantic CSS

This is a really fascinating article to read through. It’s very weighted towards semantic CSS, but the data doesn’t lie: it’s clearly better all around than atomic utility CSS. But, the atomic approach does work for certain contexts and certain teams. As Tero says: Because master … | Continue reading


@piccalil.li | 9 months ago

Front-End challenge: progress indicator

Ooof it’s been a while since there was a Front-End Challenges Club. Just [checks notes] 3 and a half years… This is a handy little component that visually shows progress on a circular path. On the surface, it looks simple, but there’s lots to consider with state and how assistive … | Continue reading


@piccalil.li | 9 months ago

Event currentTarget to the rescue

If you’ve attached an event to an element and queried the event target inside its event handler, you’ve probably found that if there are child elements, they can end up being the event target. I’m talking about this sort of thing: A label document.querySelector('button').add … | Continue reading


@piccalil.li | 9 months ago

Removing list styles without affecting semantics

I love a short and powerfully useful article. This one is especially useful to me, because I account for the problem Manuel is solving in my CSS reset: ul[role='list'], ol[role='list'] { list-style: none; } The reason I have it in the reset is because I’m making a presumption ab … | Continue reading


@piccalil.li | 9 months ago

Smashing hour - April 30th 2024

I’m really excited about this. Vitaly is one of the best in the biz to spend time with, talking shop. It’s always a really engaging conversation and I know we’ll cover loads of ground together. It’s on April 30th 2024, 5pm CET, and we’ll spend an hour chatting design, scaling CSS … | Continue reading


@piccalil.li | 9 months ago

CSS Scroll-triggered Animations with Style Queries

I love articles like this. Very concise and to the point, breaking down a concept that is pretty difficult into something much easier to understand. I’m not a smart person either, so it takes me ages to get stuff. Articles like this are gold for me. It’s great to see Ryan riffing … | Continue reading


@piccalil.li | 9 months ago

Some use cases for revert-layer

Every now and then, I stumble across a CSS article that blows my goddamn mind and this is one of them. I’ll be honest, I’m only recently starting to see the true benefit of CSS layers recently, but I think this article is gonna radicalise me into getting really into them. My favo … | Continue reading


@piccalil.li | 9 months ago

A CSS project boilerplate

When it comes to the core of CSS stuff, we do things very much the same each time at the studio. The output varies project-to-project, but the core principles stay the same regardless. Because of that, I recently created a boilerplate which I’ve made open to everyone. I thought i … | Continue reading


@piccalil.li | 9 months ago

The legendary Codrops are on Patreon

Codrops are one of those publications that have been around forever but managed to maintain a superb standard of content. I’ve learned all sorts of cool, weird and wonderful ways to boost visual quality of my design and front-end work thanks to them, over the years. They also run … | Continue reading


@piccalil.li | 9 months ago

Offloading JavaScript With Custom Properties

If you ever wanted an illustration of benefit of a broad skillset, this post is it. There’s so much benefit in understanding how both CSS and JavaScript work and where each technology thrives. Heydon’s write up illustrates another great example of Custom Properties being bloody u … | Continue reading


@piccalil.li | 9 months ago

Interop 2024

I’ve been slightly behind the curve this year in terms of Interop, but I’ve finally caught up and I’m quite optimistic. If you don’t know what Interop is, I’d strongly recommend you give this a read from the 2022 edition. There’s 12 focus areas this year, of which I’m only really … | Continue reading


@piccalil.li | 9 months ago

New GitHub Copilot Research Finds “Downward Pressure on Code Quality”

I don’t find this surprising, but I also don’t think this is a damning indictment of tools like CoPilot. They can be useful to unblock you if you’re stuck, but I sure as hell wouldn’t trust the code it suggested verbatim. This quote is interesting to me: Developers who used GitHu … | Continue reading


@piccalil.li | 9 months ago

Some information about my upcoming workshop and course

Workshop In May, I’ll be running a workshop for my extremely good friends over at SmashingConf. The title of the workshop is “Scalable CSS Masterclass”. The aim of the game in this workshop is not just to teach you how to write better CSS, but also to teach you all the lesser-cov … | Continue reading


@piccalil.li | 9 months ago

How to align the text of the last paragraph line

I’m the same as Stefan here: I honestly can’t see myself using this property because justified text can be a bit of an accessibility nightmare, but should I ever need to use it, knowing there’s a better way to to control that last line is useful. One to store in the ol’ CSS knowl … | Continue reading


@piccalil.li | 9 months ago

Happy international box sizing awareness day

My favourite CSS techniques are the ones that are tiny but have a huge impact. Step up the global box-sizing technique, which Paul Irish published in 2012. Chris Coyier declared February 1st, International box-sizing awareness day, which I also celebrate every year. This is how I … | Continue reading


@piccalil.li | 9 months ago

Utopia SCSS Library

I don’t really use Sass anymore, but a lot of people do. Rightly so: it’s great! I’ll tell you what else is great: Utopia. I’m somewhat of a super fan, so anything Trys and James add to the project is immediately welcomed by me. I think this particular feature is a great addition … | Continue reading


@piccalil.li | 9 months ago

It feels like React is getting a bit of a kicking recently

It feels like React is getting a bit of a kicking recently, which I’m not 100% against, but I can’t stress enough how ingrained React is. It’s what happens when a framework or library is the hot topic for over a decade! I’ve just been reading “Removing React is just weakness leav … | Continue reading


@piccalil.li | 10 months ago

A highly configurable switch component using modern CSS techniques

Safari Technology preview has recently added a native switch component with version 185 and 186, which is great! It’s going to be a long while before this is ready to rock on a production website though. Still, this collection of demos is worth enjoying. Here’s a video for those … | Continue reading


@piccalil.li | 10 months ago

Kind of annoyed at React

I think it’s quite well known that I’m not exactly React’s Biggest Fan™, but y’now, we gotta use it for clients in the studio sometimes. Cassidy’s article definitely rings true for me: I’ve found it particularly difficult to be in tune with React over the last couple of years. I … | Continue reading


@piccalil.li | 10 months ago

Low-tech Eleventy Categories

One of my favourite features of WordPress is how quick and easy it is to categorise posts, then even better, grab an RSS feed for that category. It’s what powers Set Studio’s newsletter, for example. I’ve been doing some recent updates to this site and although the category syste … | Continue reading


@piccalil.li | 10 months ago

Steady has a great new homepage

What I love about this site is there’s so little copy, but it’s really well written. The type is also massive, which my tired eyes love. The design details are out of this world, like the animations that are subtle, speedy and tasteful rather than completely dominant. The imagery … | Continue reading


@piccalil.li | 10 months ago

Urlbox

There’s one thing I do not have the patience for: puppeteer and headless Chrome. I very much subscribe to the “just let me pay for something that works” methodology because I ain’t got the skills to be tinkering around with back-end. Step up Urlbox for capturing screenshots of we … | Continue reading


@piccalil.li | 10 months ago

Piccalilli Links

You might have noticed that I’m starting to share links on here. There’s a hole that’s been left by publications like CSS-Tricks and A List Apart going quiet, along with the Great Fragmentation™ of social media, since Elon Musk bought — and crapped all over — Twitter. There’s a m … | Continue reading


@piccalil.li | 10 months ago

12 Modern CSS One-Line Upgrades

This is such a handy run-down of CSS features that have a really high support level that you might not have realised. One that surprised me was how well supported the logical property shorthands like margin-inline are. I, for some reason, thought the explicit ones like margin-inl … | Continue reading


@piccalil.li | 10 months ago

Automated weekly links posts with raindrop.io and Eleventy

This is so cool by Sophie. Over the years, I've gone from “we need to build bespoke” to “let's stitch some services together for the first iteration > measure > then use that to build bespoke if still required”. Sophie’s new weekly link posts setup is exactly that: some stitched … | Continue reading


@piccalil.li | 10 months ago

Designing better target sizes

This latest offering from Ahmad is highly interactive and highly informative. It’s also making me think that although gap is useful for layout, it might be worth re-visiting negative margins and padding-based layouts for clusters of interactive elements, like navigation 🤔 … | Continue reading


@piccalil.li | 10 months ago

Reality Check #3: Building out a layered hero grid layout from Dribbble

First up, you may have noticed that Reality Check now has a new home. I've moved it from Set Studio's blog to here because I think it makes more sense here, based on the technical nature of the content. This is also my first post since deciding to bring back Piccalilli. I wanted … | Continue reading


@piccalil.li | 10 months ago

Piccalilli will return in 2024

I’m going to be writing a lot of content in 2024 and I’ve been working out where that should live. I’ve decided that Piccalilli is the best place for it. I know I haven’t posted on here in a long time, but I’ve been caught up, founding a design studio: Set Studio. I’ve got a fant … | Continue reading


@piccalil.li | 11 months ago

A (more) Modern CSS Reset

I know I also have a terrible record with open source maintenance, so I thought I’d archive the original and just post this instead. Do with it what you want! To be super clear, this is a reset that works for me, personally and us at Set Studio. Whenever I refer to “we”, that’s w … | Continue reading


@piccalil.li | 1 year ago

A CLS punishment for progressive enhancement?

I’ve been doing the finishing touches on some client work recently and a part of that is making sure we get 100s across the board in lighthouse. That’s so important to me that I make it a deliverable for Set Studio projects. With that testing, I uncovered a doozy. We were getting … | Continue reading


@piccalil.li | 2 years ago

I used Tailwind for the U in CUBE CSS and I liked it

A client project requirement meant I made a CUBE CSS with Tailwind prototype that actually turned out really well. | Continue reading


@piccalil.li | 2 years ago

Piccalilli and the Discord are closing down

I’m setting up a new agency and that means piccalil.li and the Discord are closing down, but all the content is moving to set.studio. | Continue reading


@piccalil.li | 3 years ago

Learn Eleventy From Scratch is now open source

Continue reading


@piccalil.li | 3 years ago

3 Years

I talk about how I was made redundant 3 years ago and how that’s resulted in lots of freelance success. | Continue reading


@piccalil.li | 3 years ago

Learn CSS From Scratch isn’t happening and other updates

Now that we created the Learn CSS course that is free to everyone, the Learn CSS From Scratch course is redundant. The membership perks are changing too. | Continue reading


@piccalil.li | 3 years ago

Wholesome places to discuss tech away from Twitter

It may seem like it, but Twitter isn’t the center of everything for tech. Here’s some places you can hang out away from Twitter that are very good. | Continue reading


@piccalil.li | 3 years ago

Getting started with CSS Custom Properties

Custom properties in CSS are exceptionally useful, not just for tokenising your CSS, but also for abstracting complexity and interactivity into smaller, easier to manage pieces. This short guide will get you up to speed with how they work and how to use them. | Continue reading


@piccalil.li | 3 years ago

Define delay for each property in the transition shorthand

You can set a different delay for each transitioned property, using the transition shorthand, which creates some pretty cool state changes. | Continue reading


@piccalil.li | 3 years ago

Container Queries are coming and they'll transform UIs like media queries did

After years of asking and memes, we’re finally getting container queries and they will transform UI design, just like media queries did. | Continue reading


@piccalil.li | 3 years ago

Use CSS Clamp to create a more flexible wrapper utility

A handy way to use modern CSS functions to give yourself fine-grained, yet flexible, design control. | Continue reading


@piccalil.li | 3 years ago

A minimum viable experience makes for a resilient, inclusive website or app

I explain what a minimum viable experience is and how I think it’s a crucial part of progressive enhancement’s role in building resilient websites and apps for the web. | Continue reading


@piccalil.li | 3 years ago

Cube CSS – A CSS methodology oriented towards simplicity and consistency

A CSS methodology oriented towards simplicity and consistency with a heavy dosage of pragmatism. | Continue reading


@piccalil.li | 4 years ago