The five best design links, every weekday

Domain: bram.us

bram.us

Scroll-Driven Animations: Style an element based on the scroll direction & speed

Combine Scroll-Driven Animations with @​property, transition-delay, calc(), sign() and abs() … and you can do Scroll Detection using only CSS!

bram.us

What’s new in CSS?

Slides of the talk “What’s new in CSS” I gave at Frontmania.

bram.us

The Future of CSS: Easy Light-Dark Mode Color Switching with light-dark()

A function that computes to the first color if the used color scheme is light or unknown, or to the second color if the used color scheme is dark.

bram.us

A quick introduction to CSS @scope

Have you heard about CSS @scope? It’s an upcoming way to scope the reach of your CSS selectors.

bram.us

Faking a :snapped selector with Scroll-Driven Animations

(Ab)using Scroll-Driven Animations to apply styles on elements that are snapped within their scroll-snapping enabled ancestor scroller.

bram.us

Rearrange / Animate CSS Grid Layouts with the View Transition API

Animate elements in a grid layout as new items are added, items change size, etc.

bram.us

Using :is() in complex selectors selects more than you might initially think

Because selector matching in browsers happens from right to left, you might end up with more matches than you expected when using :is().

bram.us

Sibling Scopes in CSS, thanks to :has()

Leverage CSS :has() to select all siblings between two element boundaries.

bram.us

A :nth-child(An+B [of S]?) polyfill thanks to CSS :has()

The :has() selector is way more than just a “parent selector”…

bram.us

Upgrading colors to HD on the web

Let’s take a look at how we can progressively enhance the color experience on the web, accessing color spaces such as display-p3.

bram.us

Dark Mode Toggles Should be a Browser Feature

When implementing Dark Mode and ways to toggle it, developers currently need to duplicate code and roll their own toggle implementation.

bram.us

The Future of CSS: CSS Toggles

CSS toggles are a mechanism for associating toggleable state with a DOM element.

bram.us

The CSS :has() selector is way more than a “Parent Selector”

Safari TP 137 just dropped with unflagged support for :has(). Often dubbed “the parent selector”, :has() is way more than that…

bram.us

CSS in 2022

With 2021 coming to an end, let’s take a look at which CSS language features we can expect to land in browsers in 2022.

bram.us

The Future of CSS: Cascade Layers (CSS @layer)

When authoring CSS we have to carefully think about source code order, selector specificity, and the use of !important.

bram.us

The Large, Small, and Dynamic Viewports

There are some changes being proposed regarding viewport units, finally solving that “100vh in Safari on iOS” issue.

bram.us

The Future of CSS: Scroll-Linked Animations with @scroll-timeline (Part 2)

Create (pure CSS) Scroll-Linked Animations with Element-based Offsets using @scroll-timeline from the “Scroll-linked Animations“ CSS Specification.

bram.us

Animating a CSS Gradient Border

Recently, Stephanie Eckles sent out a call to revive the use of CSS border-image. Not to use it with images but to create Gradient Borders in CSS.

bram.us

The future of CSS: Higher Level Custom Properties

Higher Level Custom Properties are Custom Properties that control multiple other CSS Properties.

bram.us

Native Aspect Ratio Boxes in CSS thanks to aspect-ratio

In “CSS Box Sizing Module Level 4” a new aspect-ratio CSS property is defined. Let’s take a look at how to use it.