Custom progress element using the attr() function
Now that we’re starting to be able to apply types (like `number`) to values of attributes we pull of HTML elements in CSS, doing interesting things with
Now that we’re starting to be able to apply types (like `number`) to values of attributes we pull of HTML elements in CSS, doing interesting things with
Using hard color stops with `repeating-conic-gradient()` and the double-stop syntax, we can pretty easily create a burst background. Then get fancier.
These buttons animate from a square to an arrow, and we look at three different ways to do it, each with their own upsides.
Shadows don’t have to be used for… shadows. Inset shadows can layer over backgrounds and because they are animatable, it’s just another tool for drawing what we want to the page.
Being able to control the `paint-order` in CSS means you can push the stroke behind the fill, fixing awkward issues with ruining letterform readability.
There is an already-classic @scope demo about theme colors. Let’s recap that and then I’ll show how it relates to any situation with modifier classes. (The @scope rule is a newish feature in CSS that is everywhere-but-Firefox, but is in Interop 2025, so shouldn’t be too long to be decently usable.) There are lots of […]
`box-decoration-break: clone;` in CSS can help us make for interesting backgrounds across lines of text that break, but when opacity gets involved, things can get complicated.
Blue links with underlines is a good default style for links in body text, but it’s a bit intense. Maybe we can chill it out a bit and be a bit more flexible.
There are quite a few tools to avoid *needing* a database these days, static site generators chief among them. So then what are the things that push toward or require a database?
Safari made .mp4 file work in img tags in HTML back in 2017, but no other browser followed suite. Should they have?
Frontend Masters Donates to open source projects. $363,806 contributed to date.