An early proposal for creating declarative state controls in CSS, and styling elements based on the current state.
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.
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.
Cascade & Inheritance Level 6 defines scoped styles – allowing authors to provide bounded ranges for selector-matching, and give priority to more ‘proximate’ scope origins.
Cascade & Inheritance Level 5 defines Cascade Layers – allowing authors to define explicit contained layers of specificity.
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.
display property has been in CSS from the beginning,
handling everything from
list-items and full layout systems like
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.
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
unset in my CSS –
global keywords that can be applied to any property.
The difference is small, but important:
unset allows inheritance,
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!
Script for My Body, My Gender rogue Vagina Monologue.
A queer adaptation of the classic novel
Award-winning stage adaptation of Riding SideSaddle*, weaving myth with everyday ritual
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.
Design systems streamline development, communication, and consistency – but often rely on dedicated teams and extended budgets.
Riding SideSaddle* has gone vertical – all 250 cards displayed in a gallery show.
Teacup Gorilla’s debut album
A fragmented memory of friendship – navigating fluid genders, relationships, and bodies that resist order, category, or completion. Inspired by Margaret Clap, and the many myths of Hermaphroditus.
Design systems must be meaningful to both humans and machines Accoutrement provides Sass design-token management that improves readability and consistency, while encouraging automation.
Not our album, but we did write a few of the songs…
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.
An archival rhizome ecology in ten parts, and a reflection on the obsolescence of obsolescence – documented on the cloud, and open-sourced as a defense against post-post-obsolescence.
A novel about new love, moving apart, and what comes next. A love story, and an after-love story – told wiith poetry and pictures.
For a few years, Teacup Gorilla performed & recorded music with Rachel Eisenstat – initially as Iron City, and later as Raven Jane.
A modern, theatrical interpretation of the Catholic Mass – created by Grapefruit Lab and Teacup Gorilla.
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.
An action comedy for the stage, based on our favorite movie tropes. The script was devised by the entire ensemble, lead by Michelle Milne, Miriam, Emily Swora, and Ben Jacobs. I don’t believe this is the final script…
a play in one act, and a short film
Reflections of a Mennonite holocaust survivor after the war
a ten minute play, and short film
a glimpse of the aftermath