skip to content

🚧 Site styles are under construction. Please enjoy the minimalism. 🚧

Code

see all tags

Intrinsic CSS with Container Queries & Units

Container queries & units have a lot to offer as we enter a more content-out era of Intrinsic Web Design, but they also come with some limitations of their own. Join Miriam to learn about how the feature works, how to start using it in production, and what to look forward to as Container Queries continue to evolve.

Cascading Layers of !mportance

Earlier this year, all the major browsers released Cascade Layers, with the potential to fundamentally change how we write styles – especially in an age of design systems, component libraries, and third-party tools. But fundamental changes require us to re-think how all the pieces fit together.

No Demo [Website] Reno

I want to re-think the front-end of my site, without too much change to the (Eleventy/Markdown) content that drives it. And I want to do it slowly.

Not All Zeros are Equal

@ OddBird.net

There’s a well-established ‘best practice’ that CSS authors (as well as linters and minifiers) should remove units from any 0 value. It’s a fine rule in most cases, but there are a few common situations where it will break your code.

Body Margin 8px

All browsers add an 8px margin on the body element – it’s part of the w3c-recommended default stylesheet which browsers generally use as a starting point for their own ‘user agent’ styles. But why 8px? Where does that come from?

Every Transition is a Page Transition?

@ OddBird.net

There’s a new web API proposal for transitioning shared-elements across pages. It’s great for making smooth page transitions, but what if we apply it to individual elements with changing styles on a single page?

Complex vs Compound Selectors

In CSS, there are compound selectors and also complex selectors, and I never remember which is which. Do you need to learn the difference? Probably not. But I’m tired of looking it up.

Developing the Future of the Internet

@ Wix, Now What?

Miriam talks to Now What? about why the internet looks the way it does, why designers and developers need to collaborate and how the future of the web must be built around inclusivity and respect.

Styling the Intrinsic Web

Over the last decade, Responsive Web Design and Object Oriented CSS have grown from exciting new trends into the foundations of modern, component-driven web design. But our medium is not done evolving.

Monkey Writr

A monkey hitting keys at random for an infinite amount of time will eventually want some help writing Hamlet (or whatever). You’re the monkey. We’re here to help.

What’s Happening in CSS & Sass

@ Front End Nerdery

A podcast focusing on front end development but also covering a wide range of web development and design topics. We talked about CSS, Sass, and work being done in the W3C CSS Working Group.

Web Ecosystem Health Part VI

@ Igalia Chats

Igalia’s Brian Kardell sits down to chat with Miriam and Rachel Andrew about who works on standards, and who pays for that work.

CSSWG, Container Queries, Scope, and Layers

@ Word Wrap Show

I talk with Claire and Steph about my journey into webdev and onto the CSSWG, what I find frustrating about how others use CSS, and the three specs I’m working on.

Support (Not) Unknown

@ OddBird.net

Working on a new CSS feature like Container Queries, one of the most important considerations is to ensure a “migration path” – a way for developers to start integrating the new code, without breaking their sites on legacy browsers.

What Is The Future Of CSS?

@ Smashing Magazine

Starting a new season of the Smashing Podcast with a look at the future of CSS. What new specs will be landing in browsers soon? Drew McLellan talks to Miriam to find out.

Container Queries Explainer & Proposal

@ CSSWG

Media-queries allow an author to make style changes based on the overall viewport dimensions – but in many cases, authors would prefer styling modular components based on their context within a layout.

Container Queries & The Future of CSS

New CSS proposals like Container Queries, Cascade Layers, Scoped Styles, and Nesting are all aimed at improving the way we write responsive components and design systems.

Beyond CSS Variables

CSS Custom Properties (aka Cascading Variables) have gained broad browser support since 2015 – but what are they good for, and why do we need them?

CSS, Sass, and Playwriting

@ Enjoy The Vue

I join Ari, Ben, and Tessa to talk about getting into CSS from other languages, the absurdly massive problem CSS is designed to solve, and the mental model behind the language.

Open CSS Notebook

@ css.oddbird.net

As I spend more of my time working on the CSS language, I wanted a place to take notes and explore new ideas in the open.

Dissecting CSS Conventions

How do we write code that is modular & maintainable, in a language designed to be systematic & contextual?

When Variables Cascade

The Cascade makes CSS unique – forcing us to revisit even the most common programming feature: the variable.

CSS Cascade 6 (Scope)

@ W3C CSS Working Group

Cascade & Inheritance Level 6 defines scoped styles – allowing authors to provide bounded ranges for selector-matching, and give priority to more ‘proximate’ scope origins.

Authoring the future of CSS

@ Party Corgi

A spinoff of the Party Corgi Network discord. I chat with Chris Biscardi about The CSS Working Group, open-source projects, art, and music.

W3C CSS Working Group

since March 2020

I was invited to join the CSS Working Group to help develop the next level of Cascading & Inheritance – along with Container Queries, CSS scoping, and more.

Use new selectors responsibly with selector queries

@ Mozilla Developer

Firefox 69 was the first to implement selector feature queries, but other browsers are following suit. I’ll show you how it works, and how to start using this new feature query right away.

How do you wrap long words in CSS?

@ Mozilla Developer

Horizontal text overflow has always been difficult to manage on the web. The default visible overflow is designed to make sure content remains accessible no matter the size of a containing box, but it’s not our only option.

CSS Most Normalizer-est

Why waste your time on half-measures? Make your site THE MOST NORMALEST with this ULTIMATE CSS RESET.

Scroll Snap in CSS

@ Mozilla Developer

When we’re scrolling down a page, or through a gallery of images, snap-targets can help guide us from one section or image to the next. In the past, developers have used JavaScript to hijack scrolling, but now we can manage scroll alignment directly in CSS with only a few lines of code.

On Sass & CSS

@ Shop Talk Show

I drop by the show to talk about Sass in 2019, design tokens, Oddbird, unused CSS, new CSS properties, and Dave & Chris’ explanation of revert.

Inner & Outer Values of the Display Property

@ Mozilla Developer

The display property has been in CSS from the beginning, handling everything from block and inline boxes to list-items and full layout systems like flexbox or grid. Now the display syntax is getting an upgrade to match it’s multiple uses.

Why isn’t this CSS doing anything?

@ Mozilla Developer

There are a number of property & value combinations that can lead to CSS being inactive, and now Firefox will tell you why. Open the developer tools, and look for the greyed-out property with an info-box on hover.

Laying out Forms using Subgrid

@ Mozilla Developer

It’s a common pattern to align form labels and inputs in grid-like layout. I’ll show you how to do it quickly using CSS subgrid, with several quick fallbacks.

CSS is Rad

The web is designed to work across platforms, devices, languages, and interfaces – but how can we possibly design for that unknown and always-changing canvas?

Subgrid for Better Card Layouts

@ Mozilla Developer

Card layouts are popular on the web, rows and columns of boxes with similar content. CSS grids can help align those cards, but it’s still be hard to line-up content inside the cards – headers and footers that might need more or less room.

Faster Layouts with CSS Grid

@ Mozilla Developer

For years, we’ve struggled to build resilient layouts on the web, but CSS Grid promises to change all that – and you can start using it now, with only a few properties and basic concepts.

What does revert do in CSS?

@ Mozilla Developer

I’ve often used initial and unset in my CSS – global keywords that can be applied to any property. The difference is small, but important: unset allows inheritance, while initial does not. But then Firefox implemented revert and I was confused – how is this one different from the others?!

Introducing Sass Modules

@ CSS Tricks

Sass recently launched a new module system. The new syntax will replace @import with @use and @forward – a big step forward for making Sass partials more readable, performant, and safe.

Why is CSS so Weird?

@ Mozilla Developer

Love it or hate it, CSS is weird: not quite markup, not quite programming in the imperative sense, and nothing like the design programs we use for print. How did we get here?

Styling Lists in CSS

@ Mozilla Developer

When you create lists in HTML, browsers add bullet-points or numbers we call list markers. Now CSS gives us the tools to style those list markers, and even create our own!

F*CSS

In the CSS naming-convention arms race to lowest specificity, I’ve decided to only use universal * selectors. I call it F*CSS.

Mozilla Developer Channel

I’ve been working with Mozilla to help create a new resource for web professionals – with a mix of videos, articles, demos, and open source tools.

Resilient Web Systems

From building beautiful sites to maintaining complex design systems across multiple applications, CSS is the web-language of design.

Agile Design Systems

Style Guides & Pattern Libraries are great tools for documenting the relationships between code and design, but beautiful docs are only half the battle.

Planning Your Web Project

A non-technical guide for taking your project from concept to launch, without ever losing sight of the goals.

Sass

since July 2017

Sass is the most mature, stable, and powerful professional grade CSS extension language in the world.

Don’t Use My Grid System

Explore the history of web layout with the creator of Susy – why grid systems exist, how they work, and practical tips to avoid using them.

Fun with Viewport Units

@ CSS Tricks

Viewport units have been around for several years now, with near-perfect support in the major browsers, but I keep finding new and exciting ways to use them. I thought it would be fun to review the basics, and then round-up some of my favorite use-cases.

Getting Started with CSS Grid

@ CSS Tricks

It feels like CSS Grid has been coming for a long time now, but it just now seems to be reaching a point where folks are talking more and more about it and that it’s becoming something we should learning.

Some Kind of Resistance Tour

It’s been a month since our country pseudo-elected a bigoted blow-hard for president. I’m heading to DC to protest his inauguration in January, visit friends, and go on a mixed-media resistance tour…

Loops in CSS Preprocessors

@ CSS Tricks

No matter what acronym drives your selectors (BEM, OOCSS, SMACSS, ETC), loops can help keep your patterns more readable and maintainable, baking them directly into your code. We’ll take a look at what loops can do, and how to use them in the major CSS preprocessors.

CSS Tricks

Blog for people who make websites

An Interview with Miriam Suzanne

@ CSS Tricks

Chris Coyier interviews Miriam when she joins the CSS Tricks team as a Staff Writer. We talk about gettting started in the industry, name confusion, fouding OddBird, building Susy, and more.

Versioning Show, Episode 8

@ SitePoint

In this episode of the Versioning Show, Tim and David are joined by Miriam Suzanne, best known for Susy, a responsive layout toolkit for Sass. They discuss going from being a lurker to finding your voice, the importance of writing about what you’re learning, stumbling into fame, approaching new projects, and unit testing in Sass.

Code Patterns for Pattern Making

Style Guides & Pattern Libraries are great tools for documenting the relationships between code and design, but beautiful docs are only half the battle.

Jump Start Sass

@ SitePoint

Using Sass, you can write your stylesheets in a more concise, dynamic, and readable way, and cut down many of the repetitive tasks that come with writing vanilla CSS. This book provides a thorough introduction to Sass for the beginner. Co-writen with my friend Kitty Giraudel.

Herman

@ OddBird

Design systems streamline development, communication, and consistency – but often rely on dedicated teams and extended budgets.

User Unfriendly

A project-manager’s reflections on human-centered problem-solving, client communication, and user feedback in agile web development.

Accoutrement

@ OddBird

Design systems must be meaningful to both humans and machines Accoutrement provides Sass design-token management that improves readability and consistency, while encouraging automation.

Sass Map Magic

Maps are a powerful data type in Sass – perfect for managing color and scale palettes, framework configuration, data storage, and more.

Sassy Toolkits

a case-study in building and sharing open-source Sass

True

@ OddBird

True is a full-featured unit-testing library for Sass. The core functionality is written in pure SassScript, so it can be used anywhere Sass is compiled. Advanced features are available with our JS test-runner integration.

Susy

@ OddBird

Susy is a lightweight grid-layout engine for Sass, designed to simplify and clarify responsive grid layouts without ever getting in your way. Originally released in 2009, Susy has become one of the most popular layout frameworks on the web.

OddBird

since April 2008

I co-founded OddBird with my brothers in 2008 to create scalable, accessible, and performant web applications with a human-centered design.


'Code' content

Intrinsic CSS with Container Queries & Units

Container queries & units have a lot to offer as we enter a more content-out era of Intrinsic Web Design, but they also come with some limitations of their own. Join Miriam to learn about how the feature works, how to start using it in production, and what to look forward to as Container Queries continue to evolve.

Cascading Layers of !mportance

Earlier this year, all the major browsers released Cascade Layers, with the potential to fundamentally change how we write styles – especially in an age of design systems, component libraries, and third-party tools. But fundamental changes require us to re-think how all the pieces fit together.

No Demo [Website] Reno

I want to re-think the front-end of my site, without too much change to the (Eleventy/Markdown) content that drives it. And I want to do it slowly.

Not All Zeros are Equal

@ OddBird.net

There’s a well-established ‘best practice’ that CSS authors (as well as linters and minifiers) should remove units from any 0 value. It’s a fine rule in most cases, but there are a few common situations where it will break your code.

Body Margin 8px

All browsers add an 8px margin on the body element – it’s part of the w3c-recommended default stylesheet which browsers generally use as a starting point for their own ‘user agent’ styles. But why 8px? Where does that come from?

Every Transition is a Page Transition?

@ OddBird.net

There’s a new web API proposal for transitioning shared-elements across pages. It’s great for making smooth page transitions, but what if we apply it to individual elements with changing styles on a single page?

Complex vs Compound Selectors

In CSS, there are compound selectors and also complex selectors, and I never remember which is which. Do you need to learn the difference? Probably not. But I’m tired of looking it up.

Developing the Future of the Internet

@ Wix, Now What?

Miriam talks to Now What? about why the internet looks the way it does, why designers and developers need to collaborate and how the future of the web must be built around inclusivity and respect.

Styling the Intrinsic Web

Over the last decade, Responsive Web Design and Object Oriented CSS have grown from exciting new trends into the foundations of modern, component-driven web design. But our medium is not done evolving.

Monkey Writr

A monkey hitting keys at random for an infinite amount of time will eventually want some help writing Hamlet (or whatever). You’re the monkey. We’re here to help.

What’s Happening in CSS & Sass

@ Front End Nerdery

A podcast focusing on front end development but also covering a wide range of web development and design topics. We talked about CSS, Sass, and work being done in the W3C CSS Working Group.

Web Ecosystem Health Part VI

@ Igalia Chats

Igalia’s Brian Kardell sits down to chat with Miriam and Rachel Andrew about who works on standards, and who pays for that work.

CSSWG, Container Queries, Scope, and Layers

@ Word Wrap Show

I talk with Claire and Steph about my journey into webdev and onto the CSSWG, what I find frustrating about how others use CSS, and the three specs I’m working on.

Support (Not) Unknown

@ OddBird.net

Working on a new CSS feature like Container Queries, one of the most important considerations is to ensure a “migration path” – a way for developers to start integrating the new code, without breaking their sites on legacy browsers.

What Is The Future Of CSS?

@ Smashing Magazine

Starting a new season of the Smashing Podcast with a look at the future of CSS. What new specs will be landing in browsers soon? Drew McLellan talks to Miriam to find out.

Container Queries Explainer & Proposal

@ CSSWG

Media-queries allow an author to make style changes based on the overall viewport dimensions – but in many cases, authors would prefer styling modular components based on their context within a layout.

Container Queries & The Future of CSS

New CSS proposals like Container Queries, Cascade Layers, Scoped Styles, and Nesting are all aimed at improving the way we write responsive components and design systems.

Beyond CSS Variables

CSS Custom Properties (aka Cascading Variables) have gained broad browser support since 2015 – but what are they good for, and why do we need them?

CSS, Sass, and Playwriting

@ Enjoy The Vue

I join Ari, Ben, and Tessa to talk about getting into CSS from other languages, the absurdly massive problem CSS is designed to solve, and the mental model behind the language.

Open CSS Notebook

@ css.oddbird.net

As I spend more of my time working on the CSS language, I wanted a place to take notes and explore new ideas in the open.

Dissecting CSS Conventions

How do we write code that is modular & maintainable, in a language designed to be systematic & contextual?

When Variables Cascade

The Cascade makes CSS unique – forcing us to revisit even the most common programming feature: the variable.

CSS Cascade 6 (Scope)

@ W3C CSS Working Group

Cascade & Inheritance Level 6 defines scoped styles – allowing authors to provide bounded ranges for selector-matching, and give priority to more ‘proximate’ scope origins.

Authoring the future of CSS

@ Party Corgi

A spinoff of the Party Corgi Network discord. I chat with Chris Biscardi about The CSS Working Group, open-source projects, art, and music.

W3C CSS Working Group

since March 2020

I was invited to join the CSS Working Group to help develop the next level of Cascading & Inheritance – along with Container Queries, CSS scoping, and more.

Use new selectors responsibly with selector queries

@ Mozilla Developer

Firefox 69 was the first to implement selector feature queries, but other browsers are following suit. I’ll show you how it works, and how to start using this new feature query right away.

How do you wrap long words in CSS?

@ Mozilla Developer

Horizontal text overflow has always been difficult to manage on the web. The default visible overflow is designed to make sure content remains accessible no matter the size of a containing box, but it’s not our only option.

CSS Most Normalizer-est

Why waste your time on half-measures? Make your site THE MOST NORMALEST with this ULTIMATE CSS RESET.

Scroll Snap in CSS

@ Mozilla Developer

When we’re scrolling down a page, or through a gallery of images, snap-targets can help guide us from one section or image to the next. In the past, developers have used JavaScript to hijack scrolling, but now we can manage scroll alignment directly in CSS with only a few lines of code.

On Sass & CSS

@ Shop Talk Show

I drop by the show to talk about Sass in 2019, design tokens, Oddbird, unused CSS, new CSS properties, and Dave & Chris’ explanation of revert.

Inner & Outer Values of the Display Property

@ Mozilla Developer

The display property has been in CSS from the beginning, handling everything from block and inline boxes to list-items and full layout systems like flexbox or grid. Now the display syntax is getting an upgrade to match it’s multiple uses.

Why isn’t this CSS doing anything?

@ Mozilla Developer

There are a number of property & value combinations that can lead to CSS being inactive, and now Firefox will tell you why. Open the developer tools, and look for the greyed-out property with an info-box on hover.

Laying out Forms using Subgrid

@ Mozilla Developer

It’s a common pattern to align form labels and inputs in grid-like layout. I’ll show you how to do it quickly using CSS subgrid, with several quick fallbacks.

CSS is Rad

The web is designed to work across platforms, devices, languages, and interfaces – but how can we possibly design for that unknown and always-changing canvas?

Subgrid for Better Card Layouts

@ Mozilla Developer

Card layouts are popular on the web, rows and columns of boxes with similar content. CSS grids can help align those cards, but it’s still be hard to line-up content inside the cards – headers and footers that might need more or less room.

Faster Layouts with CSS Grid

@ Mozilla Developer

For years, we’ve struggled to build resilient layouts on the web, but CSS Grid promises to change all that – and you can start using it now, with only a few properties and basic concepts.

What does revert do in CSS?

@ Mozilla Developer

I’ve often used initial and unset in my CSS – global keywords that can be applied to any property. The difference is small, but important: unset allows inheritance, while initial does not. But then Firefox implemented revert and I was confused – how is this one different from the others?!

Introducing Sass Modules

@ CSS Tricks

Sass recently launched a new module system. The new syntax will replace @import with @use and @forward – a big step forward for making Sass partials more readable, performant, and safe.

Why is CSS so Weird?

@ Mozilla Developer

Love it or hate it, CSS is weird: not quite markup, not quite programming in the imperative sense, and nothing like the design programs we use for print. How did we get here?

Styling Lists in CSS

@ Mozilla Developer

When you create lists in HTML, browsers add bullet-points or numbers we call list markers. Now CSS gives us the tools to style those list markers, and even create our own!

F*CSS

In the CSS naming-convention arms race to lowest specificity, I’ve decided to only use universal * selectors. I call it F*CSS.

Mozilla Developer Channel

I’ve been working with Mozilla to help create a new resource for web professionals – with a mix of videos, articles, demos, and open source tools.

Resilient Web Systems

From building beautiful sites to maintaining complex design systems across multiple applications, CSS is the web-language of design.

Agile Design Systems

Style Guides & Pattern Libraries are great tools for documenting the relationships between code and design, but beautiful docs are only half the battle.

Planning Your Web Project

A non-technical guide for taking your project from concept to launch, without ever losing sight of the goals.

Sass

since July 2017

Sass is the most mature, stable, and powerful professional grade CSS extension language in the world.

Don’t Use My Grid System

Explore the history of web layout with the creator of Susy – why grid systems exist, how they work, and practical tips to avoid using them.

Fun with Viewport Units

@ CSS Tricks

Viewport units have been around for several years now, with near-perfect support in the major browsers, but I keep finding new and exciting ways to use them. I thought it would be fun to review the basics, and then round-up some of my favorite use-cases.

Getting Started with CSS Grid

@ CSS Tricks

It feels like CSS Grid has been coming for a long time now, but it just now seems to be reaching a point where folks are talking more and more about it and that it’s becoming something we should learning.

Some Kind of Resistance Tour

It’s been a month since our country pseudo-elected a bigoted blow-hard for president. I’m heading to DC to protest his inauguration in January, visit friends, and go on a mixed-media resistance tour…

Loops in CSS Preprocessors

@ CSS Tricks

No matter what acronym drives your selectors (BEM, OOCSS, SMACSS, ETC), loops can help keep your patterns more readable and maintainable, baking them directly into your code. We’ll take a look at what loops can do, and how to use them in the major CSS preprocessors.

CSS Tricks

Blog for people who make websites

An Interview with Miriam Suzanne

@ CSS Tricks

Chris Coyier interviews Miriam when she joins the CSS Tricks team as a Staff Writer. We talk about gettting started in the industry, name confusion, fouding OddBird, building Susy, and more.

Versioning Show, Episode 8

@ SitePoint

In this episode of the Versioning Show, Tim and David are joined by Miriam Suzanne, best known for Susy, a responsive layout toolkit for Sass. They discuss going from being a lurker to finding your voice, the importance of writing about what you’re learning, stumbling into fame, approaching new projects, and unit testing in Sass.

Code Patterns for Pattern Making

Style Guides & Pattern Libraries are great tools for documenting the relationships between code and design, but beautiful docs are only half the battle.

Jump Start Sass

@ SitePoint

Using Sass, you can write your stylesheets in a more concise, dynamic, and readable way, and cut down many of the repetitive tasks that come with writing vanilla CSS. This book provides a thorough introduction to Sass for the beginner. Co-writen with my friend Kitty Giraudel.

Herman

@ OddBird

Design systems streamline development, communication, and consistency – but often rely on dedicated teams and extended budgets.

User Unfriendly

A project-manager’s reflections on human-centered problem-solving, client communication, and user feedback in agile web development.

Accoutrement

@ OddBird

Design systems must be meaningful to both humans and machines Accoutrement provides Sass design-token management that improves readability and consistency, while encouraging automation.

Sass Map Magic

Maps are a powerful data type in Sass – perfect for managing color and scale palettes, framework configuration, data storage, and more.

Sassy Toolkits

a case-study in building and sharing open-source Sass

True

@ OddBird

True is a full-featured unit-testing library for Sass. The core functionality is written in pure SassScript, so it can be used anywhere Sass is compiled. Advanced features are available with our JS test-runner integration.

Susy

@ OddBird

Susy is a lightweight grid-layout engine for Sass, designed to simplify and clarify responsive grid layouts without ever getting in your way. Originally released in 2009, Susy has become one of the most popular layout frameworks on the web.

OddBird

since April 2008

I co-founded OddBird with my brothers in 2008 to create scalable, accessible, and performant web applications with a human-centered design.


Contact me