Sign in

Josh Black

@josh.black
767 followers 127 following 94 posts

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

PostsRepliesMedia
Josh Black @josh.black · 27/09/2026
Finally got a post up on the GitHuh blog github.blog/engineering/... 👀
github.blog
Improving site performance by shipping more CSS
How we fully migrated github.com away from CSS-in-JS.
4203
Josh Black @josh.black · 11/08/2026
It's been wild catching up on LLM stuff after being out on parental leave for a bit 😵‍💫 One of the biggest things that came up when working on Primer for me was trying to find a way to answer the question "does this make things better, or not?" This lead to a fun project: github.com/primer/agent...
130
Josh Black @josh.black · 05/06/2026
Come work with me on Primer! careers-githubinc.icims.com/jobs/5423/se... Feel free to reach out if you have any questions 😄
careers-githubinc.icims.com
GitHub Careers
GitHub Careers
120
Josh Black @josh.black · 20/01/2026
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 😅🥲
040
Reposted by Josh Black
Shaun Bent @shaunbent.co.uk · 11/12/2025
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.
shaunbent.co.uk
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.
33211
Josh Black @josh.black · 22/11/2025
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 🤔
110
Josh Black @josh.black · 07/11/2025
This reminded me that if you like Cholula definitely give Valentina a try 😋
120
Josh Black @josh.black · 01/11/2025
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
461
Josh Black @josh.black · 24/09/2025
Could be cool to try something like this @katielangerman.bsky.social @sid.st 👀👀
130
Reposted by Josh Black
Eric Bailey @ericwbailey.website · 18/09/2025
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-...
piccalil.li
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.
04611
Josh Black @josh.black · 21/08/2025
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 😅
120
Josh Black @josh.black · 21/08/2025
Have been trying to use more custom elements for things but I feel like I keep hitting a wall 😰 Does anyone have a good example of a library that handles things like tooltips, comboboxes, etc well? 👀
320
Josh Black @josh.black · 04/07/2025
Having the hardest time getting events from custom elements working alongside React components in Next.js 🤔 Anyone else have luck with this? It seems to work fine standalone but as soon as I'm in Next.js-world the events stop being fired. I assume something is going on due to SSR? But who knows 🤷‍♂️
110
Josh Black @josh.black · 20/06/2025
When it comes to helpful layout components, what have folks found helpful to include in their design systems?? 🤔 In the past I’ve done ones for Grid, Stack, or a UI shell / page layout type one but would love to know if there are others people like to include 👀
240
Josh Black @josh.black · 04/06/2025
After doing design systems work for a bit, the most surprising skill to have learned is how to gradually and safely migrate code (and how to design code to make that easier in the future 😅) With Primer, we own more of the migrations compared to Carbon and it's been interesting comparing the two
1100
Josh Black @josh.black · 02/06/2025
Having Primer Query (www.youtube.com/watch?v=lryI...) has been so nice for migrations over the years. Our team is going through moving from styled-components (with a `sx` prop) to CSS Modules and it's been amazing tracking this with charts in datadog or even as fields in our GitHub projects
youtube.com
Every component, everywhere, all at once
YouTube video by GitHub
140
Josh Black @josh.black · 19/05/2025
Has anyone had success with an MCP server for their design system?? After seeing the shadcn features for their registry would love to try it out and see if it helps or not 🤔
5111
Josh Black @josh.black · 12/01/2025
I’d love to start writing more (especially about design systems) this year and I’m curious if I did if there are any topics that folks would be interested in here 👀
5110
Reposted by Josh Black
Eric Bailey @ericwbailey.website · 20/12/2024
Last post of 2024! I wrote about GitHub, interactive lists, and feeeeeeeeelings. ericwbailey.website/published/gi...
ericwbailey.website
GitHub’s updated Commits page and the interactive list component
This post is about interactive lists on GitHub, and how to use them.
2289
Josh Black @josh.black · 08/12/2024
I’m irrationally excited for Ghostty 1.0: mitchellh.com/writing/ghos.... A month ago, I don’t know if I even realized how many terminals had come onto the scene as an alternative to iTerm but now I can’t wait to try them all 👀 (currently using WezTerm)
mitchellh.com
Ghostty 1.0 is Coming
000
Josh Black @josh.black · 05/12/2024
This kind of tool was my dream to have back on Carbon: www.youtube.com/watch?v=lryI... (tool usage at ~6:00). Being able to query all the ways a component is used is like a super power for decision making. It's also pretty nice to be able to finally measure usage lol
youtube.com
Every component, everywhere, all at once
YouTube video by GitHub
170
Josh Black @josh.black · 04/12/2024
One technique that's been invaluable for releasing design systems work for me has been feature flags. It was awesome using them for the last major release of Carbon and now being able to use them for our CSS Modules migration work for Primer has been so nice.
261
Josh Black @josh.black · 18/11/2024
Have been going through Converge 2024 talks this week and now I'm curious what is everyone's favorite Design Systems talk from the year?? 👀
110
Josh Black @josh.black · 08/11/2024
Was curious for other folks doing design systems if you have a good way to get the TypeScript types for your package and components in it? 👀 Have been trying to look into different tools (api extractor, typedoc, docgen, etc) for this but nothing seems to quite cover everything yet.
000
Josh Black @josh.black · 03/11/2024
Honestly have been loving hanging out here this week, the vibes are good 🥰 I’ve been so bummed about Twitter for so long and it’s been a breath of fresh air here.
0150
Josh Black @josh.black · 15/05/2023
Hello world 😄
020