skip to content

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

Over the years, we’ve become industry leaders – creating and contributing to the languages and open source tools that millions of developers rely on. We provide enterprise-level expertise, with the focus and personal attention of a boutique.

CSS, HTML, & Sass

Since early 2020 a large part of our work has been developing new specifications for the CSS, HTML, and Sass programming languages – along with tools & polyfills to help authors use the latest features. Check out our public notebook to follow that work as it develops.


Working with OddBird was the best outsourcing experience I’ve ever had. OddBird became an extension of our team.

—Jason Lantz, Salesforce.org (MetaDeploy)

Other developers build exactly what you say, or they don’t understand, and develop the wrong thing. OddBird always thinks about the project goals. I defer to the team expertise now, which makes a better result.

—Rohit Puranik, Lab06 (MedCurbside)

OddBird is high-caliber and nimble. Innovative at heart. Together, we fundamentally transformed the Chicago public school system.

—Furman Brown, Sensible Innovation (TegyTime)

Since OddBird thinks about handoff from the beginning, maintenance has been super easy. For example, 100% unit test coverage was a given. I never had to ask for it.

—Sara Taillon, ORCAS (CoachHub)

Everything 'Oddbird'

Use the Right Container Query Syntax

» elsewhere

Since we got a first look at a Container Queries prototype back in April 2021, the syntax has changed a few times. But now the spec is stable, browsers are getting ready to ship, and it’s time to make sure you’re using the same syntax they are!

Not All Zeros are Equal

» elsewhere

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.

Every Transition is a Page Transition?

» elsewhere

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?

Designcember Community Highlight

» interview

I was Interviewed by Rachel Andrew for the web.dev Designcember (and finally got around to posting a link here)

CSS State Toggles [WIP]

» spec

An early proposal for creating declarative state controls in CSS, and styling elements based on the current state.

Teleportation, PapayaWhip, and Cookies

» podcast

I talk with Claire and Steph about changes to the Container Query syntax, our feelings about web components, named CSS colors, how much we like eating cookies, and other wild tangents.

Developing the Future of the Internet

» podcast

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.

What’s Happening in CSS & Sass

» podcast

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

» podcast

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

» podcast

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

» elsewhere

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.

Container Queries & the CSSWG

» podcast

I chat with Bruce Lawson & Vadim Makeev about Sass & Susy, CSS Layers & compatibility, Container Queries, and the CSS Working Group.

What Is The Future Of CSS?

» podcast

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

» post

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.

Open CSS Notebook

» post

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.

CSS Containment 3 (Container Queries)

» spec

CSS Containment Level 3 defines Container Queries and container-relative units – allowing authors to build more intrinsic responsive components without knowledge of the overall layout.

CSS Cascade 6 (Scope)

» spec

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

CSS Cascade 5 (Layers)

» spec

Cascade & Inheritance Level 5 defines Cascade Layers – allowing authors to define explicit contained layers of specificity.

W3C CSS Working Group

since March 2020 » open source

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.

On Sass & CSS

» podcast

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.

Sass

since July 2017 » open source

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

Herman

» open source

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

Accoutrement

» open source

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

True

» open source

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

» open source

Susy was a lightweight grid-layout engine for Sass, originally released in 2009. Over time, it became one of the most popular layout frameworks on the web, before retiring in 2020.