contrast()

The CSS contrast() filter function increases or decreases the contrast of an element, either making colors pop out more or dulling them to gray. Unlike other filter functions like brightness() or saturate(), contrast() affects both saturation and lightness, keeping only the color’s hue. .low { filter: contrast(50%); } .normal { filter: contrast(100%); } .high { filter: contrast(200%); Read more…

contrast-color()

The CSS contrast-color() function takes a <color> value (as well as a variable) and returns either black or white, whichever is the most contrasting color for that value. In other words, contrast-color() is sort of an accessibility tool for conforming to WCAG contrast requirements. .card { background-color: var(–swatch); color: contrast-color(var(–swatch)); } For example, on the next demo Read more…

Markdown + Astro = ❤️

Markdown is a great invention that lets us write less markup. It also handles typographical matters like converting straight apostrophes (‘) to opening or closing quotes (‘ or ‘) for us. Although Astro has built-in support for Markdown via .md files, I’d argue that your Markdown experience can be enhanced Read more…

hypot()

The hypot() function takes a list of values and returns the square root of the sum of their squares. .hypotenuse { width: hypot(30vmin, 40vmin); /* 50vmin */ } Most of the time, we’ll pass it two arguments: hypot(A, B). Think of it like a way to complete the Pythagorean theorem where we give Read more…

The Radio State Machine

Managing state in CSS is not exactly the most obvious thing in the world, and to be honest, it is not always the best choice either. If an interaction carries business logic, needs persistence, depends on data, or has to coordinate multiple moving parts, JavaScript is usually the right tool Read more…