Josh Black's Avatar

Josh Black

@josh.black

Building a design system at GitHub. Previously worked on the Carbon Design System.

745
Followers
123
Following
74
Posts
15.05.2023
Joined
Posts Following

Latest posts by Josh Black @josh.black

My AI Adoption Journey

The idea is kind of what Mitchell talks about in: mitchellh.com/writing/my-a... with having just one agent running in the background.

09.02.2026 15:14 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Not sure if this 100% what youโ€™re talking about but I love the cli tools for stuff like this (Claude code, copilot cli, etc). Really easy to go from plan mode to implementation (or just exploration) and you can decide if itโ€™s worth opening a PR or not.

09.02.2026 15:14 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I feel like any way that helps practitioners in either space connect is so helpful. It builds connections, relationships, and can really help both get to the bottom of opportunities or challenges and lead to proactive problem solving without the endless game of telephone between org layers.

23.01.2026 16:41 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I think nowadays they have something similar to what you describe (I think they call them away missions?) but even having some idea of customer success being a part of your role would be so helpful. Even projects like building your own site or custom tooling UI with the DS can be insightful

23.01.2026 16:41 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

This topic has been on my mind for a bit the last year (relationship between system/product) and one thing I've come to really appreciate when I joined Carbon was how the group was meeting with all the other teams on Bluemix (IBM Cloud) at the time. It helped out so much with stuff like this.

23.01.2026 16:41 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

So cool! Also very curious to see the magic behind the ButtonSlot component ๐Ÿ‘€

23.01.2026 03:44 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Apple Health has decided that now that I have a newborn it is time to talk about my sleep score ๐Ÿ˜‚ I get it, Apple, I also want better sleep at nights but that might not happen for a bit ๐Ÿ˜…๐Ÿฅฒ

20.01.2026 16:45 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Itโ€™s so much fun as a change of pace and the info you get out of it is such a game changer ๐Ÿคฏ

17.12.2025 20:03 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Why Federated Design Systems Keep Failing Why do federated design systems keep failing? I watched it happen twice at Spotify. Here's what actually happened, where they broke down, and why centralised models usually work better.

A few years back, I nearly wrote "The Fallacy of Federated Design Systems." Then @nathanacurtis.bsky.social beat me to it. But what happens when you try it anyway?

At Spotify, I watched federated fail twice, resulting in a huge number of barely reused components and damaged trust in design systems.

11.12.2025 15:57 ๐Ÿ‘ 31 ๐Ÿ” 11 ๐Ÿ’ฌ 3 ๐Ÿ“Œ 1

Just wanted to say thanks so much for taking the time to write this! Really enjoyed reading it and am sharing immediately in our work Slack ๐Ÿ‘€ haha

12.12.2025 15:28 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I really credit so much of the Carbon ecosystem around this, personally. There is no way the Svelte, Vue, or React Native projects would have existed without this. So many of the DS sub-systems were created using this model too

04.12.2025 17:08 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

The biggest surprise to me with people against it is that treating the project as OSS really sets it up for success in so many ways (imo). The mindset behind it sets you up for contributions, shared ownership, and ultimately a roadmap to scale out the DS model as the project grows.

04.12.2025 17:08 ๐Ÿ‘ 5 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0

Another one that came up was release confidence/testing since we are outside of the UI monolith. Thankfully for that we came up with a good process to test PRs in the OSS repo against internal ones ๐Ÿ˜ฎโ€๐Ÿ’จ

04.12.2025 17:08 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

We've definitely gone through this a couple of times now, curious if others have had these challenges too. Probably the biggest one was moving our docs private so that we could deploy on GH's infra for a running server (definitely a bummer even just losing those edit page links ๐Ÿ˜ž)

04.12.2025 17:08 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Just wanted to say best of luck with your new adventure ๐Ÿซก Itโ€™s been such a blast working together, youโ€™ll be missed so much! I hope our paths cross sometime soon for more design system shenanigans ๐Ÿคž

27.11.2025 14:41 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Relevant section: โ€œโ€ฆtruncation is acceptable if the component's full content is available on focus or after user activation and an indication that this information can be accessed, is provided to the user in some way besides the fact that it is truncated.โ€

22.11.2025 21:14 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Understanding Success Criterion 1.4.4: Resize Text | WAI | W3C

Link to the SC that Iโ€™m referring to: www.w3.org/WAI/WCAG22/U...

22.11.2025 21:13 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

For folks that do truncation patterns in their components, how do you handle SC 1.4.4? We often see requests for truncation in different parts of the UI in GitHub but it seems difficult to satisfy this in a lot of scenarios ๐Ÿค”

22.11.2025 21:13 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Just wanted to say if you're looking to track down when the toasts page went up @ericwbailey.website added it last week!

11.11.2025 21:21 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

This reminded me that if you like Cholula definitely give Valentina a try ๐Ÿ˜‹

07.11.2025 18:23 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Hey! Just wanted to say thanks for responding ๐Ÿ™ super curious, for your external stylesheet how are you applying shadow DOM styles from it if they are rolled up into one?

05.11.2025 03:32 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I guess the thing for this would be that you would have a network request per custom element style you want to load in? e.g. you could bundle them and serve them together. Or is that not the case?

03.11.2025 00:44 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Thanks @keithamus.social ! Do you know of any good interim solutions or any that youโ€™d recommend? I saw the issue listed out some but obviously not ideal. Iโ€™ve seen some hide the custom element until itโ€™s defined as another way to mitigate this but then you can get pop in everywhere ๐Ÿ˜ตโ€๐Ÿ’ซ

02.11.2025 14:24 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

For folks using custom elements, how do you deal with styles when doing declarative shadow DOM? ๐Ÿค” Specifically would love to avoid duplication and also would like the styles present in the initial payload instead of styles having to be parsed from the JS bundle and applied during hydration

01.11.2025 21:48 ๐Ÿ‘ 6 ๐Ÿ” 1 ๐Ÿ’ฌ 4 ๐Ÿ“Œ 0

Could be cool to try something like this @katielangerman.bsky.social @sid.st ๐Ÿ‘€๐Ÿ‘€

24.09.2025 15:09 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
Taking a shot at the double focus ring problem using modern CSS A double focus ring is really useful in general but especially so with complex, themed systems. Eric Bailey shows us how to develop a really smart system, using modern CSS.

Focus rings! Plural! I wrote for @piccalil.li about how to create a branded double ring focus effect that is dynamically generated based on the interactive element's text color. piccalil.li/blog/taking-...

18.09.2025 15:05 ๐Ÿ‘ 47 ๐Ÿ” 11 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 1

Very cool! I love it, thanks for sharing ๐Ÿ™ I thought it was very interesting to have the `type` live on dropdown here for going between the different types of pickers (combobox, select, etc)

25.08.2025 22:04 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Thanks for sharing! Enjoyed taking a look ๐Ÿ˜„ Was curious what your take would be on how to do design something like this if the target/tooltip needed to support popovertarget/popover ๐Ÿ‘€ (if this one already does then ignore me lol)

25.08.2025 21:57 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Finally got around to making an MCP server for Primer: github.com/primer/react... ๐Ÿ‘€ It's been interesting playing around with tools to provide more context to agents, specifically around our components/tokens/icons/etc and their guidelines. Still holding my breath to see how much it can help ๐Ÿ˜…

21.08.2025 18:51 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

For example, with a tooltip it'd be awesome to have a component with a slot for the trigger and the content but as soon as I mess around with the Shadow DOM I lose the ability to relate these with attributes for a11y. I had assumed this is what ElementInternals was used for but now I'm not sure ๐Ÿค”

21.08.2025 18:49 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0