OddBird
Co-Founder: Custom web applications, developer tools, and training
Co-Founder: Custom web applications, developer tools, and training
DevRel Contractor: Videos, articles, & tools from Mozilla (and OddBird)
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?
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.
I’ve spent nearly two decades learning, teaching, and writing CSS – as a founder at OddBird, a member of the Sass core team, and an Invited Expert on the CSS Working Group.
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.
Don’t let the declarative syntax fool you – CSS is a powerful and dynamic programming language.
How do we write code that is modular & maintainable, in a language designed to be systematic & contextual?
The Cascade makes CSS unique – forcing us to revisit even the most common programming feature: the variable.
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?
From the very start, “web design” has posed a nearly impossible paradox.
From building beautiful sites to maintaining complex design systems across multiple applications, CSS is the web-language of design.
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.
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.
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.
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.
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.
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.
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.
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?
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.
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?!
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?
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!
A project-manager’s reflections on human-centered problem-solving, client communication, and user feedback in agile web development.
Style Guides & Pattern Libraries are great tools for documenting the relationships between code and design, but beautiful docs are only half the battle.
The Narrators is a live storytelling show and podcast featuring true stories on a monthly theme.
From building beautiful sites to maintaining complex design systems across multiple applications, CSS is the web-language of design.
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.
A non-technical guide for taking your project from concept to launch, without ever losing sight of the goals.
Style Guides & Pattern Libraries are great tools for documenting the relationships between code and design, but beautiful docs are only half the battle.
I used exerpts from Body & Gender Fragments to talk about the contradictions of transition – a sort of “crossing over” without going anywhere.
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…
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…
Maps are a powerful data type in Sass – perfect for managing color and scale palettes, framework configuration, data storage, and more.
a case-study in building and sharing open-source Sass
an introduction to the Susy layout toolkit