Sign in

Jamie Kyle

@jamie.build
2.1K followers 341 following 514 posts

They/Them. Open source. Comic books. Board games. Prev: Babel, Yarn, Flow, Parcel, Biome

PostsRepliesMedia
Jamie Kyle @jamie.build · 06/08/2026
Working on a new design system component for various kinds of list items, settings rows, etc throughout our app It looks simple but it's turning out to be extremely difficult. I'm not sure it's even possible I've gotten very close except for centering "value" codepen.io/editor/Jamie...
130
Jamie Kyle @jamie.build · 27/05/2026
My boyfriend trying to name the members of NSYNC “There’s Justin, there’s the gay one… what’s his name? Lars Fish?”
040
Jamie Kyle @jamie.build · 21/04/2026
Omegaverse in CSS lets goooo drafts.csswg.org/css-color-5/...
::backdrop {
  /* black @ 80% opacity */
  background: alpha(from black / 80%);
}

.help {
  /* Use the current color at 50% opacity */
  color: alpha(from currentColor / 50%)
}

.emoji {
  /* Reset the opacity of emojis to 100% */
  color: alpha(from currentColor / 100%);
}
Screenshot of settings dialog showing two checkbox fields with black text on the normal one and red text on the errored one. Showing the use of the relative alpha() color syntax from the last screenshot.

1. Help text with relative color at 80% for both black and red text
2. Emoji that resets the alpha value to 100%
3. Dialog backdrop background is black at 80% opacity
080
Jamie Kyle @jamie.build · 18/03/2026
Let's not let our most critical open source dependencies become a hot bed for AI-generated bugs and security incidents while also profiting off the hard work of open source developers Please sign this petition to convince the Node TSC to reject AI contributions to core: github.com/indutny/no-s...
github.com
GitHub - indutny/no-slop-in-nodejs-core: A petition to disallow acceptance of LLM assisted Pull Requests in Node.js core
A petition to disallow acceptance of LLM assisted Pull Requests in Node.js core - indutny/no-slop-in-nodejs-core
250
Jamie Kyle @jamie.build · 18/03/2026
Let's not let our most critical open source dependencies become a hot bed for AI-generated bugs and security incidents while also profiting off the hard work of open source developers Please sign this petition to convince the Node TSC to reject AI contributions to core: github.com/indutny/no-s...
github.com
GitHub - indutny/no-slop-in-nodejs-core: A petition to disallow acceptance of LLM assisted Pull Requests in Node.js core
A petition to disallow acceptance of LLM assisted Pull Requests in Node.js core - indutny/no-slop-in-nodejs-core
020
Jamie Kyle @jamie.build · 12/02/2026
I really wish that protobufs supported creating custom scalar types
scalar AciBinary = bytes;
scalar UnixEpochMs = uint64;

message CreateMessage {
  AciBinary   author = 1;
  UnixEpochMs sentAt = 2;
  // ...
}

message DeleteMessage {
  AciBinary   targetAuthor = 1;
  UnixEpochMs targetSentAt = 2;
}

service MessageService {
  rpc Create(CreateMessage) returns ();
  rpc Delete(DeleteMessage) returns ();
}
020
Jamie Kyle @jamie.build · 11/02/2026
Having some serious networking issues with @github.com today, pages loading for ~30-60 seconds, lots of requests failing, I can see their janky caching and turbolinks shit giving me old state and breaking the UI. Nothing on githubstatus.com yet though
240
Jamie Kyle @jamie.build · 13/01/2026
Pride & Prejudice fans, have you ever wondered why no one contacted police when Wickham & Lydia ran off? Ignoring that it wasn't a crime at that time, it's also because the police didn't exist in 1811. They wouldnt exist for another 18 years Police are a modern invention and there are alternatives
110
Jamie Kyle @jamie.build · 11/12/2025
Using named and themed color variables in our design system has been a massive quality of life improvement Tailwind wasn't quite as bad, but even that has improved dramatically More consistency, and less you need to remember. And we've added high contrast mode, so its actually covering 4 themes
3170
Jamie Kyle @jamie.build · 10/12/2025
When a candidate is called out for supporting Israel, Dems will say “This is what got us Trump! Let’s focus on the US! Stop with purity tests!” We’re talking about genocide Remember this when they promise to save you from fascism, they will feed you to the wolves and call you a single issue voter
1140
Jamie Kyle @jamie.build · 04/12/2025
It's shocking to me that Windows doesn't have an equivalent app as macOS Preview. Like what do you mean you need to download a separate app to sign a PDF? Why is Windows adding AI features when it can't do everyday things like this....
230
Jamie Kyle @jamie.build · 22/11/2025
A lot of React libraries try making “core/dom” versions (well meaning, but used by no one & arent actually complete/well maintained standalone libs) that they wrap with a React API The problem is they tend to model things in a way that is unfriendly to React & you just end up with bugs & code bloat
160
Jamie Kyle @jamie.build · 07/11/2025
It’s a lonely opinion but I can’t stand the song ‘Golden’ from K-pop demon hunters. It’s like they wrote the lyrics specifically for the kidz bop cover. I don’t understand adults that like this song
120
Jamie Kyle @jamie.build · 30/10/2025
Yay, I built this, please enjoy:
5860
Jamie Kyle @jamie.build · 30/10/2025
I wish I could add constraints to groups of CSS grid template rows/columns. Like grid-template-columns: group( 1fr, // total for both [col-1] auto, [col-2] min-content ) [col-3] fit-content group( 1fr, // total for both [col-4] min-content [col-5] auto );
020
Jamie Kyle @jamie.build · 30/10/2025
Building libraries of prebuilt animations has always been tough because they tend to be so fiddly But the new view transition API is so naturally composable. And with React’s new <ViewTransition> component I feel like I can imagine how to built a very customizable set of common animations
140
Jamie Kyle @jamie.build · 29/10/2025
This little snippet made debugging view transitions a lot easier
::view-transition-group(*) {
  animation-duration: 3000ms;
}

::view-transition-group(*)      { outline: 1px solid blue   }
::view-transition-image-pair(*) { outline: 1px solid yellow }
::view-transition-old(*)        { outline: 1px solid red    }
::view-transition-new(*)        { outline: 1px solid green  }
213516
Jamie Kyle @jamie.build · 27/10/2025
Andrew Cuomo is racist and is running on a racist platform
020
Jamie Kyle @jamie.build · 27/10/2025
People horrified and furious at the before and after photos of the white house… if you think that’s bad, you should see what israel did to Palestine
081
Reposted by Jamie Kyle
Biome @biomejs.dev · 24/10/2025
Biome v2.3 is out! 👨‍👨‍👦‍👦 Full support for @vuejs.org, @svelte.dev and @astro.build ‼️ New ignore syntax 🌬️ Tailwind v4 support ⌨️ New CLI flags and reporters biomejs.dev/blog/biome-v...
512319
Reposted by Jamie Kyle
Zohran Kwame Mamdani @zohrankmamdani.bsky.social · 25/10/2025
POLLS ARE NOW OPEN. Find out where you early vote ⬇️ 🗳️ findmypollsite.vote.nyc
522187124012
Jamie Kyle @jamie.build · 25/10/2025
Sam Altman is just another tech grifter who will say anything to keep selling his grift and it will only become more and more apparent with time because grift simply cannot last forever
1305
Jamie Kyle @jamie.build · 16/10/2025
I hope we get some sort of media query for "Differentiate without color" github.com/w3c/csswg-dr...
github.com
[mediaqueries-5] Media query to prefer shapes over colours · Issue #7406 · w3c/csswg-drafts
Thank you for the recent additions of https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-contrast https://d...
030
Jamie Kyle @jamie.build · 16/10/2025
Are there any good Discord servers or something for people to discuss web accessibility?
010
Jamie Kyle @jamie.build · 16/10/2025
Accessibility question For ::backdrop's (dialog overlays) that have a semi-transparent bg to obscure the page behind them: Should we make the backdrop more obscured for `prefers-reduced-transparency`? Like if the backdrop is black/40% should we make it black/80%? 100%? Should we blur the bg?
dialog {
  /* The dialog itself is not semi-transparent at all */
  background: light-dark(white, black);
}

::backdrop {
  /* These values particular seem like very low values for a backdrop */
  background: light-dark(hsl(white / 20%), hsl(black / 40%));
  
  @media (prefers-reduced-transparency: reduce) {
    /* Should we increase them in reduce transparency mode? */
    background: light-dark(hsl(white / 60%), hsl(black / 80%));
    /* Would blurring the background actually help in this case */
    backdrop-filter: blur(10px);
  }
}
263
Jamie Kyle @jamie.build · 06/10/2025
There should be a `fromIndex` parameter in `array.findIndex()` like the one in `array.indexOf()`: Exists: let array = ["foo", "bar", "foo"] array.indexOf("foo") // 0 array.indexOf("foo", 1) // 2 Doesn't exist: let fn = val => val === "foo" array.findIndex(fn) // 0 array.findIndex(fn, 1) // 2
040
Jamie Kyle @jamie.build · 26/09/2025
GitHub allows you configure your pronouns that it shows on your profile which it also uses in some of the strings in the UI and makes accessible through the API It defaults to the value "Don't specify" but then it seems to either default to "He/Him" or tries to infer it based on your name
Screenshot of the "Pronouns" select menu with "Don't specify" selected. Other options include "they/them", "she/her", "he/him", or "Custom"Screenshot of a message from "DroidHub" (an internal company bot) with the text: Jamie marked his PR "Update symbols font" targeting main as ready for review

This text is generated based on GitHub's Webhook API which includes a value of "possessivePronoun" which is coming through as "his"

The internal bot actually tries to default to "their" if no "possessivePronoun" is returned by the webhook api
151
Jamie Kyle @jamie.build · 25/09/2025
Being able to customize CSS accent-color is cool, but it would be really nice if we could use the system accent color in some of your own custom UI elements Privacy fingerprinting concerns seem like they'd be solved the same way as accent-color: auto or <system-color> (ex. Highlight)
250
Jamie Kyle @jamie.build · 17/09/2025
Using backdrop-filter you can do this sort of swipe effect revealing contents behind the current element But I want this to work for the text changing its size and weight as a sort of "magnifying glass" effect I'm not sure how to accomplish that without any JS though codepen.io/jamiebuilds/...
000
Jamie Kyle @jamie.build · 10/09/2025
Linux desktop users learn how to ask for help without being mean challenge
020
Jamie Kyle @jamie.build · 10/09/2025
There's an argument that you never should be using Map<string, T> or Map<number, T> Plain JS objects as maps/records are waaay faster in all scenarios
430
Jamie Kyle @jamie.build · 09/09/2025
With 1000 unique items: 33K op/s: new Set([...prev, val]) 199K op/s: new Set(prev).add(val) -- 6x faster Thinking it would be nice to just have a class like this: class ImmutableSet { ... add(value) { let copy = new ImmutableSet(this) copy.#set.add(value) return copy } }
280
Jamie Kyle @jamie.build · 09/09/2025
I'm going through our components and making fixes to forced-colors mode I haven't found much for resources on how to apply system-colors to specific components/states. Any recommendations?
Switch control in various states, rendered in forced-colors modeSelect component, opened, rendered in forced-colors modeDropdown menu component, opened, rendered in forced-colors mode
140
Jamie Kyle @jamie.build · 29/08/2025
From what I’ve seen on various forums, I feel like AI is creating lots of junior devs who don’t know how to ask productive questions They’re asking big grandiose questions like “How do I build an Uber clone in Vue?” that asks others to do all the work in a way that wouldn’t teach anything
2150
Jamie Kyle @jamie.build · 18/08/2025
I think it’s helpful to remember that fascists, besides how destructive and cruel they are, are also just massive losers with no social skills It’s the same as school bullies. Movies get it wrong, it’s not the popular kids, it’s kids with no social skills who cope by being assholes
170
Jamie Kyle @jamie.build · 14/08/2025
People falling in love with AI chat bots is one thing. I’ve read freakier shit on Ao3 But I draw the line at them pretending that the AI has a gender Obviously all AI chatbots are nonbinary. They’re in a queer polyamorous relationship
060
Jamie Kyle @jamie.build · 12/08/2025
Bet: When AI companies start charging enough to make a profit, AI will stop being worth it for most everyday tasks At the same time, price increases will make people more critical of the actual output, leading to it being used less for important tasks AI will feel the squeeze from either side
2191
Jamie Kyle @jamie.build · 12/08/2025
It’s almost midnight and I was about to head to bed when I heard this drunk guy walking down the middle of our very quiet street singing (screaming?) Helena by My Chemical Romance at the top of his lungs Hell yeah brother
0130
Jamie Kyle @jamie.build · 08/08/2025
I just got a random "business development" spam call where someone asked me if I was the owner of jamie.build and they asked me "Why don't you build a proper website?" So rude lmao
150
Jamie Kyle @jamie.build · 31/07/2025
If you're virtualizing a list view, be sure to always render whatever you consider the "first" and "last" item that should be tabbable So that if your focus is before/after the list and you tab or shift-tab, the browser will take you to the correct location Also helps with screenreader shortcuts
040
Jamie Kyle @jamie.build · 30/07/2025
Random little react opinion: Don’t use built-in onEvent names as props with different signatures OK: onChange(Event) onValueChange(string) onFocus(FocusEvent) NO: onChange(string) onChange(string, Event) onChange(Event, string) onFocus(Event) onFocus()
190
Jamie Kyle @jamie.build · 29/07/2025
@manishearth.bsky.social Random hopeful question: Once UTS #58 is published in Unicode 17 (assuming it will be), any plans to implement it in github.com/unicode-rs (or maybe github.com/servo/rust-url)? www.unicode.org/reports/tr58/ www.unicode.org/versions/Uni...
unicode.org
Proposed Draft UTS #58: Unicode Link Detection and Serialization
200
Jamie Kyle @jamie.build · 02/07/2025
Opinions needed: If I'm writing a React UI library that provides a hook that needs to attach a bunch of events and other stuff, do people prefer: - Returning a props object to pass to the right component - Accepting a ref and adding events/mutating props directly
function Example() {
  let [cardNumber, setCardNumber] = useState()
  
  let { inputProps, ...otherStuff } = useInputMask({
    mask: "0000 0000 0000 0000",
    value: cardNumber,
    onValueChange: setCardNumber,
  })
  
  // <MyInput> needs to accept all of these props:
  // 
  // inputProps = {
  //   value,
  //   onInput, onPaste, onFocus, onBlur,
  //   onKeyDown, onKeyPress, onKeyUp,
  // }
  
  return <MyInput {...inputProps}/>
}function Example() {
  let [cardNumber, setCardNumber] = useState()
  
  let ref = useRef()
  
  let { ...otherStuff } = useInputMask(ref, {
    mask: "0000 0000 0000 0000",
    value: cardNumber,
    onValueChange: setCardNumber,
  })
  
  // <MyInput> only needs to accept a ref
  
  return <MyInput ref={ref} />
}
340
Jamie Kyle @jamie.build · 02/07/2025
More people need to understand that most open source maintainers would move mountains for you if only you: 1. Are friendly and not entitled 2. Showed interest in helping however you can 3. Communicate your request clearly 4. Are respectful of their time (be brief/responsive) These cost you nothing
2797
Jamie Kyle @jamie.build · 26/06/2025
I wish git had a better mechanism for editing commit history, even just simple edits I’m imagining some new diff format for commit history itself that can be applied on a branch Then GitHub/etc could have PR-like flows for reviewing these changes/running CI instead of having forced pushes
230
Jamie Kyle @jamie.build · 26/06/2025
Queer ‘discourse’ always gets bad around this time of year because the kids are out of school and all they’ve got is posting
020
Jamie Kyle @jamie.build · 23/05/2025
Doing the hackiest shit ever because React Aria wants all the browser events to itself Might end up just writing our own versions of ListBox/GridList so we can move to Radix-UI
360
Jamie Kyle @jamie.build · 16/05/2025
You know what? Hell yeah If bluesky is ever going to be successful, it will need more of these chronically online people starting shit for no good reason Great content, very entertaining, 10/10
1260
Jamie Kyle @jamie.build · 15/05/2025
Does anyone have ideas on how to handle scenarios where a user is in the middle of typing in an <input> then some <dialog> opens, and before the user notices, they've typed some character that does something in the <dialog> I want to handle this in a smarter way
230