CSS-Trickz! also ready to join Digital Ocean

You probably want CSS-Tricks

AR, VR, and a Model for 3D in HTML

Written by: Geoff Graham

Tucked down somewhere in the Safari Technology Preview 161 release notes is a seemingly innocous line about support for a new HTML element and attribute: Added support for <model src> and honor <source type> attributes (257518@main) Anytime I see mention of some element I don’t recognize, my mind goes straight to Huh! New to me, but probably old news […]

Continue reading "AR, VR, and a Model for 3D in HTML" at CSS-Tricks

Animating CSS Grid (How To + Examples)

Written by: Daniel Schwarz

I’m pleased to shine a light on the fact that the CSS grid-template-rows and grid-template-columns properties are now animatable in all major web browsers! Well, CSS Grid has technically supported animations for a long time, as it’s baked right into the CSS Grid Layout Module Level 1 spec. But animating these grid properties only recently […]

Continue reading "Animating CSS Grid (How To + Examples)" at CSS-Tricks

Getting Started With SvelteKit

Written by: Adam Rackis

SvelteKit is the latest of what I’d call next-gen application frameworks. It, of course, scaffolds an application for you, with the file-based routing, deployment, and server-side rendering that Next has done forever. But SvelteKit also supports nested layouts, server mutations that sync up the data on your page, and some other niceties we’ll get into. […]

Continue reading "Getting Started With SvelteKit" at CSS-Tricks

More Real-World Uses for :has()

Written by: Liam Johnston

The :has() pseudo-class is, hands-down, my favorite new CSS feature. I know it is for many of you as well, at least those of you who took the State of CSS survey. The ability to write selectors upside down gives us more superpowers I’d never thought possible. I say “more superpowers” because there have already […]

Continue reading "More Real-World Uses for :has()" at CSS-Tricks

How to Transition to Manifest V3 for Chrome Extensions

Written by: Shane Duggan

While I am not a regular Chrome extension programmer, I have certainly coded enough extensions and have a wide enough web development portfolio to know my way around the task. However, just recently, I had a client reject one of my extensions as I received feedback that my extension was “outdated”. As I was scrambling […]

Continue reading "How to Transition to Manifest V3 for Chrome Extensions" at CSS-Tricks

Solved With :has(): Vertical Spacing in Long-Form Text

Written by: Liam Johnston

If you’ve ever worked on sites with lots of long-form text — especially CMS sites where people can enter screeds of text in a WYSIWYG editor — you’ve likely had to write CSS to manage the vertical spacing between different typographic elements, like headings, paragraphs, lists and so on. It’s surprisingly tricky to get this […]

Continue reading "Solved With :has(): Vertical Spacing in Long-Form Text" at CSS-Tricks

6 Common SVG Fails (and How to Fix Them)

Written by: Mariana Beldi

Someone recently asked me how I approach debugging inline SVGs. Because it is part of the DOM, we can inspect any inline SVG in any browser DevTools. And because of that, we have the ability to scope things out and uncover any potential issues or opportunities to optimize the SVG. But sometimes, we can’t even […]

Continue reading "6 Common SVG Fails (and How to Fix Them)" at CSS-Tricks

:has is an unforgiving selector

Written by: Geoff Graham

A little thing happened on the way to publishing the CSS :has() selector to the ol’ Almanac. I had originally described :has() as a “forgiving” selector, the idea being that anything in its argument is evaluated, even if one or more of the items is invalid. See ::scoobydoo in there? That’s totally invalid. A forgiving […]

Continue reading ":has is an unforgiving selector" at CSS-Tricks

Faking Min Width on a Table Column

Written by: Anders Pedersen

The good ol’ <table> tag is the most semantic HTML for showing tabular data. But I find it very hard to control how the table is presented, particularly column widths in a dynamic environment where you might not know how much content is going into each table cell. In some cases, one column is super […]

Continue reading "Faking Min Width on a Table Column" at CSS-Tricks

Styling Buttons in WordPress Block Themes

Written by: Fränk Klein

A little while back, Ganesh Dahal penned a post here on CSS-Tricks responding to a tweet that asked about adding CSS box shadows on WordPress blocks and elements. There’s a lot of great stuff in there that leverages new features that shipped in WordPress 6.1 that provide controls for applying shadows to things directly in […]

Continue reading "Styling Buttons in WordPress Block Themes" at CSS-Tricks

Thank You (2022 Edition)

Written by: Geoff Graham

You know, this is the time of year where Chris normally publishes a big ol’ reflection of the past year. The first one was published in 2007, the same year CSS-Tricks began, and it continued all the way through 2021 without missing a beat. Having been a CSS-Tricks reader myself all those years, I’d hate […]

Continue reading "Thank You (2022 Edition)" at CSS-Tricks

2022 Roundup of Web Research

Written by: Geoff Graham

We’ve started making a tradition of rounding up the latest front-end research at the end of each year. We did it in 2020 and again in 2021. Reports are released throughout the year by a bunch of different companies and organizations researching everything from web design trends to developer skills to popular coding languages and […]

Continue reading "2022 Roundup of Web Research" at CSS-Tricks