Follow Up: We Officially Have a CSS Logo!
Adam Argyle wraps up the search for a CSS logo, check out CSS’ new look!
Adam Argyle wraps up the search for a CSS logo, check out CSS’ new look!
Powered by
DigitalOcean
Most images require description for clarity, there are exceptions. This set of notes looks at different situations and contexts where alt text may not be needed and what to do in those cases.
Donut scoping addresses the challenge of preventing parent styles from leaking to nested content. Originating from a 2011 concept by Nicole Sullivan, the issue has evolved, culminating in 2024’s @scope at-rule. This allows for more precise CSS styling, safeguarding content from unwanted inheritance while managing global CSS complexities.
Web browsers are experimenting with two HTML attributes — technically, they’re called “invoker commands” — that are designed to invoke popovers, dialogs, and further down the line, all kinds of actions without writing JavaScript. Although, if you do reach for JavaScript, the new attributes come with some new events that we can listen for.
Do you subscribe to Piccalilli? You should. If you’re reading that name for the first time, that would be none other than Andy Bell running the ship and he’s reimagined the site from the ground-up after coming out of hibernation this year. You’re likely familiar with Andy’s great writing here on CSS-Tricks.
@scope (.container) to (.article) { /* */ }
.element { anchor-scope: --anchor-one, --anchor-two; }
.element { width: random(5rem, 25rem, by 5rem); }
@layer reset, utilities, components, pages;
@property --spacing {
syntax: "";
initial-value: 20px;
inherits: true;
}
@supports selector(:nth-child(1 of .foo)) { }
@container (width > 600px) {}
.element { animation: pulse 5s infinite; }
@position-try --my-position { position-area: top left; }
.target { top: anchor(--my-anchor bottom); }
.target { width: anchor-size(width); }
.target { position-visibility: no-overflow; }
.target { position-try-fallbacks: flip-inline, bottom left; }
.element { position-try-order: most-width; }
form:valid { outline: 3px dashed green; }
form:invalid { outline: 3px dashed red; }