I’ve scoffed at this AI hype train, but I'm genuinely surprised what I found when I gave it a serious go.| keithjgrant.com
One of the easiest and most effective ways to clean up messy code is to reduce the amount of nesting and minimize boolean logic. Here's how you can do that.| keithjgrant.com
A look at all the updates and new features I’ve added to the Theme Machine| keithjgrant.com
If you've read, or plan to read, CSS in Depth, here are three brand new features that didn't make it into the book, but I think are worth knowing.| keithjgrant.com
Introducing a new tool for generating color palette custom properties| keithjgrant.com
How I define and manage custom properties in CSS| keithjgrant.com
My first impressions from a handful of web-component-based frameworks| keithjgrant.com
I’m so excited to say I’m just finishing up reviews of the final copyedits for| Keith J. Grant
I would not like them here or there. I would not like them anywhere. I do not like these LLMs. I do not like them, Sam Altman.| keithjgrant.com
Should masonry be its own `display` method outside grid? Absolutely.| keithjgrant.com
Every now and then, I see someone post their latest and greatest set of CSS resets. Here’s mine.| keithjgrant.com
Browsers ship new features today faster than ever. You do not need to wait years before you can start using cutting edge CSS in production anymore.| keithjgrant.com
CSS has a great new feature where you can specify the color space to use by adding in to the gradient (not yet supported in Firefox). This is especially useful| keithjgrant.com
This is Part 1 in a series exploring short-form posting, the IndieWeb, and taking control of your own online social workflow for a statically-generated site: A| keithjgrant.com
With the recent discontentment on Twitter (and social media in general), I’ve seen a resurgence of people returning to blogging. In particular, I’ve noticed mor| keithjgrant.com
A little over a year ago, my wife bought me a copy of Liquid Intelligence by Dave Arnold. It’s a book by a renowned bartender on making cocktails. I enjoyed mak| keithjgrant.com
My new site design is live! I’ve been working on this one for a while, and it just so happened to coincide with the #newwwyear activity on Twitter. I’m calling| keithjgrant.com
I’m going to make two declarations that might sound contradictory: CSS is code. CSS is not a programming language. Many developers get these backwards. It is co| keithjgrant.com
In, CSS, you can’t transition a background gradient. It sure would be nice if you could: .gradient { background-image: linear-gradient( to right, hsl(211, 100%,| keithjgrant.com
There’s a kind of narrative out there that’s basically, “Silly CSS wonks: first they tell us tables are bad, now they give us grid.” Nevermind that this is comp| keithjgrant.com
At a previous job, I was brought in to a team of Java devs to provide a little JS support. They had been using something called PrimeFaces, basically a bunch of| keithjgrant.com
There’s been a lot of talk lately about good old Separation of Concerns — primarily in the context of React and the use of inline styles or CSS-in-JS. Adv| keithjgrant.com
Benjamin Moore has declared the Color of the Year for 2016 to be "simply white". We have reached peak minimalism, y'all. So I'm steering into the skid. Here's m| keithjgrant.com
Well, this is a bit of an experiment... I've lost track of how many times I've started a redesign of my WordPress blog, only to give up after days of fiddling.| keithjgrant.com
Observation 1: Web developers, in general, don’t know CSS as well as they should. Observation 2: There aren’t really any good roadmaps for learning all the esse| keithjgrant.com
My book is finally for sale! The MEAP is available on Manning’s website. The first three chapters are available now, and others will be rolling out steadily (I’| keithjgrant.com
When CSS grid first arrived, there were a lot of people saying, “Why do we need this? We already have flexbox!” I’m getting very much the same vibe now with @sc| keithjgrant.com
Modern web frameworks are built entirely on the concept of components. In the realm of these frameworks, a component is a reusable piece of application code. Al| keithjgrant.com
We used to say ems were the best unit to use in media queries. Is that still the case in 2023?| keithjgrant.com
I’m concerned about what the Twitter/Mastodon debate means for the webdev community at large. Have we split ourselves in two?| keithjgrant.com
Yes, there is now a way to transition an element to height auto with CSS alone.| keithjgrant.com
Oh man, it always feels good to roll out a fresh site design! I had a lot of fun with this one, especially since it’s my first chance to really dig in to some n| keithjgrant.com
It seems to be trendy to trash on React again. Look, I know these criticisms aren't targeted at me, but I can't help but feel defensive when I see post after po| keithjgrant.com
…and I don't mean a single-user one for your own personal use. This is happening Hi! I hope you had a great weekend. While you were off, you know, having a life| keithjgrant.com
It seems to me one individual has convinced our entire industry to stop shallow rendering, and to abandon unit testing in favor of (almost) exclusively using in| keithjgrant.com
Disclaimer: this is an idea. At this point, I’m not entirely convinced it’s a good idea, but it’s an idea nonetheless. This is something I thought of about a ye| keithjgrant.com
This is Part 3 in a series exploring short-form posting, the IndieWeb, and taking control of your own online social workflow for your statically-generated site:| keithjgrant.com
This is Part 2 in a series exploring short-form posting, the IndieWeb, and taking control of your own online social workflow for your statically-generated site:| keithjgrant.com
Almost four years ago, I chimed in on the debate surrounding CSS. Is it good? Is it broken? Does CSS-in-JS solve anything? The discussion has evolved since then| keithjgrant.com
Here we are again. Arguing about CSS, the cascade, and CSS-in-JS. And you know what? We’ll be here again in a few months. Because that seems to be the cycle. So| keithjgrant.com
A little while ago, I wrote about the `` element. But there are plenty of interesting HTML elements that have been around longer, since HTML5 was first introduc| keithjgrant.com
HTML 5.2 has introduced a new `` element for native modal dialog boxes. At first glance, it seems fairly straightforward (and it is), but as I’ve been playing a| keithjgrant.com
OOCSS was the first of the many CSS methodologies. Since it arrived on the scene, the industry has moved on to newer, more strongly prescriptive methodologies l| keithjgrant.com
One of the best programming books I’ve ever read is Clean Code by Robert C. Martin. If you have never read it, add it to your list. Every comment represents a f| keithjgrant.com
Do you often find yourself looking up a Flexbox cheat sheet? Wish you could just commit all those properties to memory and be done with it? Here’s how I memoriz| keithjgrant.com
QWOP, if you haven’t played it, is a ridiculous running game. Instead of pressing, say, the right arrow key to run, you must control each of the runner’s muscle| keithjgrant.com
Coding in any language is hard before you spend time mastering it. Imagine what your JavaScript would look like if you never took the time to learn about OOP or| keithjgrant.com
There’s an old hack for creating elements with a fixed aspect ratio that involves using a percentage-based padding. You may be familiar with it. It looks someth| keithjgrant.com
I’m a JavaScript developer. I have experience working in large web applications and dealing with the problems that come from scaling up. I studied Computer Scie| keithjgrant.com
It’s a new year, so it’s time for a new design! Only this time, the update is more than just a CSS revamp. This year, I join the “IndieWeb”. If you don’t know w| keithjgrant.com
Recently, after I mentioned that I was the only one on my team that writes the CSS, someone replied, “You’re lucky”. It stuck with me, and I’ve been thinking ab| keithjgrant.com
Update June 23, 2016:** The editor's draft has been updated again. It looks like @scope is gone for good, so this post is now a moot point. The way forward now| keithjgrant.com
This is a bolt. You may not realize it, but it is a modern marvel. It is a 150mm bolt with an M20 threading. It works in any piece of hardware that is cut with| keithjgrant.com
I recently came across this question on Twitter: What's the diff on a position:absolute el btw {top:0;right:0;bottom:0;left:0;} and {top:0;left:0;height:100| keithjgrant.com
In 2003, the CSS Zen Garden went live, and it spearheaded a revolution. At the time, many web designers were still using tables for layouts, and the battle for| keithjgrant.com
In my last post, I laid out why I think moving our CSS into JavaScript is not a good idea. If am totally honest, however, I have to admit I brushed off the conc| keithjgrant.com
Some folks want a unified language of the web instead of CSS, HTML, and JS. It's increasingly looking like JS will just eat the other two.— H| keithjgrant.com
Several years ago, I made a plea to save scoped CSS. One of the top features on my CSS wishlist was on the chopping block, and despite a pretty big push from th| keithjgrant.com
If you’re anything like me, looking at all the things happening in CSS lately involving color, you’re probably a bit overwhelmed. For a long time, HSL was promo| keithjgrant.com
I’ve spent a lot of time thinking about what defines a CSS mindset. Some people seem to “get” it, and others don’t. It’s always felt to me that if I could put m| keithjgrant.com