Depending who you ask,
CSS is either awesome or broken.
CSS is not a programming language, unless it is.
CSS is too simple and entirely too difficult.
CSS is weird – not like other languages,
and not like print design either –
but trapped in a strange middle ground
with unique rules and constraints.
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?
CSS is designed to be resilient, declarative, accessible, and contextual –
with progressive enhancement and graceful degradation built in.
We’ll look at practical ways to leverage those aspects of the language
in our everyday work.
We don’t have to wait years for support in every browser
before we use the new features,
and we don’t have to duplicate our work for every browser we support.
From layouts to variables, support queries, and duplicated properties –
we can write resilient and modern CSS
that works across the entire web,
now and into the future.
Use new features before they are universally supported
Support more browsers with less work
Use different fallback methods depending on the circumstances
Understanding caniuse.com as a guide, rather than a gatekeeper
Understand the radical vision that makes design on the web so unique…
and weird
New CSS features are shipping at an unprecedented rate –
cascade layers, container queries, the :has() selector,
subgrid, nesting, and so much more.
It’s a good time to step back and understand
how these tools fit together in a declarative system –
a resilient cascade of styles.