2026-04-26 09:32:25

Here's some rad CSS that just hit baseline between October 2025 - April 2026.
At this point with the following features, the "I can't use it" vibe can shed away.
Anchor positioning lets you natively tether components to target elements without adjusting DOM semantics or crowding the main thread.
This widget doesn't show green across the board as of writing this, there are sub features that aren't all supported, but the general featureset is ready.
Checkout Tab's talk about anchor called
Anchor Positioning at CSS Day 2025.
Checkout my post on AIM if you missed it, neat anchor technique for FLIP-like transitions with anchor.
CSS selector scoping, not style scoping; a common misconception.
However! With @scope we can simplify naming conventions or robobarf classnames just to avoid global cascade collisions.
The "donut" feature is very special, it can limit styles from cascading into nested components by setting an end to the selector (a donut hole 🍩).
Chris gave a talk about @scope called Scope In CSS at CSS Day 2025.
@container no longer requires a size condition.
You can now conditionally style elements just by name:
.sidebar {
container-name: sidebar;
}
.card {
display: grid;
@container sidebar {
grid-auto-flow: column;
}
}
Chris wrote a good post about it over on FrontEnd Masters.
Responsive, native CSS geometry.
Draw complex clipping paths using standard CSS syntax and dynamic units (like rem or calc()) instead of being locked into rigid SVG pixel coordinates.
Temani wrote a rad post about it over on FrontEnd Masters and a "complex" post CSS-Tricks.
Wrap inline text around precise geometric boundaries with xywh() and rect().
Typographical control over floating text flows without relying on images or clip-paths.
Still no pretext, but also still coo.
SPA-like routing animations.
With view-transition-class you can target massive collections of DOM nodes with a single animation rule, while JS View Transition Types let you programmatically direct "forward" or "backward" contextual motion.
Even more typographic precision.
2026-04-21 10:29:26
I love cozy games. I want more cozy software.
It's such a great UI/UX goal: chill, empowerment, and joy.
2026-04-17 06:57:10

Ep #240
AI Cowgorithm Disrupts The Herd
(presented by Warp)
🕹️ Token spending
🧐 Autoresearch
🌗 Day Shift / Night Shift
🐄 Cowgorithms
💻 Terminal tools
🥃 Whiskey & whatnot
⤷ whiskey.fm · youtube · spotify · apple
2026-04-12 13:48:57

AI is a sycophantic dev wannabe that skimmed a shitload of tutorials. You get the results of a probabilistic guess based on patterns it saw during training. What did it train on? Ancient solutions, unoriginal UI patterns, and watered down junk.
I'm about to rant about how this is both useful and lame.
AI loves the boring stuff. It thrives on mediocrity.
If you want some gloriously unoriginal UI, it has your back 😜
Aka: If it's a well-worn pattern, AI is there to help you copy-paste faster. Which, for a lot of programming, is totally the case. I'm genuinely finding a lot of helpful stuff in this department.
Pixel perfection & bespoke solutions… what are those?
The exact second you step off the paved road of unoriginality, it faceplants.
aria-hidden="true" at a wall and hopes it sticks. And the absolute best part? The more complex the component gets, the slower and dumber the front-end help becomes. Incredible how it can one shot a totally decent front-end design or component, than choke on a follow up request. Speaks to what it's good at.
It lacks modern training data.
It has an excessive reliance on standard templates because that's what the internet is full of. Modern CSS? It's barely aware of it.
It's an LLM, not a rendering engine!
It's notoriously bad at math, and throwing screenshots at it means very little. It's stabbing in the dark.
This leads to the classic UI interaction:
AI: "I'm done! Here is your perfectly crafted UI."
Me: "There's a gaping hole where the icon should be, fix the missing icon."
AI: "You're absolutely right. Let me fix that for you."
It doesn't understand the "why" behind our architectural decisions.
SDD, BDD, or state machines might help guide it, but the models weren't exactly trained on those paired with stellar solutions.
We're asking a giant text-predictor to make new connections on the fly. We can get it there, but there's so much to consider we have to spell it out before it starts making the connections we want.
It doesn't control where the code lives.
It can write annoyingly amazing Rust, TypeScript or Python, but those have the distinct advantage of a predictable (pinnable!!! like v14.4) environment the code executes in.
That's not how HTML or CSS work, there is no pinning the browser type, browser window size, browser version, the users input type (keyboard, mouse, touch, voice), their user preferences, etc. That's complex end environment shit.
The list goes on too, for scenarios, contexts and variables the rendering engine juggles before resolving the final output. The LLM doesn't control these, so it ignores them until you make them relevant.
Even prompting in logical properties, you have to ask for this kind of CSS. These should be CSS tablestakes output from LLMs, but it's not. And even when you ask for it, or provide documentation that spells it out, it's not guaranteed to work.
The place where HTML and CSS have to render is chaotic. It's a browser, with a million different versions, a million different ways to render, a million different ways to interact with it, and a million different ways to break it.
It's a moving target, and LLMs are terrible at moving targets.
We're a LLM combinatorial explosion.
We're wildly unpredictable targets. We change our minds, we switch viewports, we change theme preferences, we changes devices, we change browsers, we change browser versions, we switch inputs, we change our everything.
We're not a static target. We're not a pattern that can be learned.
There is a "human mainstream" of behaviors, preferences, and expectations where LLMs can be genuinely helpful; but our "full potential" matrix will be exploding LLM output patterns for a long time to come. IMO at least.
unless we Borg.
2026-04-11 00:45:12

Ep #239
Flogging Margins With The Dropcap Murphys
featuring Dave Rupert and Chris Coyier
™️ Brand Truth vs Brand Slop
🔫 One-Shot Apps
🧑🎨 CSS in the Age of AI
Context Rot
🧛🏻♂️ Energy Vampires & AI Brain Fry
🥃 Whiskey & whatnot
⤷ whiskey.fm · youtube · spotify · apple