Skip to content

Is the sticky thing stuck? Is the snappy item snapped? A look at state queries in CSS

Three purple squares agains a pastel background, the middle square has some comic explosion lines on it and reads snap

Oh, how I wanted to write this title for some time! I have Googled these questions before when working with sticky positioning and scroll snapping. It looks like we are finally getting an answer to these questions in the form of CSS state queries and I have been eagerly waiting to play around with this since CSS Day 2023. In this article, I want to show a few first impressions and demos I created with state queries in CSS and Scroll Snap events in JavaScript.

Read moreabout Is the sticky thing stuck? Is the snappy item snapped? A look at state queries in CSS

A spec update on CSS anchor positioning

A boats anchor agains a futuristic background with rectangle patterns, with text updated on it

The CSS Working Group (CSSWG) has recently introduced changes to the anchor positioning spec in CSS. I've focused on anchoring in previous articles and to maintain accuracy, I will be updating an older article (just this once). This article will highlight the specific name changes and their corresponding Chrome release dates.

Read moreabout A spec update on CSS anchor positioning

It’s Time To Talk About “CSS5”

Smashing Magazine

Have you ever wondered what happened after CSS3? The W3C CSS-Next community group is actively searching for better approaches for how we describe the evolution of CSS over time and identify feature sets as effectively as we did with CSS3 way back in 2009 — and you can help.

Read more about It’s Time To Talk About “CSS5” (Smashing Magazine)

An update on invokers: Invoker commands in HTML

Open UI logo with text invokers below it

One thing I’ve learned over the last year is to deal with changes in explainers and specs and that naming things is hard. In this update on Invokers, I will cover the new syntax and the new name: Invoker Commands. Once again giving you some control over interaction with HTML from opening dialog elements to creating custom counter buttons and video controls.

Read moreabout An update on invokers: Invoker commands in HTML

This was CSS Day 2024 - the 10th edition

iO tech_hub

Another year, another CSS Day. I’m always happy to return to Amsterdam for this occasion, It’s one of the things I look forward to every year. So naturally, I’m happy that iO still allowed me to go there with my training budget, and the least I could do, is write a summary of this event on the tech_hub.

Read more about This was CSS Day 2024 - the 10th edition (iO tech_hub)

Let’s hang! An intro to CSS Anchor Positioning with basic examples

A boats anchor agains a futuristic background with rectangle patterns

The CSS anchoring API is something that I’ve been following for at least a year now, and I’m happy to see that the first level is fully specced. Even though there are still some shortcomings that I’ll cover in this article as well, the available things look pretty solid and will help us a lot in creating some complex layout structures. Besides that, they are very much needed for the future of the HTML Popover API and stylable selects.

Read moreabout Let’s hang! An intro to CSS Anchor Positioning with basic examples

Modern CSS Layouts: You Might Not Need A Framework For That

Smashing Magazine

It’s easy to get lost in a sea of CSS frameworks and libraries, each promising easier styling and smoother layouts. But amidst this abundance, the modern CSS features we have today offer simpler and more flexible approaches without the added dependencies or abstractions. In this article, I demonstrate four CSS utility classes (plus a bonus) using techniques that allow them to be used practically anywhere you need a particular layout — be it Grid or Flexbox — with configurable options.

Read more about Modern CSS Layouts: You Might Not Need A Framework For That (Smashing Magazine)

Invoking elements by using only HTML: A first look at invokers

Open UI logo with text invokers below it

Wouldn’t it be cool if we could click on a button to open a modal with just HTML? How about those file input elements? Imagine that creating a custom play button for video controls would be an easy thing to do. How about custom counter buttons for a number input? This is where the idea of invokers comes in. It’s currently available behind a flag to play around with and it’s definitely one of the most exciting advances in HTML to look out for.

Read moreabout Invoking elements by using only HTML: A first look at invokers

Animating clip paths on scroll with @property in CSS

A polaroid like frame holding an image, with a rotate and scroll icon next to it

While experimenting with CSS, you sometimes discover a technique you want to do more of. This is one of those discoveries for me... I love how we can now animate clip paths on scroll with CSS. From animating an image into a star to creating Polaroid-like images on scroll. In this article, I’d like to demo some techniques we can use to create these interesting effects using clip paths, @property, and even container units to create visually pleasing scroll-driven animations.

Read moreabout Animating clip paths on scroll with @property in CSS

Going beyond pixels and (r)ems in CSS

iO tech_hub

There are a lot of CSS units available at the moment and we mostly still rely on pixels and (r)ems for our sizing and fonts. I say it’s time to do a little freshening up. In this mini-series I will be going around all the current length units in CSS with practical examples.

Read more about Going beyond pixels and (r)ems in CSS (iO tech_hub)

Taking a closer look at @property in CSS

Browser support for @property nears completion, a great time to delve into some technical aspects of this CSS feature. While I've experimented with @property in demo settings before, I’ve never used it in a production environment. With the upcoming full browser support, let’s take a look at the inner workings and uncover some of the benefits.

Read moreabout Taking a closer look at @property in CSS

CSS Scroll Snapping Aligned With Global Page Layout: A Full-Width Slider Case Study

Smashing Magazine

Have you run into a situation where you need the padding of one element to align with the padding of another element? It’s a common debacle, especially when a page layout is set with global padding? In this article I demonstrate that issue with a full-width slider component that breaks out of the main page container using a couple of techniques to keep it visually aligned with other elements on the page.

Read more about CSS Scroll Snapping Aligned With Global Page Layout: A Full-Width Slider Case Study (Smashing Magazine)

Elevate your CSS debugging skills with these Chrome DevTools tricks in 2024

From layers and specificity to nesting, from HD color to (scroll) animations. If there is one thing that makes me keep using Chrome as my default browser while developing, it has to be the DevTools and the information we can find about them. As we’re slowly entering the last part of the year, I thought a cool roundup of new CSS debugging tools would be a great article. Let’s dive into it.

Read moreabout Elevate your CSS debugging skills with these Chrome DevTools tricks in 2024

Animations and transitions from and to display none with @starting-style

A todo list that is animated

One of the frustrating things when animating elements was not being able to transition to and from display none. Related to that, it also wasn’t an easy feat to use transitions for elements entering the DOM. In Chrome 117 we have the release of @starting-style, which will make animating or transitioning those cases a lot more convenient.

Read moreabout Animations and transitions from and to display none with @starting-style

Grid ideas: Creating a CSS subgrid utility class for rows

A CSS grid with subgrid alignment

A full evergreen browser support for CSS subgrid is just around the corner. Time to have a look on how we can create some interesting implementations in our design systems. This article will be focussing on grid-template-rows with subgrid.

Read moreabout Grid ideas: Creating a CSS subgrid utility class for rows

Scroll driven animations in CSS are a joy to play around with!

Scroll driven animations example of a timeline

Scroll Driven Animations are set to be released in Chrome 115, giving us the chance to animate elements based on a scroll instead of time, increasing our toolset to create some fun interactions. I’m sure many great tricks and articles will be found, as this feature opens a lot of possibilities.

Read moreabout Scroll driven animations in CSS are a joy to play around with!

Going beyond constants with custom properties

iO tech_hub

If you love CSS, you've probably heard of custom properties (a.k.a. CSS variables) before. Still, a lot of people seem to use them as constants for their CSS. In this article, I will try to give you some more insights on how you can use these custom properties to create some smart systems or even use them as booleans in CSS and create easy progressive enhancements.

Read more about Going beyond constants with custom properties (iO tech_hub)

This was CSS day 2023

Speakers on stage at css day

Another year, another CSS day. I'm not joking or exaggerating that this conference has and always will be one of my highlights of the year. Welcoming, top speakers accompanied with just totally geeking out with other CSS people around food and drinks. This was CSS day 2023 - a short summary.

Read moreabout This was CSS day 2023

The button case - Using custom properties for a smart button system

Layered buttons

Recently, I've created a presentation named “so, you're still not using custom properties?” In this article, I want to highlight a part of that presentation. Custom properties have been available to us for quite some time now. And creating a smart button design system is just one of the many things where they can shine.

Read moreabout The button case - Using custom properties for a smart button system