Chris Bolson

@cbolson.bsky.social

The best dependency is no dependency 🔗 https://codepen.io/cbolson

From 13 teams in 1930 to 48 teams in 2026 ⚽ This World Cup timeline demo covers every tournament, revealing stats, results and highlights using CSS animation-trigger with a scroll-driven animation fallback. See the demo on @codepen.io : codepen.io/editor/cbols...

World Cup Timeline using animation-trigger

My final CodePen demo to celebrate the 2026 FIFA World Cup. This timeline showcases every FIFA World Cup tournament, from the inaugural competition in

codepen.io

A new #cssonly demo: scroll-triggered counters. In supporting browsers (Chrome only currently), counters count up when scrolled into view. Built with `timeline-trigger`, `animation-trigger`, `attr()`, `@property` and `sibling-index()`. See the demo on @codepen.io: codepen.io/editor/cbols...

CSS only counters using timeline-trigger, animation-trigger & attr()

This demo uses the experimental timeline-trigger and animation-trigger properties to start CSS animations when the counters enter the viewport. The co

codepen.io

As the 2026 World Cup enters the knockout stage, I challenged myself to build a CSS-only tournament bracket ⚽️ Using attr(), style queries and plenty of :has(), the bracket updates as you pick each winner—all without JavaScript. Check out the demo on @codepen.io : codepen.io/editor/cbols...

2026 World Cup Knock-Out Stages #cssonly

This bracket is 100% CSS, the logic being defined by multiple :has() selectors. Not overly practical but a fun CSS only challenge. Select the team tha

codepen.io

It looks like I may have pushed my luck with the Custom Selects. I tried to combine it with the experimental carousel using ::scroll-marker etc. It does work in that it displays the markers and they are highlighting on hover. However clicking on them seems to be just too much for the browser 😅

The <select> element has been tough to style for decades. appearance: base-select changes that. We'll walk you through full CSS control, rich HTML options, and keeping it accessible — all while leveraging the power of the native element.

Rediscover the HTML select element - WWDC26 - Videos - Apple Developer

Learn how to unlock full control of styling select menus on the web. The HTML select element is getting a major upgrade with a new CSS...

developer.apple.com

This has to be one of my favorite @codepen.io collections right now: codepen.io/collection/G... It contains my demos where I've been testing out the new customizable <select> element. With Safari 27 adding support, fully customizable select lists are starting to feel like a real possibility!

Custom Select - a Collection by Chris Bolson on CodePen

My Custom Select demos that explore and push the boundaries of the experimental custom select styling.

codepen.io

⚽ Football Team Selector Pick a team and the formation reconfigures as players transition into their new positions. Team shirt colors update too. Built with custom select styling, anchor positioning, advanced attr() functions, and container style queries. See the full demo on @codepen.io

It makes my month when Alvaro picks one of my CodePen demos, thanks @alvaromontoro.com ! The one that Alvaro features in his April top 10 was slightly different than my usual demos as I had a go at some CSS art to help celebrate the Artemis 2 Moon Flyby.

Álvaro Montoro@alvaromontoro.com · 3mo ago

10 Cool CodePen Demos – April 2026 alvaromontoro.com/10-cool-code... CSS Art (lots of CSS Art!), accordions, scroll-driven animations, components, JS games... and more! #css #html #javascript #webdev

Just another clock… but really an excuse to play with CSS anchor positioning to place time labels along expanding clock-hand rings. JS updates a few CSS custom properties, whilst CSS uses and display the values. The cheese color swapper was just an extra bit of fun. See the demo on @codepen.io