Content filed under “css”
A primer on the cascade and specificity
Often feared by developers, the cascade and specificity is actually really simple if you utilise the right mental model when authoring CSS.
How we’re approaching theming with modern CSS
We’ve started a new project which requires heavy, creative theming, so I made a prototype to test some ideas out.
The box model and box sizing
To open up this CSS Fundamentals series, we’re looking at one of those most important aspects of CSS to understand: how the box model is affected by box sizing.
Some little ways I’m using CSS :has() in the real world
I’ve created some low fidelity demos of :has() snippets that I’ve been using in real-world client projects.
A CSS project boilerplate
For the many folks who ask how I write CSS since removing Sass, this is how I and the Set Studio team do it in 2024.
Interop 2024
After the success of previous years, it’s great to see Interop is back in 2024. In this post, I note down what I’m looking forward to.
Happy international box sizing awareness day
My all-time favourite CSS technique — courtesy of Paul Irish — celebrates another birthday.
A highly configurable switch component using modern CSS techniques
Learn how build a highly configurable switch component using modern CSS, such as :has(), container queries, Logical Properties and Custom Properties.
Reality Check #3: Building out a layered hero grid layout from Dribbble
In this edition of Reality Check, I tackle an interesting grid layout that also features some pretty unique background image treatment.
LH units are cool
Reality Check #2: Building out a fancy 404 page from Layers
Reality Check #1: Building out a furniture site from Dribbble
A (more) Modern CSS Reset
I wrote “A Modern CSS Reset” almost 4 years ago and, yeh, it’s not aged overly well. I spotted it being linked up again a few days ago and thought it’s probably a good idea to publish an updated version.
My favourite 3 lines of CSS
Line heights in CSS work better with ratios
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.
Prevent squishy elements with flex none
You can prevent that annoying squished look that elements like icons get when space runs out in a flex context with flex: none.
Build a fancy hover animation
Learn how to use the power of CSS to take any collection of images and make them blend well together with a fancy interactive state.
Container Queries are actually coming
After years of asking and memes, we’re finally getting container queries and they will transform UI design, just like media queries did.
Use transparent borders and outlines to assist with high contrast mode
It’s tempting to use a sharp box shadow for focus styles to both remove the default focus ring and to get around sharp outline corners. With this method, you can create problems for Windows High Contrast users, so this quick tip will help you get the best of both worlds.
Fluid typography with CSS clamp
Learn to create a simple, accessibility friendly and configurable fluid type system that uses modern CSS sizing functions.
Add inline SVG directly in your CSS
CSS Frameworks, hype and dogmatism
Some notes on the dogmatism and gatekeeping themes of Tech Twitter and how they can generate often incorrect and naive statements—specifically about frameworks and methodologies.
Add scroll margin to all elements which can be targeted
We can add an extra bit of space to targeted elements, thanks to modern CSS!
Control changing numbers with font variant numeric
Get the benefits of monospaced fonts with your favourite (supported) non-monospaced fonts.
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.
Build a fully-responsive, progressively enhanced burger menu
In this premium tutorial, we’re going to build a burger menu from the ground up, using progressive enhancement, ResizeObserver, Proxy state and of course, super-solid HTML and CSS that pull from the CUBE CSS principles.
What are design tokens?
Design tokens are just spicy variables, right? Wrong! They are an extremely versatile way of sharing design properties and in this tutorial, you’ll learn how they work.
Flow CSS Utility
Build a responsive media browser with CSS
Using the power of modern CSS layout, we create a flexible media browser and video player layout that maintains its aspect ratio at all viewports.
Use grayscale filter to see where you are relying too much on colour
Create a line break while maintaining inline status
Visually hide an element with CSS
Build a dashboard with CUBE CSS
An in-depth guide to going from HTML all the way to a full styled banking dashboard, using the CUBE CSS methodology
Squishy button active state
Aligning description lists with CSS Grid
Contains CSS attribute selector
Easy horizontal and vertical centering in CSS
A safer way to vertically fill the viewport
Make a button element look like a link
Limit line lengths to increase readability
Responsive borders with CSS outline
CUBE CSS
A CSS methodology oriented towards simplicity and consistency with a heavy dosage of pragmatism.
CSS Logical Properties
Create spacing that works regardless of the direction of your content or the environment of your users.
Create a responsive grid layout
Even with no media-queries, we can create a flexible and powerful responsive layout.
Creating a full bleed CSS utility
Break out of the mould of your fixed-width container to create visual interest.
Create a semantic breakout button to make an entire element clickable
Create a user controlled dark or light mode
Automatic dark and light themes, based on system user-preferences, are handy but in this tutorial, we take that one step further and give our users control.
Create a split, faux-container layout with CSS Grid and Flexbox
Two simple methods to vertically and horizontally center content with CSS
Relative sizing with EM units
Responsive units, like EM units, are super powerful and in this tutorial, you’ll learn how to use that power to give your front-ends resilience
Creating an aspect ratio CSS utility
Get a CSS Custom Property value with JavaScript
A progressive disclosure component