Keith J. Grant
An AI Skeptic Uses AI for a Week
Simplify Nested Code
Theme Machine 2.0
CSS in Depth Addendum
A Structured Approach to Custom Properties
Theme Machine: A CSS Color Palette Tool
Assessing Web Component Libraries
CSS in Depth, Second Edition
I Do Not Like These LLMs
Weighing in on CSS Masonry
My CSS resets
Be Excited for New Features
Workarounds for Buggy Gradients
Scope vs Shadow DOM
Web Components Aren’t Components
Re-evaluating px vs em in Media Queries
The Webdev Social Schism
Scoped CSS is Back
Transitioning to Height Auto (Two Ways)
It's Time to Learn oklch Color
Redesign 2023
React Pays the Bills
You Should Start a Mastodon Instance
What Happened to Unit Tests?
Client Side NPM
Adding Webmention Support to a Static Site
Preparing Your Site for Posting Notes
A Low-Friction Workflow for Short-form Posting on a Statically Generated Site
Teaching a Correct CSS Mental Model
Won’t You Be My Neighbor
Getting Started with Micropub
Resilient, Declarative, Contextual
HTML5 Sectioning and Landmark Elements
Introducing Sidecar
Meet the New Dialog Element
Shindig
OOCSS and Grid
Code, Not Clojure
Transitioning Gradients
Thoughts on Self-Documenting CSS
Memorizing Alignment Properties
What Grid Can Do That Tables Can’t
Don’t QWOP Your Way Through CSS
CSS is Not Broken
More thoughts on CSS in JS
A better approach to CSS aspect ratios
It’s Both
Hello, World Wide IndieWeb!
Let’s Talk About Separation of Concerns
Your Team Needs a UX Engineer
CSS in Depth
Save Scoped CSS
A Quest for Interchangeable Parts
Width and Absolute Positioning
Simply White
CSS First
Into the future of CSS
Against CSS in JS
Hosting on Github
Taming CSS