Skip to main
Miriam on stage talking and gesturing
in front of a projection screen
wearing a yellow leather jacket
and white-blue-pink lightning-bolt earrings

Miriam Suzanne

Miriam (she/her) is a co-founder and front-end architect – overseeing the user-experience & overall cohesion of a project.

Miriam is a developer, teacher, and pioneer of modern CSS – an Invited Expert on the W3C CSS Working Group and core contributor to the Sass language. She created Susy for responsive layouts back in 2009, and recently co-wrote the CSS specifications for Container Queries, Cascade Layers, and Scope.

In addition to presenting talks & workshops at conferences around the world, Miriam is a former staff writer for CSS-Tricks, co-founder of the Mozilla Developer Channel, and co-author of SitePoint’s Jump Start Sass. She’s also a cross-media artist with extensive experience in theatre, writing, music, and visual art.

Featured talks by Miriam

Upcoming Events

Open Source

OddContrast

Color contrast checker with Oklch, Oklab, P3, and more

OddContrast is a color format converter, featuring newer color formats like Oklch, Oklab, and the Display P3 color space. It’s also a color contrast checker to help designers meet WCAG 2 accessibility standards.

HTML & CSS Polyfills

Popover, CSS Anchor Positioning, Cascade Layers

Along with our work for the W3C developing specifications for the CSS language, OddBird has started and maintains a number of powerful polyfills for new web platform features including the Popover attribute, CSS Anchor Positioning, and Cascade Layers.

W3C CSS Working Group

Developing specifications for the CSS language

Miriam is an Invited Expert on the W3C CSS Working Group, helping to develop the next level of Cascading & Inheritance, in addition to other CSS standards. She’s also active in the CSS4 and Design Token Community Groups.

Cascading Colors

Dynamic & interactive color palettes using CSS

Generate dynamic and interactive color palettes. Define custom themes with CSS custom properties, allow user-adjustments with a bit of light-weight JS, and customize the underlying system with Sass.

Sass

CSS with superpowers

Sass is the most mature, stable, and powerful professional grade CSS extension language in the world. After creating several of the most popular sass plugins, Miriam became a core contributor to the language.

Herman

Automated style guides

Design systems streamline development, communication, and consistency – but often rely on dedicated teams and extended budgets. We wanted a tool that helps create and maintain living style guides & pattern libraries in an agile process, and on a budget. Herman helps you keep your development process simple – and your UX consistent – as you scale over time.

Accoutrement

Integrated design-system management in Sass

OddBird’s Accoutrement tools help keep design tokens meaningful to both humans and machines – opening the door for automation, while improving readability. These tools also integrate with Herman, our automated pattern-library generator.

True

Unit-testing for Sass developers

True is the only full-featured unit-testing framework designed specifically for the Sass language. Write your tests in Sass, compile them with Sass, and then (optionally) pass the results to a Javascript test-runner for command-line control and reporting.

Blend

Sass support for LCH, Lab, and more CSS color spaces

2024 Posts

  1. A cat sitting in a box
thinking OMG.
I have so many questions
for this damn box.
    Talk post type

    Cascading Layouts

    A workshop on resilient CSS layouts

    Upcoming
    • – Online

      Cascading Layouts OddWorkshop

    see all Talks & Workshops
  2. Mia from behind,
standing at a laptop -
speaking to a conference audience
and gesturing to one side
    Talk post type

    Cascading Style Systems

    A workshop on resilient & maintainable CSS

    Past
    • – Sydney, Australia

      Web Directions Workshops

    • – Online

      Smashing Workshops

    see all Talks & Workshops
  3. Three mud turtles
end-to-end on a small branch
floating in the water
    Talk post type

    CSS Containers, What Do They Know?

    A deep-dive introduction to CSS container queries

    Past
    • – Sydney, Australia

      Web Directions Developer Summit

    • – Amsterdam, Netherlands

      CMD Amsterdam

    see all Talks & Workshops
  4. Winging It post type

    Baseline and Web Features

    What happens when you set out to categorize every API and property of the web? OddBird has been documenting CSS for the Web Features project. Join us as we explore some fascinating rabbit trails, edge cases, and insights into the web platform that we’ve encountered along the way.

    see all Winging It posts
  5. Two websites loaded on
the WWW Hypermedia Browser,
using the emulator hosted by Remy Sharp --
our workshop page, and the 11ty symposium site --
both rendered as plain text
    Talk post type

    Hints and Suggestions

    The design of web design

    Past
    • – Berlin, DE

      Beyond Tellerand

    • – Online

      11ty International Symposium on Making Websites Real Good

    see all Talks & Workshops
  6. A green on dark-gray horizontal bar chart, with the labels cut off
    Article post type

    What do survey demographics tell us?

    Are we measuring what we meant to measure?

    There’s been a lot of interest in the results of the annual State of CSS survey, but are we asking all the right questions?

    see all Article posts
  7. A gallery of numbered images in four columns
    Article post type

    Choosing a Masonry Syntax in CSS

    What makes something a ‘grid’, and what’s at stake?

    Back in 2020, Firefox released a prototype for doing ‘masonry’ layout in CSS. Now all the browsers are eager to ship something, but there’s a hot debate about the best syntax to use.

    see all Article posts
  8. Sass logo in black
on top of bright oklch color gradient
    Link post type

    Sass Color Spaces & Wide Gamut Colors

    Inspect and manipulate the new CSS color formats in Sass!

    CSS has a range of new color functions that support wider color gamuts (like display-p3) and perceptually uniform color adjustments (like oklch). Sass now provides additional tools for working with these new color formats, and converting between them.

    see all Link posts
  9. Winging It post type

    Learn CSS Grid - Part 2

    In July we talked with Stephanie Eckles about how (and why) you can get started working grids into your CSS toolkit. As requested, this is part two of our dive into CSS grids. We address your questions about strategy – demoing how we plan and apply grid layouts, starting with…

    see all Winging It posts
  10. Winging It post type

    Web Components

    Web Components are a polarizing feature that seem simultaneously old news and not quite ready for production yet. But we’ve been making things with Web Components, and finding some areas where they really work well. Join us, along with special guest Zach Leatherman of 11ty, to hear more about how…

    see all Winging It posts
  11. Article post type

    Partial Feature Queries, Relaxed Layout Containment, and More

    CSS Working Group updates from July

    Over the last month, the CSS Working Group has determined we can loosen containment restrictions for query containers, and agreed on a syntax for special-case support queries (like support for the gap property in a flex context, or support for align-content in a block flow context).

    see all Article posts
  12. Winging It post type

    Learn CSS Grid First

    We talk with Stephanie Eckles – the brain behind ModernCSS.dev and SmolCSS.dev – about CSS grids. We look at a few of the most common grid patterns, to show you how (and why) you can get started working grids into your CSS toolkit!

    see all Winging It posts
  13. A stepped gradient of a pink hue in 2% lightness increments from 100% to 58%, labeled 'spec'
    Article post type

    CSS Working Group Updates for June & July

    What I’ve been working on as an Invited Expert

    The CSS Working Group has regular face-to-face meetings (hybrid online/in-person) throughout the year, and they always result in a flurry of activity! Here’s a rundown of some highlights from the last few months, with a focus on the features I maintain.

    see all Article posts
  14. FD logo repeated on a red background
    Link post type

    5 Questions for Miriam Suzanne

    I talked with Jens Oliver Meiert over at Frontend Dogma about our work here at OddBird, what’s happening in the CSS Working Group, and advice for getting started in frontend development.

    see all Link posts
  15. A dog zooming by the camera, up-close, body twisted and eyes wide as it circles a grass yard
    Article post type

    Zoom, zoom, and zoom

    The three types of browser (and CSS!) magnification

    I’m working on an article about fluid typography, and relative units. But instead, I fell down this rabbit hole – or a cleverly-disguised trap? – trying to understand ‘zoom’ in the browser (not Zoom™️ the software). Since I couldn’t find any up-to-date articles on the subject, I thought I shoul…

    see all Article posts
  16. Winging It post type

    Using New Color Formats

    Miriam Suzanne, Stacy Kvernmo, and James Stuckey Weber demo how to use new color formats with OddContrast, a color tool for previewing, accessibility testing, and selecting the format/space.

    see all Winging It posts
  17. Video post type

    Smashing Hour with Miriam Suzanne

    I joined Geoff Graham for a Smashing live stream to talk about CSS, web standards, music, and more!

    see all Video posts
  18. A back hoe on the bank of the Suez, trying to free the Ever Given cargo ship
    Article post type

    Learn Grid Now, Container Queries Can Wait

    Take your time with new CSS, but don’t sleep on the essentials

    Several people have asked recently why container queries aren’t being used more broadly in production. But I think we underestimate the level of legacy browser support that most companies require to re-write a code-base.

    see all Article posts
  19. Video post type

    Web Development Is Theater

    I joined Den Delimarsky on the Work Item podcast to talk about my path as a developer – from building a website for my theater company, to building a career and a company around it. In this show, we talk about the power of the web, and how CSS is…

    see all Video posts
  20. A clear kitchen blender filled with chopped fruit and greens
    Article post type

    Can you un-mix a mixin?

    Rethinking the CSS mixin proposal after CSS Day

    The CSS Working Group has agreed to move forward with CSS-native mixins. But some recent mixin-like CSS tricks have an advantage that the official proposal doesn’t account for: they make it easy to remove a mixin after it’s already been mixed in.

    see all Article posts
  21. see all Podcast posts
  22. Winging It post type

    CSS Anchor Positioning in Practice

    What is Anchor Positioning? Why is it exciting? What can you use it for? How does the polyfill work? Join James Stuckey Weber and Miriam Suzanne as they talk through these questions and answer yours in our monthly live stream.

    see all Winging It posts
  23. Winging It post type

    CSS Container Queries in Practice

    Miriam Suzanne and Stacy Kvernmo talk about CSS Container Queries and the unexpected things that happen when you add containment. Some elements completely collapse! What’s going on there? We had questions and thought you might too. So we talk through the issue in our monthly live stream.

    see all Winging It posts

2023

  1. 12 Days of Web
    Link post type

    CSS @scope

    Keep selector conflicts to a minimum

    The new @scope rule is here! It’s a better way to keep our component styles contained – without relying on third-party tools or extreme naming conventions.

    see all Link posts
  2. Fragment from a 13th century alchemical manuscript with a red and green oroboros serpent biting it's own tail, and seeming to give us side-eye
    Article post type

    HTML Web Components are Just JavaScript?

    I’m still getting used to this

    There’s been a recent flurry of articles about web components, with advice on how to shape them as extensions of HTML. I decided to dig in, and see how these ‘HTML web components’ could become a part of my own workflow. Despite a few rough edges, I’m excited to see…

    see all Article posts
  3. Shop Talk Show Podcast
    Podcast post type

    Cascade Layers, CSS Functions, and More

    I drop by the show to talk about CSS updates and news on container queries, rolling out cascade layers, !important things to remember, custom properties, exit animations, CSS functions, state queries, and more.

    see all Podcast posts
  4. Video post type

    Demystifying CSS Container Queries

    CSS Container Queries promise even more powerful styling approaches, but… what the heck are they? How do they actually work? Miriam joined Jason to teach and explore Container Queries in live code.

    see all Video posts
  5. Grainy art-deco illustration of a rocket launch
    Podcast post type

    CSS Containers

    A web development podcast from LogRocket

    I talk with Noel Minchow about CSS Container Queries, why they took so long, how they work, and what to watch out for.

    see all Podcast posts
  6. see all Winging It posts
    Winging It post type

    htmx

    During our conversation, we discuss what htmx is, how it improves user experience, and walk through some examples of common UI patterns using htmx.

  7. Winging It post type

    CSS Cascade Layers

    If you’ve ever found yourself in a specificity war, you’ll understand how important having control over style priority can be. During our conversation, we discussed what CSS Layers are and how you can use them in your project.

    see all Winging It posts
  8. The top front of a bright yellow shipping container with the door open and a blue sky behind it
    Article post type

    Can We Query the Root Container?

    The complexities of containment, overflow, and ‘propagation’

    I spoke about Container Queries at both Smashing Conference (San Francisco) and CSS Day (Amsterdam) – where I recommended setting up a root container to replace most media queries. Since then, Temani Afif pointed out a few issues with that approach, and sent me down a rabbit hole of overlapping…

    see all Article posts
  9. Online Together Fall Summit 2021, October 11-13
    Talk post type

    Styling the Intrinsic Web

    With Cascade Layers & Container Queries

    Past
    • – Victoria, BC

      Camosun College

    • – San Francisco, CA

      SmashingConf SF

    see all Talks & Workshops

2022

  1. 12 Days of Web
    Link post type

    Cascade Layers

    Giving us control over the cascade

    Don’t let specificity force you into strict selector conventions. Cascade Layers allow us to manage specificity without resorting to naming hacks or the !important flag.

    see all Link posts
  2. fragment of an inverted triangle with the cascade --
cascade layers are highlighted below element-attached styles
and above specificity
    Talk post type

    Cascading Layers of !mportance

    Past
    • – San Francisco, CA

      An Event Apart

    • – Denver, CO

      An Event Apart

    see all Talks & Workshops
  3. Nested semicircles,
from innermost and slowest
to outermost and fastest-moving:
nature, culture,
governance, infrastructure,
commerce, fashion
    Article post type

    When Our Tools Hold Us Back

    What happens if the ‘pace layers’ get out of sync?

    “Ask not just: How well does it work? But also: How well does it fail? What happens when something goes wrong?” —Jeremy Keith

    see all Article posts
  4. see all Talks & Workshops
  5. Title card,
State of CSS Frameworks,
October 2022
    Video post type

    State of CSS Frameworks

    How can we write our styles in style?

    A panel conversation with library and methodology authors and CSS aficionados about recent features added to CSS, developments in how to write more effective, maintainable CSS in small teams and at scale, and what libraries and trends to investigate.

    see all Video posts
  6. Sass logo in black
on top of bright oklch color gradient
    Link post type

    Sass Color Spaces (Request for Comments)

    A new proposal for color management in Sass

    There’s been a lot of exciting work in the CSS color specifications lately, and since the new features are already starting to land in browsers, we’ve been preparing to add support in Sass as well. My proposal for that is published and ready for public feedback!

    see all Link posts
  7. see all Article posts
    Wireframe of card elements
in different sized containers --
some laid out vertically in small spaces,
others horizontal when there's room.
    Article post type

    Use the Right Container Query Syntax

    Size queries are stable, and shipping in browsers

    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!

  8. Grainy art-deco illustration of a rocket launch
    Podcast post type

    Styling the intrinsic web

    A web development podcast from LogRocket

    I talk with Noel Minchow about how to style the intrinsic web, what that means, and how it’s compatible with responsive design.

    see all Podcast posts
  9. Black text on bright yellow sign,
Caution, slip hazard,
with stick figure falling backwards.
    Article post type

    Not All Zeros are Equal

    And every ‘best practice’ comes with caveats

    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.

    see all Article posts
  10. A scene wipe transition in Star Wars,
as Luke and C-3PO in a speeder
wipe across a close-up
of Luke and Obi-Wan talking.
Over top, a dotted line shows the transition edge,
and a red arrow shows the transition movement
in front of the speeder.
    Article post type

    Every Transition is a Page Transition?

    Experimenting with the shared element transitions API

    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?

    see all Article posts
  11. Word Wrap Show
    Podcast post type

    Teleportation, PapayaWhip, and Cookies

    This episode went a little off the rails…

    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.

    see all Podcast posts
  12. Video post type

    Making Sense of CSS Layers and Scope

    CSS is evolving rapidly and new features come online all the time. Join Morten & Miriam to talk about what CSS layers and scope are all about and how they will change how we work with and think about the cascade in the future.

    see all Video posts
  13. see all Link posts
    fragment of an inverted triangle with the cascade --
cascade layers are highlighted below element-attached styles
and above specificity
    Link post type

    A Complete Guide to CSS Cascade Layers

    Cascade layers are a new CSS feature that allows us to define explicit contained layers of specificity, so that we have full control over which styles take priority in a project without relying on specificity hacks or !important. This guide is intended to help you fully understand what cascade layers are for, how and why you might choose to use them, the current levels of support, and the syntax.

2021

  1. Now What?
    Podcast post type

    Developing the Future of the Internet

    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.

    see all Podcast posts
  2. Weekly fireside chat:
What's the job of a design engineer?
Featuring Miriam Suzanne
    Video post type

    What’s the job of a “design engineer”?

    A fireside chat

    There are often tall walls between designers and developers, sometimes with only one significant handoff moment during a sprint. We discuss the role of the ‘design engineer’ and what it means for workflows, collab with their product team, and the end-user experience.

    see all Video posts
  3. Miriam Suzanne speaking at a conference
    Podcast post type

    What’s Happening in CSS & Sass

    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.

    see all Podcast posts
  4. Talk post type

    Container Queries & The Future of CSS

    Modernizing the cascade for responsive design systems

    Past
    • – Online

      Smashing Meets CSSummer

    • – Online

      CSS Café

    see all Talks & Workshops
  5. Back of a head, out of focus, looking at code
    Podcast post type

    Web Ecosystem Health Part VI

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

    see all Podcast posts
  6. see all Podcast posts
  7. Word Wrap Show
    Podcast post type

    CSSWG, Container Queries, Scope, and Layers

    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.

    see all Podcast posts
  8. A large, carved, wooden hand
supporting a tree that has nearly fallen over
    Article post type

    Support (Not) Unknown

    Adding Container Query tests to CSS @support

    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. That looks different depending on the feature, but can often include…

    see all Article posts
  9. F-Word
    Podcast post type

    Container Queries & the CSSWG

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

    see all Podcast posts
  10. Smashing Podcast #36, Miriam Suzanne, What is the future of CSS?
    Podcast post type

    What Is The Future Of CSS?

    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.

    see all Podcast posts
  11. Talk post type

    Beyond CSS Variables

    Pushing past global design tokens

    Past
    • – Online

      An Event Apart Spring Summit

    see all Talks & Workshops
  12. JS Party logo
    Podcast post type

    JS Danger, CSS-Tricks Edition

    I joined some other folks behind CSS-Tricks (maybe you’ve heard of it?) to face off in the much beloved don’t-call-it-jeopardy game show. Play along while you listen (or watch). It’s JS Danger time, y’all!

    see all Podcast posts
  13. Rethinking user experience design across media
    Talk post type

    User Unfriendly

    designing software for humans, with other humans

    Past
    • – Online

      General Assembly, Ethics in Design

    • – Atlanta, GA

      Agnes Scott College

    see all Talks & Workshops

2020

  1. A whole CSS-art cabinet of single-div objects drawn by Lynn Fisher,
from a mirror and skull, to abacus, clock, viewfinder, plants,
snow globe, hot air balloon, and lightsaber.
    Link post type

    Very Extremely Practical CSS Art

    CSS-Tricks asked a number of web builders the same question…

    What is one thing you learned about building websites this year?” I’ve always enjoyed the CSS art people create, but I’ve never ventured into it much myself. I’m familiar with many of the tricks involved, but still find it surprising every time: the way people are able to…

    see all Link posts
  2. Enjoy the Vue! (#44)
    Podcast post type

    CSS, Sass, and Playwriting

    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.

    see all Podcast posts
  3. see all Talks & Workshops
  4. Talk post type

    When Variables Cascade

    An exploration of CSS custom properties

    Past
    • – Online

      SmashingConf Austin/NY

    see all Talks & Workshops
  5. Miriam speaking at Smashing Conf NY
    Talk post type

    CSS is Rad

    Resilient design on an infinite canvas

    Past
    • – Online

      Design 4 Drupal Webinar Series

    • – Online

      SmashingConf Live

    see all Talks & Workshops
  6. Video post type

    Design Engineering Handbook

    Thoughts on the design & development process

    Learn how design engineering brings together form and function in this new Design Better book written by Natalya Shelburne, Adekunle Oduye, Kim Williams, and Eddie Lou – including interviews with Miriam and others.

    see all Video posts
  7. Miriam speaking at Develop Denver, 2019
    Talk post type

    Dynamic CSS

    with grids & custom properties

    Past
    • – Online

      Shift Remote

    • – Denver, CO

      Develop Denver

    see all Talks & Workshops
  8. Talk post type

    Cascade Aligned Programming

    What does it mean to style a universal medium?

    Past
    • – Online

      Front Range Front End

    see all Talks & Workshops
  9. see all Link posts
    Link post type

    Using Custom Property “Stacks” to Tame the Cascade

    Since the inception of CSS in 1994, the cascade and inheritance have defined how we design on the web. Both are powerful features, but as authors we’ve had very little control over how they interact. Selector specificity and source order provide some minimal “layering” control, without a lot of nuance – and inheritance requires an unbroken lineage. Now, CSS Custom Properties allow us to manage and control both cascade and inheritance in new ways.

  10. Miriam talking with Jen Simmons and others
    Talk post type

    Resilient Web Systems

    A workshop with practical steps to take full advantage of the web

    Past
    • – Online

      Smashing Workshops

    see all Talks & Workshops
  11. Video post type

    Design Systems AMA

    Jina and I answer questions about CSS, Sass, Design Systems, and more!

    see all Video posts
  12. Rainbow corgi
    Podcast post type

    Authoring the future of CSS

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

    see all Podcast posts
  13. Article post type

    W3C Invited Expert on the CSS Working Group

    Helping define the future of styles on the web

    I’ve joined the CSS Working Group as a W3C Invited Expert to help to develop the next level of Cascading & Inheritance, in addition to other CSS standards. I’m also currently active in the CSS4 and Design Token Community Groups.

    see all Article posts

2019

  1. Miriam on stage talking and gesturing
in front of a projection screen
wearing a yellow leather jacket
and white-blue-pink lightning-bolt earrings
    Link post type

    Embracing the Universal Web

    CSS-Tricks asked a number of web builders the same question…

    What about building websites has you interested this year?” There are constantly new features appearing in browsers – from subgrid to variable fonts to better developer tools. It’s a really great time to be re-thinking everything we know about design on the web. Responsive design has served us…

    see all Link posts
  2. Firefox Developer Tools
    Video post type

    Edit CSS Shapes in the Browser

    For quick visual adjustments directly on the page

    Have you ever wanted to create more interesting shapes on the web, or flow text around the details of an image? Shape paths can be hard to code without a visual reference, but Firefox provides a shape editor to make it quick and clear.

    see all Video posts
  3. CSS @supports statement
    Video post type

    Use new selectors responsibly with selector queries

    Just in time for Selectors Level 4

    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.

    see all Video posts
  4. CSS code snippet with overflow wrap options
    Video post type

    How do you wrap long words in CSS?

    None of the solutions are perfect, but we have some options

    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.

    see all Video posts
  5. CSS code snippet of scroll-snap type and align
    Video post type

    Scroll Snap in CSS

    Without any JavaScript or “scrolljacking”

    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…

    see all Video posts
  6. Shop Talk Show Podcast
    Podcast post type

    On Sass & CSS

    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.

    see all Podcast posts
  7. CSS snippet showing display value options
    Video post type

    Inner & Outer Values of the Display Property

    Allow us to be more explicit & expressive about layouts

    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.

    see all Video posts
  8. Firefox Developer Tools shows helpful information about inactive CSS
    Video post type

    Why isn’t this CSS doing anything?

    Have you ever set a width in CSS, and… nothing happens?

    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.

    see all Video posts
  9. Inspecting grid with Firefox Developer Tools
    Video post type

    Faster Layouts with CSS Grid

    And subgrid, landing on Dec 3

    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.

    see all Video posts
  10. CSS Snippet for CSS subgrid to make forms
    Video post type

    Laying out Forms using Subgrid

    and fallbacks for legacy browsers

    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.

    see all Video posts
  11. CSS snippet with card layout demo
    Video post type

    Subgrid for Better Card Layouts

    and fallbacks for legacy browsers

    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.

    see all Video posts
  12. Link post type

    Introducing Sass Modules

    Sass recently launched a major new feature you might recognize from other languages: a module system. The new syntax will replace @import with @use and @forward – a big step forward for making Sass partials (one of the language’s most used features) more readable, performant, and safe. This article goes…

    see all Link posts
  13. CSS snippet showing display revert
    Video post type

    What does revert do in CSS?

    And how is it different from unset or initial?

    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?

    see all Video posts
  14. CSS cascade diagram
    Video post type

    Why is CSS so Weird?

    How can we design for an unknown & infinite canvas?

    CSS is the design language of the web – one of three core web languages – but it also seems to be the most contentious and often perplexing. It’s too easy and too hard, too fragile and too resilient. Love it or hate it, CSS is weird: not quite markup…

    see all Video posts
  15. Article post type

    Sass Modules, a Primer

    Getting started with @use and @forward

    Dart Sass (the primary Sass implementation) released version 1.23.0 last night with a major new feature: modules. This is a common feature in many languages – but for those of us who primarily write CSS, it can be a big mental shift. Let’s take a look at the basics.

    see all Article posts
  16. Lists styled with cat emojis
    Video post type

    Styling Lists in CSS

    Powerful New CSS for Styling Bullets, Numbers, and List Markers

    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!

    see all Video posts
  17. Video post type

    Announcing the Mozilla Developer Channel

    a gift from Mozilla (and OddBird)

    Over the summer, we’ve been working with Mozilla to help create a new resource for web professionals like us – with a mix of videos, articles, demos, and open source tools. Today, we’re excited to launch the video channel!

    see all Video posts
  18. Sample organized color swatches with hex and hsl values
    Talk post type

    Agile Design Systems

    with meaningful code and automation

    Past
    • – Washington, DC

      Agile Alliance

    • – Denver, CO

      Agile Denver

    see all Talks & Workshops
  19. Views on Vue Podcast
    Podcast post type

    Design Systems & CSS

    We start by talking about design systems and design tooling – how they differ, and the problems they solve.

    see all Podcast posts
  20. Trans flag generated by CSS-only function
    Link post type

    CSS Custom Properties In The Cascade

    a deep-dive into what’s possible

    Pushing past the “variable” metaphor, CSS Custom Properties can provide new ways to balance context and isolation in our patterns and components.

    see all Link posts
  21. Miriam talking with Jen Simmons and others
    Article post type

    Smashing CSS Follow-Up Q&A

    Questions about Dynamic CSS

    I had the pleasure of presenting both a talk and workshop at Smashing Conf in San Francisco this year. During the talk, people left questions in a collaborative doc, so I’m here to provide the answers!

    see all Article posts
  22. text CSS is Awesome on background of sunset over water
    Talk post type

    Advanced CSS for Modern Applications

    A workshop with practical use-cases, tooling, and pitfalls

    Past
    • – San Francisco, CA

      Generate New York

    • – San Francisco, CA

      Smashing Conf

    see all Talks & Workshops
  23. Robot constructing CSS
    Link post type

    Has CSS finally come of age?

    Steve Jenkins interviews Miriam about the state of CSS, and what’s coming next for the language – from Intrinsic Design to Dynamic CSS.

    see all Link posts
  24. Miriam Suzanne and former OddBird Una Kravets
    Article post type

    VueFinder at VueConf, 2019

    Dynamic CSS with Vue

    Inspired by VueConf 2018 I spent some time learning JS and Vue in more depth, and built myself a more flexible VueFinder presentation tool to fit my needs. This year, I returned to VueConf and gave the closing talk on passing data between CSS and Vue.

    see all Article posts
  25. Miriam Suzanne speaking at a conference
    Podcast post type

    Dynamic CSS Interview

    a mid-conference conversation

    Thunder Nerds interview me before her talk at VueConf US 2019.

    see all Podcast posts
  26. Giant pencil awarded to Miriam Suzanne for Best of CSS Dev Conf 2017
    Talk post type

    Don’t Use My Grid System

    It’s time to move past grid systems like Susy

    Past
    • – Boulder, CO

      Boulder Python

    • – San Francisco, CA

      Covalence Conf

    see all Talks & Workshops

2018

  1. Views on Vue Podcast
    Podcast post type

    Fonts & more

    Miriam talks with the Views on Vue panel about design, tools, fonts, and more.

    see all Podcast posts
  2. Podcast post type

    Ethics, ES6 in Practice, and Dynamic CSS

    On Episode 18, the TalkScript team continues the live-ish at JSConfUS podcast series with guests Myles Borins, Tim Doherty, and Miriam Suzanne. Listen in!

    see all Podcast posts
  3. Sketched design concept
    Talk post type

    Planning Your Web Project

    Past
    • – Westminster, CO

      Boost Biz Ed

    • – Denver, CO

      EdTech Colorado

    see all Talks & Workshops
  4. Generated art using CSS Grid inspired by Jared Tarbell
    Article post type

    Beyond Tellerand

    Grid Systems & Vue Invaders!

    I love when conferences give me the opportunity to travel around the world. I love it even more when conferences go beyond the web to find inspiration from other fields. Beyond Tellerand (Düsseldorf, Germany) was the best possible combination.

    see all Article posts
  5. Article post type

    VueConf US

    Agile design systems in Vue

    I’ve been excited about Vue.js since Sarah Drasner first showed me the basics. Since then, we’ve started using it for client work at OddBird, and I’m constantly impressed by the power and simplicity – so it was a real honor being invited to speak at the first VueConf US in…

    see all Article posts
  6. Sample organized color swatches with hex and hsl values
    Article post type

    Herman Style Guides

    An agile approach to design systems on a budget

    Design systems streamline development, communication, and consistency – but often rely on dedicated teams and extended budgets. We wanted a tool to create and maintain living style guides & pattern libraries in an agile process, and on a budget. Herman helps keep our development flow simple, and our UX consistent…

    see all Article posts

2017

  1. Link post type

    18 Designers Predict UI/UX Trends for 2018

    Figma asked 18 designers (including me) what UI/UX trends they predict for 2018. December, with its flurry of holiday parties, cheery out-of-office auto-replies and introspective weather patterns, provided the perfect opportunity to pause and survey the landscape.

    see all Link posts
  2. Jump Start Sass, by Miriam Suzanne and Kitty Giraudel
    Link post type

    How to Write Beautiful Sass

    Excerpt from Jump Start Sass, chapter 11

    Clean, beautiful code should be a goal in every project. If other developers need to make a change, they should be able to read what is there and understand it. Readable code is the core of maintainability. This excerpt from Miriam’s book, Jump Start Sass will help get you started…

    see all Link posts
  3. Viewport size diagram
    Article post type

    Media Queries & Grid Settings

    Practical media helpers for Susy3

    Most grids change with the viewport – and Susy needs new settings at each breakpoint. Susy3 is designed without mixins for complete flexibility from project to project, but it can be useful to build additional tools and shortcuts as you go. Here are some snippets to help you get started…

    see all Article posts
  4. the text color(kevin bacon) on a pink background
    Talk post type

    Code Patterns for Pattern Making

    Past
    • – Denver, CO

      Refresh Denver

    • – Denver, CO

      Front Range Front End

    see all Talks & Workshops
  5. Bar graph chart
    Link post type

    More CSS Charts, with Grid & Custom Properties

    Inspired by Robin Rendle, I demonstrate some of my early experiments combining CSS Grids and custom properties to create dynamic layouts and data-visualizations.

    see all Link posts
  6. see all Article posts
    Flexible grid column layout
    Article post type

    Welcome to Susy3!

    Make grid systems your fallback plan

    We’re excited to introduce Susy 3.0, a major update to our popular grid-math calculator – now more focused and flexible than ever. Susy was designed to make layout math easy, without forcing you into generic patterns and ugly markup. But grid systems are on the way out, replaced by real CSS layout specs that live in the browser. With Susy3, we want to help make that a smooth transition.

  7. Narrow and wide spread column math
    Article post type

    Understanding ‘Spread’ in Susy3

    Susy 3.0 will be released in the next week, if all goes well, and there’s a lot to write about it. I wanted to start with a detailed overview of one core concept: spread.

    see all Article posts
  8. Mechanical neck drawing
    Link post type

    Stop Being Productive

    It’s time to re-think what we’re measuring

    Miriam reflects on the nature and value of productivity for the SuperYesMore series: The Human in the Machine.

    see all Link posts
  9. CSS-Tricks
    Link post type

    Fun with Viewport Units

    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.

    see all Link posts
  10. Old phone
    Article post type

    Making Function Calls Across Sass Versions

    You don’t need safe-get-function utilities

    The Sass 3.5 Release Candidate includes support for first-class functions. What are they, how do we use them, and what tools can we use to future-proof our Sass toolkits in advance?

    see all Article posts
  11. Blueprint for NYC signage
    Article post type

    Code Patterns & Style Guides

    Living Style Guide documentation on the web is a difficult problem, gaining a lot of attention in the last few years. Let’s take an in-depth look at one way to store patterns directly in Sass, and generate documentation automatically.

    see all Article posts
  12. CSS-Tricks
    Video post type

    Getting Started with CSS Grid

    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.

    see all Video posts
  13. OddBird team members workshop ideas with post-it notes
    Article post type

    We Are Not Neutral: 2016 in Review

    OddBird is a small company – a shared vision and brand that transforms seven remote contractors into a Web Software Agency. 2016 was a year of big changes for us, individually and as a company. We can’t distance ourselves from the world we work in, or the lives of…

    see all Article posts
  14. see all Talks & Workshops

2016

  1. Link post type

    Loops in CSS Preprocessors

    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.

    see all Link posts
  2. World's greatest band, Teacup Gorilla, jamming out
    Link post type

    Beyond Pixels Profile

    Experience design is a collaboration

    Net Magazine featured Miriam this month with a Beyond Pixels profile. “Miriam Suzanne creates experimental experiences with her band and her fellow developers.”

    see all Link posts
  3. Miriam Suzanne on the director's chair
    Podcast post type

    Versioning Show Ep.8

    I joined Tim Evko and M. David Green for their SitePoint podcast – The Versioning Show. We discussed going from lurker to speaker, the importance of writing about what you’re learning, stumbling into fame, approaching new projects, and unit testing in Sass.

    see all Podcast posts
  4. CSS-Tricks
    Link post type

    CSS-Tricks Interview

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

    see all Link posts
  5. Miriam Suzanne answers questions on SitePoint
    Link post type

    Sass Toolkits, Live Q&A

    I did a live Q&A at SitePoint in August, talking about: Customizing Susy for your projects Other ways to do layouts (and why you might not even need a toolkit) How to select a toolkit, or build your very own!

    see all Link posts
  6. OddBird's GitHub Project Board
    Article post type

    Auditioning GitHub Projects

    With the release of kanban-style project boards, we decided to move our open design process over to GitHub and give it a try.

    see all Article posts
  7. Nicole Sullivan on stage
    Article post type

    CSSConf 2016 Recap

    It was a pleasure speaking at CSSConf 2016 in Boston! Here are some of my notes from the event – covering everything from creativity and the Bauhaus movement to SVG 2 internals, React styles, CSS grid layouts, and custom properties (e.g. CSS-native variables). I included links to slides and video…

    see all Article posts
  8. Miriam being interviewed at a conference
    Talk post type

    Sass Map Magic

    Past
    • – Boston, MA

      CSSConf 2016

    • – Online

      CSS Summit

    see all Talks & Workshops
  9. Miriam Suzanne answers questions on SitePoint
    Link post type

    Sass Toolkits, Live Q&A

    I did a live Q&A at SitePoint talking about: Customizing Susy for your projects Other ways to do layouts (and why you might not even need a toolkit) How to select a toolkit, or build your very own!

    see all Link posts
  10. Early design concepts for OddBird's new site
    Article post type

    Open Design for OddBird.net

    We’re re-building our website in the open, and writing about our process along the way. We hope you’ll follow along and even get involved!

    see all Article posts
  11. Article post type

    Clarity Conference

    It was an honor to be part of the first ever Clarity Conference in San Francisco – a beautiful event organized by Jina, and completely focused on Style Guides.

    see all Article posts
  12. see all Article posts
    Jump Start Sass, by Miriam Suzanne and Kitty Giraudel
    Article post type

    Jump Start Sass

    Get up to speed with Sass in a weekend…

    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.

  13. Jump Start Sass, by Miriam Suzanne and Kitty Giraudel
    Link post type

    Sass Architecture

    Excerpt from Jump Start Sass, chapter 11

    I’m excited to release Jump Start Sass, a book I co-authored with Kitty Giraudel. Digital copies are available from SitePoint, with print editions sold by O’Reilly. Here’s an excerpt from Chapter 11, Sass Architecture.

    see all Link posts

2015

  1. see all Talks & Workshops
    Tools should fit you. Sorry, this hammer only builds patio chairs...
    Talk post type

    Sassy Toolkits

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

    Past
    • – Zurich, Switzerland

      Frontend Zurich

    • – Denver, CO

      WordCamp Denver

2014

  1. Article post type

    SassConf 2014

    SassConf is right around the corner, and Claudina has been working hard to make it happen!

    see all Article posts
  2. Susy is not a grid system
    Talk post type

    Your Own Damn Susy System

    an introduction to the Susy layout toolkit

    Past
    • – Baltimore, MD

      Bmore Sass

    • – San Francisco, CA

      The Mixin

    see all Talks & Workshops

2013

  1. Article post type

    Susy Next, Alpha 5

    Susy Next alpha 5 is out, and loaded with changes. We now require Sass 3.3, we no longer require Compass, and there have been major syntax improvements. We’re getting real close to launch, and we’d love to know what you think. Play around, and let us know!

    see all Article posts
  2. see all Talks & Workshops
  3. Article post type

    Map-Set vs. Map-Merge

    The difference between map-set and map-merge? Almost nothing.

    see all Article posts
  4. Article post type

    Susy Next, Alpha 4

    Susy Next alpha 4 is now available.

    see all Article posts
  5. Article post type

    Susy Next, The Second Alpha

    Go download & play with it!

    We haven’t written full docs yet, and this blog post will be vastly incomplete, but I’ll give you a quick rundown of where we’re going. This is all open to change, of course. There’s a reason we’re still in alpha.

    see all Article posts
  6. Article post type

    Isolation and Bleed in Susy

    A few new features have landed in Susy 1.0.7, even as we work on more integrated syntaxes for 2.0. The isolate() and isolate-grid() mixins help you manage the worst effects of sub-pixel rounding, while bleed() helps you break items out of the box.

    see all Article posts
  7. Article post type

    Susy Next, The First Alpha

    Last night we released the very first alpha build of Susy Next. This release is extremely sparse. What we have built is a background ‘engine’ for calculating grid math. There are some rough first steps towards api and syntax, but they are more “proof of concept” experimentation than usable interface.

    see all Article posts
  8. see all Article posts
    Article post type

    Sass Layout in 2013 and the Future of Susy

    The web is littered with grid systems and ‘frameworks’ that force your code & design into narrowly defined patterns. Even the most semantic of us have had to push specialized techniques in order to create a usable syntax.

    But Sass has come a long way, and I’m convinced that it’s time for something new.

    What if you had a layout system that bends completely to the needs of your site? What if you could use one unified syntax for handling responsive layouts of any kind? What if you had a modular system that let you mix-and-match to customize for every site, and change your output with simple extensions?

2012

  1. Article post type

    Off-Canvas Layout with Susy

    The off-canvas layout pattern for responsive web design has been getting all the attention lately, and I’ve had several people ask how Susy One might play along. I’ll show you how easy it is, and how much flexibility Susy can add along the way.

    see all Article posts
  2. see all Article posts
  3. Article post type

    Sass Striped Backgrounds

    Jina asked twitter for Sass advice the other day. She was working on a bit of code to create a rainbow-striped background gradient using any set of arbitrary colors. This is my solution, in the form of a Sass function. This requires Sass 3.2 in order to run.

    see all Article posts