Josh Black

@josh.black

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

Accessibility statements should help people get unstuck when they hit barriers, not just claim that accessibility matters. You don't need a perfect policy to start. Write what's true, name gaps, and keep it updated. Users who hit dead ends can then find a way forward. github.blog/open-source/...

Accessibility statements now have a home on GitHub

GitHub now highlights ACCESSIBILITY.md files and helps maintainers document accessibility goals, known barriers, supported environments, and more.

github.blog

Super curious, with ariaNotify going baseline what kind of best practices are people still keeping around for their utilities? Realizing that our live-region-element package had some usefulness outside of making live regions reliable

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...

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 😅🥲

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.

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.

shaunbent.co.uk

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 🤔

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

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 😅

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? 👀

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 🤷‍♂️

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 👀

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

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 🤔

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 👀

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.

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?? 👀

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.

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.