James Stuckey Weber
@jamessw.com
📤 275
📥 128
📝 166
Web Developer and builder of tools Web Developers use.
@oddbird.dev
All you need to know about my college experience 20 years ago is that the campus security guard still remembers my name, even though I was never caught.
about 21 hours ago
0
2
0
reposted by
James Stuckey Weber
Mia (online)
5 days ago
For spacing values on a website – is it better to respond to font-size, or available space, or stick with static units? You don't have to choose! Sometimes the best unit in
#CSS
is a combination – with calc()/clamp() or min()/max() or round() & other math functions.
www.oddbird.net/2025/09/23/t...
loading . . .
The Best CSS Unit Might Be a Combination
We don't have to choose between px and rem for spacing
https://www.oddbird.net/2025/09/23/type-units/
0
28
5
reposted by
James Stuckey Weber
Stacy Kvernmo
9 days ago
Color fonts are really interesting. You can see the font-palette options using a tool like
wakamaifondue.com
or the type designer's site is often helpful. You can even animate between font-palettes
codepen.io/stacy/pen/vE...
Unfortunately, COLRv1 has limited support
caniuse.com/colr-v1
loading . . .
Exploring Color Fonts (COLRv1)
COLRv1 fonts have limited support at the time of this pens creation, but are fun to experiment with in a supported browser. Check the list here: https:...
https://codepen.io/stacy/pen/vENWpOX
0
4
2
Good bird migration the last couple nights, but managed to botch recording both nights. Ah well, I took a nice walk in the woods and saw a few warblers and thrushes.
9 days ago
0
0
0
reposted by
James Stuckey Weber
Rachel Andrew
11 days ago
The WebDX Community Group is hosting an AMA on the r/webdev subreddit tomorrow. This is the group behind the "State of ..." surveys and Baseline, so if you have questions about those initiatives—or anything else around developer experience, join us!
web.dev/blog/baselin...
loading . . .
Join the WebDX CG for an AMA on Reddit | Blog | web.dev
Join the AMA on r/webdev on September 18 and ask us anything!
https://web.dev/blog/baseline-ama
0
13
12
reposted by
James Stuckey Weber
Mia (online)
11 days ago
I have a CSS workshop coming up soon at
@smashingconf.com
in NY, where we'll talk more about units & layouts & naming conventions – using Poetic CSS:
smashingconf.com/ny-2025
I'm also working on a video course, and happy to send you updates if you're interested:
www.oddbird.net/courses/desi...
loading . . .
Designing With Code
CSS video course waitlist signup
https://www.oddbird.net/courses/design-with-code/
0
9
4
Oh fun, Voiceover reads the `menuitem` ARIA role as mah-NEW-adum.
11 days ago
1
2
0
reposted by
James Stuckey Weber
Sara Soueidan
11 days ago
While making an update to a course chapter that includes the use of CSS-generated content in the accName computation, I noticed that support for alt text in CSS has improved since I gave a talk about CSS & a11y at CSS Day last year. So I thought it's time to do a proper, long overdue writeup!
loading . . .
CSS to speech: alternative text for CSS-generated content
— The personal website of Sara Soueidan, inclusive Web UI engineer
https://www.sarasoueidan.com/blog/alt-text-for-css-generated-content/
1
39
12
Tip: When you're using anchor positioning, consider how scrolling or screen size might make your positioned element overflow, and then add a backup with `position-try`. Get more tips by signing up for my free weekly course on anchor positioning!
loading . . .
Create Performant Layouts and Resilient Dropdowns
This CSS anchor positioning course teaches you how
https://oddbird.dev/courses/anchor-positioning/
12 days ago
1
3
3
reposted by
James Stuckey Weber
Patrick Brosset
12 days ago
Curious about what we do on the WebDX community group (i.e Baseline and web-features)? We're organizing a Reddit AMA on Thursday. Ask your questions here:
www.reddit.com/r/webdev/com...
loading . . .
From the webdev community on Reddit: We are the W3C WebDX Community Group, working to improve developer experience with projects like Baseline. Ask Us Anything!
Explore this post and more from the webdev community
https://www.reddit.com/r/webdev/comments/1ncq269/we_are_the_w3c_webdx_community_group_working_to/
1
5
5
I had about 600 warbler call detections overnight, with 38 calls in just 30 seconds.
#nfc
#migration
#birds
16 days ago
0
0
0
reposted by
James Stuckey Weber
Una Kravets
17 days ago
I've been using a "follow-the-leader" pattern with CSS anchor positioning lately so I decided to write about it! You set up a "follower" element and dynamically update the anchor on an event/state. Surprisingly simple and effective. Read more with demos!: 👀➡️
una.im/follow-the-a...
loading . . .
una.im | Follow-the-leader pattern with CSS anchor positioning
Learn how to create a dynamically re-anchored pointer element.
https://una.im/follow-the-anchor/
2
106
23
reposted by
James Stuckey Weber
OddBird
17 days ago
In the latest Winging It,
@miriam.codes
&
@stacykvernmo.com
chat with
#CSS
expert
@kizu.dev
about how to create reusable and flexible CSS using mixins & functions, what happened in the CSSWG meetings, and what's coming in CSS!
www.oddbird.net/2025/08/27/w...
If you like the show, please subscribe!
loading . . .
Mixins & Functions to Streamline CSS
With special guest Roma Komarov
https://www.oddbird.net/2025/08/27/winging-it-24/
1
14
7
This was such a fun project to work on!
add a skeleton here at some point
18 days ago
0
6
0
Have you played with `anchor-size()`? It's more flexible then `anchor()` and can be used for sizing and margins in addition to the inset. It's been fun to play around with and make demos like this but I'm curious- what use cases have you found for it?
loading . . .
CSS Anchor Positioning- Anchor Size with Calc
...
https://codepen.io/jamessw/pen/OJYWorB
19 days ago
0
6
3
reposted by
James Stuckey Weber
OddBird
20 days ago
There are tools for generating responsive type in CSS, but the result is a clamp() function with mysterious numbers.
@miriam.codes
explores what those numbers do with her visualizer using
#CSS
gradients. Level up your CSS with more free demos like this in your inbox!
www.oddbird.net/oddnews/
0
5
3
Tailwind class names are too short. I would much prefer the ergonomics of "align-self_end" over guessing which part of the property name gets dropped...
23 days ago
3
2
0
reposted by
James Stuckey Weber
Stacy Kvernmo
23 days ago
We mentioned on Winging It that we might show some of our favorite browser tips. Here's one of many that I find delightful. If you are working with shape-outside, then Firefox has a great path editor. I made a quick video to show how it works.
loading . . .
1
21
7
reposted by
James Stuckey Weber
Mia (online)
24 days ago
Please stop inheriting the box-model. The supposed use-case for that is extremely out-dated, inheritance doesn't really help, and it actively makes real box-sizing use-cases more difficult! This
#CSS
best practice was never the best to begin with:
www.oddbird.net/2025/09/04/b...
loading . . .
Don't Inherit the Box Model
It's time to stop spreading this out-dated practice
https://www.oddbird.net/2025/09/04/box-model/
7
111
23
reposted by
James Stuckey Weber
Nathan Knowler
25 days ago
Composition with the Shadow DOM is more powerful than you think. You can do a lot with the default named slot assignment, but manual slot assignment is a pathway to many abilities some consider to be… unnatural.</emperor-palpatine>
loading . . .
An intro to manual slot assignment – Nathan Knowler
https://knowler.dev/blog/an-intro-to-manual-slot-assignment
2
33
11
Tip 1: If you're using anchor positioning in a reusable component, add an anchor-scope to the component to help your positioned element find the right anchor. Tip 2: Sign up for my free email course on anchor positioning .
loading . . .
Create Performant Layouts and Resilient Dropdowns
This CSS anchor positioning course teaches you how
https://oddbird.dev/courses/anchor-positioning/
25 days ago
0
5
4
reposted by
James Stuckey Weber
Ahmad Shadeed
26 days ago
This demo helped me visualize how `position-try` works in CSS Anchor Positioning. It was so much fun to design & build! 😄 Learn more in the article:
ishadeed.com/article/anch...
loading . . .
1
65
8
reposted by
James Stuckey Weber
Thomas Broyer
about 1 month ago
Not yet baseline, but part of Interop 2025 so should soon reach baseline "newly available". Now is a good time to adopt anchor positioning (with the polyfill) in place of JS calculations, and then just remove the polyfill when anchor positioning reaches your baseline threshold.
add a skeleton here at some point
0
6
1
reposted by
James Stuckey Weber
Kevin Powell
about 1 month ago
Almost everything I know about anchor-positioning is thanks to James' articles on it, and this email course. It's definitely worth learning (I still get excited with how easy it makes a lot of things), and this is as good a resource as you'll find on the topic.
add a skeleton here at some point
1
21
5
Anchor positioning is not yet baseline, but you can use it in production with a polyfill -
anchor-positioning.oddbird.dev
(and in fact, we're using it on
oddbird.dev
). If you're curious about anchor positioning, now is a great time to learn, and my email course will help you dive deep!
loading . . .
Create Performant Layouts and Resilient Dropdowns
This CSS anchor positioning course teaches you how
https://oddbird.dev/courses/anchor-positioning/
about 1 month ago
1
29
13
reposted by
James Stuckey Weber
Andy Bell
about 1 month ago
My policy of "wait until Ahmad writes about it before you try to fully understand it" paying dividends again
ishadeed.com/article/anch...
loading . . .
The Basics of Anchor Positioning
Learn the basics of Anchor Positioning in CSS
https://ishadeed.com/article/anchor-positioning/
2
98
7
reposted by
James Stuckey Weber
Mia (online)
about 1 month ago
I'll be Winging It live with
@kizu.dev
&
@stacykvernmo.com
in an hour (11am MT) to talk about future
#CSS
features like mixins, functions, and masonry!
youtube.com/live/ER4APBN...
loading . . .
What's coming in CSS? Mixins, Functions, Progress, and more…
YouTube video by Winging It
https://youtube.com/live/ER4APBNgV88
0
14
7
reposted by
James Stuckey Weber
Mia (online)
about 1 month ago
I went down a rabbit hole trying to understand and visualize how fluid typography calculations work in
#CSS
. Here's a video and interactive codepen with the results:
www.oddbird.net/2025/08/26/t...
Adjust the values to see how they impact the rate of change, the viewport-size range, and page zoom!
loading . . .
Visualizing Responsive Typography
What do all the numbers in our clamp() do?
https://www.oddbird.net/2025/08/26/type-visual/
0
89
20
reposted by
James Stuckey Weber
Friday Front-End
about 1 month ago
Today's lunch video is "Cascading Layers of !mportance" - "Cascade Layers are now widely available, with the potential to fundamentally change how we think about the cascade and how we collaborate across design systems, component libraries, & third-party tools."
#CSS
www.youtube.com/watch?v=4Pkh...
loading . . .
Cascading Layers of !mportance - Miriam Suzanne | JSHeroes 2025
The Cascade is the underlying algorithm that applies our styles the web, and a main target of frustration when our styles go bad. But why is it there, how is it changing, and why should we care?…
https://www.youtube.com/watch?v=4PkhzoFLJ0Q
0
7
5
reposted by
James Stuckey Weber
Stacy Kvernmo
about 1 month ago
I wanted to play with some CSS trig functions and found you can calculate the width of a scrollbar in CSS when using container queries and registered custom properties. There’s so much more you can do, but here’s a little demo:
codepen.io/stacy/pen/Qw...
loading . . .
Find the scrollbar width in CSS
Combining registered custom properties, container queries and a few CSS trig functions, we are able to find and display calculated values, like the scr...
https://codepen.io/stacy/pen/QwLyZBo
0
9
5
Any other OSS contributors getting recruited to do annotations and labeling work for AI coding tools? :backing away slowly:
about 1 month ago
0
1
1
reposted by
James Stuckey Weber
MDN Web Docs
about 1 month ago
MDN just got a glow-up! 🌟 We’ve completely rebuilt our front end, redesigned, reengineered, and ready to help you find what you need. ✨ New search ✨ Improved typography & code rendering ✨ Sleeker nav & icons Read more 👇
developer.mozilla.org/en-US/blog/...
loading . . .
Launching MDN's new front end | MDN Blog
MDN is getting a facelift 🎉 Discover what's changed, what's improved, and how navigating the site just got smoother.
https://developer.mozilla.org/en-US/blog/launching-new-front-end/
6
93
20
With CSS anchor positioning, the anchor() function can be used as a length, so you can use it with functions like round() and mod(). Here's a 2-track abacus, and I'll leave it up to you to add more. My email course covers anchor() and much more- sign up today!
oddbird.dev/learn/course...
loading . . .
Anchor positioning abacus
...
https://codepen.io/jamessw/pen/EaareqN
about 1 month ago
0
4
1
reposted by
James Stuckey Weber
Mia (online)
about 1 month ago
If you appreciate the features I've helped develop - container queries, cascade layers, mixins & functions, scope, progress, logical shorthands - consider supporting that work though open collective:
opencollective.com/oddbird-open...
or hire me to teach a workshop:
www.oddbird.net/talks/
loading . . .
OddBird Open Source - Open Collective
We love contributing to the languages & tools developers rely on. Our focus is Popover & Anchor Positioning polyfills, and CSS specifications for functions, mixins, and responsive typography. Help us ...
https://opencollective.com/oddbird-open-source
0
7
6
reposted by
James Stuckey Weber
OddBird
about 1 month ago
Last week, Container Queries became baseline widely available. We shared resources to get you up to speed. But if you have limited time to expand your
#CSS
skills, we recommend focusing on CSS Grids! Playlist
www.youtube.com/playlist?lis...
CSS Grid in Practice
www.youtube.com/live/kQu-bSW...
loading . . .
Learn CSS Grid - Part 2
YouTube video by Winging It
https://www.youtube.com/live/kQu-bSWccNA?si=SoYlPhCKy73WDJWH
0
15
2
reposted by
James Stuckey Weber
Stacy Kvernmo
about 1 month ago
There are so many CSS features rolling out these days but not enough time to experiment myself with everything. That’s why I’m loving
@jamessw.com
's arbitrary striped table CodePen demo using the new sibling-index() function
codepen.io/jamessw/pen/...
Currently on Chrome & Edge 138+
loading . . .
Arbitrary Striped Table
...
https://codepen.io/jamessw/pen/bNVYjgw
0
26
6
When the CSS Working Group gets together for a face to face, the CSS meeting bot is busy and lots of Github issues get updated. If you can't keep up with it all, join Roma Komarov,
@miriam.codes
and
@stacykvernmo.com
as they recap the highlights on this month's Winging It.
loading . . .
What's coming in CSS? Mixins, Functions, Progress, and more…
YouTube video by Winging It
https://youtube.com/watch?v=ER4APBNgV88
about 2 months ago
0
18
7
reposted by
James Stuckey Weber
Mia (online)
about 2 months ago
🎉 Happy 30-month anniversary to Container Queries – in every browser since Feb, 2023. It was supposed to be impossible, but here we are! Why 2.5 years? Nothing will change tomorrow, but Baseline uses this milestone to signal confidence a feature has gained "wide" support.
youtu.be/bhHV0rQ3-CQ
5
99
18
reposted by
James Stuckey Weber
Hidde
about 2 months ago
✏️ Can components conform to WCAG?
hidde.blog/component-co...
wrote up some thoughts around claiming conformance about a design system component. Curious to hear what people think
loading . . .
Can components conform to WCAG?
Here's why they can't, and why that makes sense to me.
https://hidde.blog/component-conformance/
6
32
8
Are you using position-area on a popover? Make sure to unset that margin!
loading . . .
Avoid this mistake when using anchor positioning on a popover
YouTube video by Winging It
https://youtu.be/n0djH78gQ-Q
about 2 months ago
1
6
4
After years of rolling my own standing desk with cinder blocks or random shipping boxes, I'm looking at getting an actual standing desk. Any recommendations?
about 2 months ago
0
0
0
reposted by
James Stuckey Weber
OddBird
about 2 months ago
CSS Working Group gets together in Aug to discuss various issues. Join
@miriam.codes
and
@stacykvernmo.com
afterward, on Aug 27, for a chat with
#CSS
expert @kizu.front-end.social.ap.brid.gy about what's new in CSS, what happened in the meetings, and what's coming!
youtube.com/watch?v=ER4APBNgV88
loading . . .
What's coming in CSS? Mixins, Functions, Progress, and more…
YouTube video by Winging It
https://www.youtube.com/watch?v=ER4APBNgV88
0
8
1
Kid invented reverse ventriloquism, where you move your mouth but don't say anything. As an art form, I prefer it. As a communication method, I can't understand a word he says.
about 2 months ago
0
0
0
reposted by
James Stuckey Weber
Amit Sheen
about 2 months ago
🚨 New Course Alert 🚨 DevTools for Beginners
@kevinpowell.co
and I just released a brand new (and totally free!) email course all about DevTools and how to use them in ways that actually help you debug and improve your CSS. 🔗 Full details and free signup here:
devtoolsforbeginners.kevinpowell.co
0
34
9
When you use position-area, you're actually creating a new containing block for your positioned element. Learn more about how this makes anchor positioning just work in many situations in my email course here -
oddbird.dev/learn/course...
about 2 months ago
0
22
7
reposted by
James Stuckey Weber
Friday Front-End
about 2 months ago
Designing for User Font-size and Zoom: "When I tried setting my browser font-size preferences, I found it broke more sites than it improved, and I quickly moved back to the default. So what went wrong, and how can we fix it?"
#CSS
www.oddbird.net/2025/07/22/s...
loading . . .
Designing for User Font-size and Zoom
Using modern CSS units and math functions
https://www.oddbird.net/2025/07/22/size-preferences/
0
2
1
Anyone have recommendations for expediting a Google Play Store appeal? I'm working with a client that has been waiting for weeks to hear back.
about 2 months ago
0
0
0
This was such a good conversation!
add a skeleton here at some point
about 2 months ago
0
2
1
reposted by
James Stuckey Weber
OddBird
about 2 months ago
Dig into
#CSS
Container Queries with
@miriam.codes
& David Herron at OddBird: Container Queries Videos
youtube.com/playlist?list=PL4jAKUtAhpHkH3DMK8JNVPDjvKljPkNVU
For a Better Web
oddbird.net/2025/04/08/better-web-8/
Container Queries: A Quick Start Guide
oddbird.net/2021/04/05/containerqueries
loading . . .
Container Queries: a Quick Start Guide
Now is the time to begin experimenting with a long requested layout tool.
https://oddbird.net/2021/04/05/containerqueries
0
9
6
reposted by
James Stuckey Weber
OddBird
2 months ago
In the latest OddNews,
@miriam.codes
writes about when she tried setting browser font-size preferences, and found it broke more sites than it improved. And
@jamessw.com
gives an update on the new Vite default. Read Issue 27:
us19.campaign-archive.com?e=%5BUNIQID%...
0
4
3
Load more
feeds!
log in