How to boost the font size of emoji in CSS with no extra markup

Getting straight to the code: It looks a little beastly but I love clever tricks like this. Here, Terrence defines a web font with an array of font files that operating systems use for local emoji support. It’s not totally unlike leveraging a system font, only we have to do more … | Continue reading


@geoffgraham.me | 2 days ago

“AI has fundamentally changed user expectations.” Really? As in we all expect AI to scrape content that isn’t theirs, hallucinate over the results, and spit out a degraded version of it? Sure, OK.

“AI has fundamentally changed user expectations.” Really? As in we all expect AI to scrape content that isn’t theirs, hallucinate over the results, and spit out a degraded version of it? Sure, OK. ✏️ Handwritten by Geoff Graham on April 25, 2024 Post navigation 👈 Previous | Continue reading


@geoffgraham.me | 2 days ago

Smashing Meets: Design Systems

I took the moderator’s seat for a recent Smashing Meets discussion on design systems. Brad Frost, Dan Callahan, and Nathan Curtis sat in as panelists, which was a real dang treat for me because I rarely get the chance to talk shop with adults, unless you count my wife nodding alo … | Continue reading


@geoffgraham.me | 4 days ago

The New !important

I spotted this CSS used in a very popular WordPress theme: Those .specificity and .extra-specificity classes sure pop off the page, don’t they? I wonder what they do. Asking the author directly would be a good way to find out, but who wants facts when we can make wild assumptions … | Continue reading


@geoffgraham.me | 4 days ago

Hot take: Stop development on EVERYTHING until the “1 second remaining” hint on downloads and installs actually means that 1 second is remaining.

Hot take: Stop development on EVERYTHING until the “1 second remaining” hint on downloads and installs actually means that 1 second is remaining. ✏️ Handwritten by Geoff Graham on April 12, 2024 Post navigation 👈 Previous | Continue reading


@geoffgraham.me | 15 days ago

How do I know it’s 2024? One of my clients is a YouTuber.

How do I know it’s 2024? One of my clients is a YouTuber. ✏️ Handwritten by Geoff Graham on April 10, 2024 Post navigation 👈 Previous | Continue reading


@geoffgraham.me | 17 days ago

How my son got into Duke

Penelope Trunk on asking her son to practice writing papers before he begins college: My son said, “I don’t need to practice. I’ll do the triple AI approach: ask ChatGPT write the paper, tell ChatGPT to rewrite the paper to not sound like ChatGPT, and then use ChatGPT to check th … | Continue reading


@geoffgraham.me | 26 days ago

Where I can enter my vote to go back to saying “the net” instead of “the web”?

Where I can enter my vote to go back to saying “the net” instead of “the web”? ✏️ Handwritten by Geoff Graham on March 29, 2024 Post navigation 👈 Previous | Continue reading


@geoffgraham.me | 29 days ago

How to Format Money in Markdown

This seems like something I should already know and can’t believe I’m only now running into a situation where I need to enter a dollar figure in Markdown after writing it all these years. Here’s the deal: Type a dollar sign before a number and Markdown formats the content like th … | Continue reading


@geoffgraham.me | 29 days ago

Happy MLB Opening Day! It’s the best day of the year. ⚾️

Happy MLB Opening Day! It’s the best day of the year. ⚾️ ✏️ Handwritten by Geoff Graham on March 28, 2024 Post navigation 👈 Previous | Continue reading


@geoffgraham.me | 1 month ago

Remember when the iPod got its first color screen? Those were cute times.

Remember when the iPod got its first color screen? Those were cute times. ✏️ Handwritten by Geoff Graham on March 27, 2024 Post navigation 👈 Previous | Continue reading


@geoffgraham.me | 1 month ago

You’re good enough, you’re smart enough, and gosh darn it, people like you.

You’re good enough, you’re smart enough, and gosh darn it, people like you. ✏️ Handwritten by Geoff Graham on March 25, 2024 Post navigation 👈 Previous | Continue reading


@geoffgraham.me | 1 month ago

How to fix the “Incompatible Archive” error in WordPress

Let’s say you build a little WordPress plugin. The files are all in tact and you zip it up before heading into the WordPress admin to upload and install it to your site. But it never uploads. In fact, you get an ominous error message that tells you nothing but “Incompatible Archi … | Continue reading


@geoffgraham.me | 1 month ago

Obligatory Reaction to My Old CSS-Tricks Job Re-Opening

DigitalOcean is re-hiring the position for CSS-Tricks lead editor, the job that they let me go from last year. I don’t have any points or quips to make about it. It’s just a job, right? Besides, that was just over a year ago and I’ve been able to move on to other things in that [ … | Continue reading


@geoffgraham.me | 1 month ago

Oh hey, my old job! 🙃

Finally, we're on the lookout for a CSS-Tricks Site Editor to help us bring this and other community resources to life. Is that you or someone you know? Pass along this job post to those who might be a fit. https://t.co/SDvNbAOdbo (4/4) — Paddy Srinivasan (@paddix) March 21, 2024 | Continue reading


@geoffgraham.me | 1 month ago

Thoughts on embedding alternative text metadata into images

You can’t read anything by Eric Bailey without taking away a big ol’ bag of gems. I personally have not heard buzz around the idea of embedding alt text in images along with the rest of the metadata that’s packed in them. At first glance I was like, UH-HUH! There’s been more than … | Continue reading


@geoffgraham.me | 1 month ago

CSS Meditation #7: Nobody is perf-ect.

Skip to content Geoff Graham Blog TIL Notes One Liners CSS Meditation #7: Nobody is perf-ect. ✏️ Handwritten by Geoff Graham on March 12, 2024 Post navigation 👈 Previous Leave a Reply Cancel reply Your Comment Name * Email * Website Save my name, email, and website in thi … | Continue reading


@geoffgraham.me | 1 month ago

The Cheap & Lazy Way to Display Form Entries on the Front End of a WordPress Site

I decided I wanted a Guestbook on this little ol’ site of mine after seeing a bunch of folks sharing Manu’s excellent example. I wanna be like the cool kids, too! I’d probably follow them jumping off a virtual bridge, too. But really, I love the undercurrent of life going back in … | Continue reading


@geoffgraham.me | 1 month ago

Shifting Identities

Jonathan Snook with a sentiment that’s all-too-often on my mind: In the web industry, I often shifted my topics of interest and as I talked about those new interests, I would gain a following within that new sphere. Over more than a decade, some people knew me as a designer, some … | Continue reading


@geoffgraham.me | 1 month ago

“Where the people are”

A classic fork in the road here: reinvent the wheel, or don’t. It’s funny, but as Zeldman describes his experience working in a small agency as a possible source of his habit building from scratch, I recalled my own experience as a reason for leaning into existing solutions. Like … | Continue reading


@geoffgraham.me | 1 month ago

Me to counselor: “You handle toxic existential crash site cleanups, right?”

Skip to content Geoff Graham Blog TIL Notes One Liners Me to counselor: “You handle toxic existential crash site cleanups, right?” ✏️ Handwritten by Geoff Graham on March 5, 2024 Post navigation 👈 Previous Next 👉 2 Comments Courtney Robertson # March 6, 2024 Is th … | Continue reading


@geoffgraham.me | 1 month ago

CSS Meditation #6: The color space is always calc(rgb(0 255 0)+er) on the other side of the fence.

Skip to content Geoff Graham Blog TIL Notes One Liners CSS Meditation #6: The color space is always calc(rgb(0 255 0)+er) on the other side of the fence. ✏️ Handwritten by Geoff Graham on March 4, 2024 Post navigation 👈 Previous Next 👉 Leave a Reply Cancel reply Y … | Continue reading


@geoffgraham.me | 1 month ago

CSS Meditation #5: :where(:is(.my-mind))

Skip to content Geoff Graham Blog TIL Notes One Liners CSS Meditation #5: :where(:is(.my-mind)) ✏️ Handwritten by Geoff Graham on February 29, 2024 Post navigation 👈 Previous Next 👉 Leave a Reply Cancel reply Your Comment Name * Email * Website Save my name, email … | Continue reading


@geoffgraham.me | 1 month ago

The Perfect Storm?

Recently… Maybe… No reality lens on this. Just noting three distinct movements that are on three different paths that could feasibly converge into one deal under the right conditions. | Continue reading


@geoffgraham.me | 1 month ago

So, I’m thinking we take this one thread about global documentation and this other thread about global web components and stitch up a mega monorepo of front-end resources.

Skip to content Geoff Graham Blog TIL Notes One Liners So, I’m thinking we take this one thread about global documentation and this other thread about global web components and stitch up a mega monorepo of front-end resources. ✏️ Handwritten by Geoff Graham on February 27, 2024 P … | Continue reading


@geoffgraham.me | 2 months ago

Artificial Listicles

One of the things I’m noticing more an more with automated robot writing is its tendency to summarize key points in lists. Take, for example, the following prompt: What was The Beatles most significant achievement? I’m trying to ask ChaptGPT something that doesn’t require a list … | Continue reading


@geoffgraham.me | 3 months ago

Emphasizing & De-Emphasizing Link Interactions in Navigation

I hopped over to The Athletic hoping for some inkling of news that the San Francisco Giants had made some big splash of a trade or free agent signing. And just like the 99 other times I’ve checked in the last hour, there’s nothing shaking. Anyway, I scouted this slick little inte … | Continue reading


@geoffgraham.me | 4 months ago

How to add the simplest View Transition to my site

I’ve never felt so powerful with so little. I’m spending time digging into the View Transitions API, a new-ish (and experimental) feature. Simply put, it creates the same sort of slick transitions between two pages (in a multi-page app, aka “website”) or views (in single-page app … | Continue reading


@geoffgraham.me | 4 months ago

The Thin Line Between Admirable and Stupidity

I have this contradiction in my brain I just can’t shake. There’s this person, let’s call them Jeff. Jeff discovers a new passion, something that “sparks joy” — not in the Maria Kondo sense of orderliness, but existentially in the sense of finding true personal fulfillment in wha … | Continue reading


@geoffgraham.me | 4 months ago

Width Looks Outward, Height Looks Inward

The key insight here is: height: 100% means “I am as tall as all the things inside of me”, not “as tall as all the things I am inside of.” That is why width: 100% does what a lot of people naturally expect and it goes the full width of the screen when working with block-level ele … | Continue reading


@geoffgraham.me | 4 months ago

California (the Song)

Spending time in quarantine with Covid is the pits. I must say it’s amazing it took me three years to catch the dang thing. But here I sit, in a basement, with faint sounds of the family carrying on about upstairs. I decided to spend a few minutes trying my hand at recording. It’ … | Continue reading


@geoffgraham.me | 5 months ago

What Exactly is “Modern” CSS?

I was flipping through my RSS feed, noticing how many times “Modern” is popping up in post titles. I have a purdy good idea what that means, particularly when it’s describing CSS. We’ll probably get into CSS Grid, maybe adjust specificity with Cascade Layers, perhaps reach for a … | Continue reading


@geoffgraham.me | 6 months ago

A CSS Property for Creating Depth

Web design is still very much a two-dimensional medium. Pretty unsurprising considering that print journalism is among the earliest trades to embrace the web platform, once hailing it as the birth of “Way New Journalism”. Much of what we do on the web is pretty much a substitute … | Continue reading


@geoffgraham.me | 6 months ago

Matching Selectors With Case Sensitivity

Or, perhaps a better use case: | Continue reading


@geoffgraham.me | 6 months ago

MacOS Sonoma lets you add websites to the dock

It can be done either by clicking the Share button in Safari’s toolbar or from the File menu. | Continue reading


@geoffgraham.me | 6 months ago

The CSSWG adopted a new CSS form-sizing property

It aims to solve the age-old frustration of running out of room when typing in a <textarea> element. We can already set the number of rows in a <textarea> directly in HTML: Setting the initial size isn’t the issue, but what happens after the user has reached that thre … | Continue reading


@geoffgraham.me | 6 months ago

The Bulletproof Method for Marketing Your Web Design Services

I’ve apparently been doing it wrong all along. | Continue reading


@geoffgraham.me | 7 months ago

Would You Pay For Email?

Making my way through the ol’ inbox is officially my part-time job. It’s not that I have one single inbox to brush through, but a monolithic cauldron combining eight inboxes. Maybe you can relate. There’s my personal email. My freelance work email. My school email. And five other … | Continue reading


@geoffgraham.me | 8 months ago

How to calculate the number of days between two dates in Notion

It’s not the most complicated thing in the world. But it did take me a couple of minutes to get it, and I thought I’d write it down in case I need to remember it in the future. You start with a Date property in a Notion database. What I didn’t know up front is […] | Continue reading


@geoffgraham.me | 10 months ago

Cool WP Tavern Image Hover

I was catching up on my WordPress news this morning over at WP Tavern. Normally, that’s something I’d do in my RSS reader (because RSS is boss), but I hopped over to the WP Tavern site instead and spent more time admiring its image hover effect. I love, love, love little effects … | Continue reading


@geoffgraham.me | 10 months ago

Breakdown Guitar Licks

No, this isn’t related to web development or whatnot. But I’ve been trying my hand (quite literally) at lead guitar work. I started playing guitar at 14 but never learned scales or anything beyond basic chord shapes. So, after a few videos on the ol’ YouTube, I’m learning a few o … | Continue reading


@geoffgraham.me | 10 months ago

Smashing Magazine!

Well, here we are, a couple of months removed from being, well, removed from my work at CSS-Tricks. And I’m stoked to say… I’ve joined the Smashing Magazine family! I’m a few months in and can confirm what y’all probably already know — that Smashing is flush with some of the nice … | Continue reading


@geoffgraham.me | 10 months ago

Overlooked

I think of how easy it is to overlook all of the amazing things right in from of us. Like music. I used to crave the latest releases that came out every Tuesday. Remember “New Music” Tuesday? I still enjoy the “Made for You” mixes that Apple Music curates for me each week, but it … | Continue reading


@geoffgraham.me | 1 year ago

Making Melodies

I could never crack the code of songwriting when I was a kid in high school. Talent may have been the main culprit, that is, a lack of it. Some take to it quite naturally but that was never the case for me. I labored over each piece of a song and thought for some […] | Continue reading


@geoffgraham.me | 1 year ago

Damn the AI Torpedos

Andrew Paul writing for Popular Science: Amid the multiple waves of dramatic layoffs that have roiled Big Tech in recent months, Microsoft first announced plans in January to ax approximately 10,000 jobs from its global workforce by March 2023. The major cutback occurred as a new … | Continue reading


@geoffgraham.me | 1 year ago

What I’d Do if I Wasn’t Doing What it is I’m Doing

I have the luxury of being able to think about this! You see, I’m not exactly “unemployed” but I’m no longer doing my primary day job and have nothing but time on my hands. Sure, I’m spending a lot of this time contracting, studying, and just generally spending time with the fami … | Continue reading


@geoffgraham.me | 1 year ago

Body styles are ignored when the changing the default containment of body or HTML root

I thought I’d cook up a quick demo of diddling container queries. I figured I could define the body as a container and style the heading element I was working on based on the body’s inline size. I know, I know… why the heck would I even want to do something like that when we […] | Continue reading


@geoffgraham.me | 1 year ago

My CSS-Tricks Top 10

Just spitballing here (I’ll wash my hands later) but I’ve probably edited and written somewhere in the vicinity of 3,000 articles at CSS-Tricks. Much heavier on the editing side, of course. Combine that with the fact that I started following CSS-Tricks in its maiden year, 2007, a … | Continue reading


@geoffgraham.me | 1 year ago