Sign in

Keith Daulton

@keithdaulton.com
94 followers 88 following 93 posts

Engineering Lead of @gitlens.bsky.social. Dad, hubby, musician, designer, explorer of whisk(e)y. 🖤 front end, web components, design systems, open-source

PostsRepliesMedia
Keith Daulton @keithdaulton.com · 25/06/2026
A close family friend is facing a tough situation after leaving an unsafe environment. They need help to cover basic needs like food and bills as they rebuild their lives. Please consider supporting or sharing their story to help them find safety and stability. gofund.me/00569f2f3
gofund.me
Donate to Help a Family Rebuild After Domestic violence, organized by Christie O
State says they are at full capacity. I was an aged out foster kid. I adopted… Christie O needs your support for Help a Family Rebuild After Domestic violence
000
Keith Daulton @keithdaulton.com · 11/04/2026
The Bolder Bolder Bosstones opening
010
Keith Daulton @keithdaulton.com · 27/12/2025
Best not to be standing perpendickular 😉
000
Reposted by Keith Daulton
Lit @lit.dev · 14/10/2025
Lit is joining @openjsf.org! 🎉 Today at JSConf, The OpenJS Foundation announced Lit is officially joining as an Impact Project! We're beyond excited for this move and look forward to continuing our work to build the open web with OpenJS! Read more on our blog: lit.dev/blog/2025-10...
lit.dev
Lit is Joining the OpenJS Foundation!
Lit is officially joining the OpenJS Foundation as an Impact Project!
012140
Reposted by Keith Daulton
Devon Govett @devongovett.me · 14/10/2025
All of the colors are calculated based on a single CSS variable using relative oklch, so you can change the theme with just one line. --tint: green; Modern CSS is amazing! 😲
Screenshot of all the components with various color themes: indigo, blue, green, pink, red, and orange.
213117
Reposted by Keith Daulton
Michael Warren @michaelwarren.dev · 15/10/2025
super excited for @lit.dev to be joining the OpenJS foundation! Kudos to: @justinfagnani.com Steve Orvell @graynorton.bsky.social Kevin Schaaf Peter Burns and any others from the Lit team and community that helped pull it off! Huge and great news for Lit! lit.dev/blog/2025-10...
lit.dev
Lit is Joining the OpenJS Foundation!
Lit is officially joining the OpenJS Foundation as an Impact Project!
182
Keith Daulton @keithdaulton.com · 03/10/2025
Made my first hot sauce! Now it needs a name…
130
Keith Daulton @keithdaulton.com · 03/10/2025
Started a new hobby about a month ago, brewing ciders and mead! You be seeing more of this in addition to other foodie stuff I get myself into. I’ve been trying to find more for-fun activities that don’t rely on my laptop.
000
Reposted by Keith Daulton
Schalk Neethling @schalkneethling.com · 27/08/2025
What's coming in CSS? Mixins, Functions, Progress, and more… www.youtube.com/watch?v=ER4A...
youtube.com
What's coming in CSS? Mixins, Functions, Progress, and more…
YouTube video by Winging It
131
Reposted by Keith Daulton
Burton Smith @stuffbreaker.bsky.social · 14/08/2025
I am very excited to announce the alpha release of the #WebComponents Language Server!!!
3316
Reposted by Keith Daulton
JLarky @jlarky.bsky.social · 29/07/2025
wait a goddamn minute!
381
Reposted by Keith Daulton
Justin Fagnani @justinfagnani.com · 25/07/2025
I'll say it again: Every framework should be going all-in on first-class web components support. With React eating the world, second-tier frameworks are often left behind. Web components are the scalable way for these projects to support multiple frameworks, and we should all encourage it.
1268
Reposted by Keith Daulton
Cory LaViska @cory.laviska.com · 26/07/2025
“The reason SPAs became the default wasn’t because they were better. It was because, for a while, they were the only way to deliver something that felt fluid – something that didn’t flash white between pages or jank the scroll position.” www.jonoalderson.com/conjecture/i...
jonoalderson.com
It's time for modern CSS to kill the SPA
Native CSS transitions have quietly killed the strongest argument for client-side routing. Yet people keep building terrible apps instead of performant websites.
66412
Reposted by Keith Daulton
Schalk Neethling @schalkneethling.com · 19/07/2025
Can you Syntax Highlight a code snippet on the web without overloading the DOM with a ton of elements wrapped around the tokens? | www.bram.us/2024/02/18/c...
bram.us
Syntax Highlighting code snippets with Prism and the Custom Highlight API
Can you Syntax Highlight a code snippet on the web without overloading the DOM with a ton of <span> elements wrapped around the tokens? Thanks to the Custom Highlight API, you can!
021
Keith Daulton @keithdaulton.com · 15/07/2025
Dear IDEs and AI tools, Can you all settle in on one path to mcp.json, so we don’t have to take the same damn config file and copy/paste for each one of you!?
020
Reposted by Keith Daulton
Codey @ HeroDevs @hero.dev · 23/06/2025
📢 BIG NEWS IF YOU ARE AN OPEN SOURCE MAINTAINER! The HeroDevs Open Source Sustainability Fund is giving $20M to creators shipping secure, high-impact OSS — while we handle legacy. Learn how to apply→ www.herodevs.com/blog-posts/h... #OpenSource #CyberSecurity #EOL #HeroDevs
02411
Reposted by Keith Daulton
Keith Cirkel @keithamus.social · 17/06/2025
Okay gang, those who sling HTML, CSS, JS, which _Firefox_ bugs are blocking you? Which features do you think need improving? What new features would you like to see? What work would you prioritise? Big or small, bonus points for linking to a bug (even more for filing bugs then linking them)!
414139
Reposted by Keith Daulton
Keith Cirkel @keithamus.social · 28/05/2025
Hey friends, did you know you can make a modal <dialog> element dismissible by clicking outside (aka light dismiss) by adding `closedby=any` to it. That's it. That's all there is to it. <dialog closedby=any> developer.mozilla.org/en-US/docs/W... Chrome 134+, Firefox 140+, coming soon to Safari.
developer.mozilla.org
HTMLDialogElement: closedBy property - Web APIs | MDN
The closedBy property of the HTMLDialogElement interface indicates the types of user actions that can be used to close the associated <dialog> element. It sets or returns the dialog's closedby attribu...
320342
Keith Daulton @keithdaulton.com · 13/06/2025
I started a little pet project recently, a VS Code extension that discovers Custom Elements Manifests in your workspace and starts a local MCP server that AI assistants can connect to. Features are still very early & rough. Love to hear your feedback! marketplace.visualstudio.com/items?itemNa...
marketplace.visualstudio.com
Web Component AI Tools - Visual Studio Marketplace
Extension for Visual Studio Code - Supercharge your AI coding assistants with web component information from your workspace and dependencies. Generate accurate component code using your actual custom ...
052
Reposted by Keith Daulton
Burton Smith @stuffbreaker.bsky.social · 12/06/2025
If you've never heard of a Custom Elements Manifest, they are an invaluable tool for unlocking tons of capabilities for your #WebComponents. dev.to/stuffbreaker...
dev.to
You Should Be Shipping a Manifest with Your Web Components
Besides your components, the Custom Elements Manifest is the most important thing you can ship in...
032
Reposted by Keith Daulton
Jason Pamental @jpamental.bsky.social · 06/06/2025
Going to be talking about curiosity and it's role in design later today at evolvedrupal.com - made a few adjustments since @beyondtellerrand.com and excited to see how folks react
evolvedrupal.com
EvolveDrupal – Connect, Learn & Inspire with the Tech Community
Join EvolveDrupal, the premier summit for digital professionals in the U.S. and Canada. Learn from experts, attend hands-on sessions, and network with industry leaders. Register today!
041
Reposted by Keith Daulton
Rob Eisenberg @eisenbergeffect.com · 05/06/2025
Hey friends! 🚀 I’m running the biggest sale ever on my Web Component Engineering course: 25% off through July 🎉 It’s full of hands-on, flexible training to help you build components, design systems, and apps. Use code SUMMERFUN to get it now! (Link in the follow up.) #webcomponents #frontenddev
A screenshot of the interactive learning app showing 4k video teaching, interactive code, reference and notes, and a portion of the course's table of contents.
131
Keith Daulton @keithdaulton.com · 26/05/2025
@mozilla.org you teased me and only introduced Import Attributes support for JSON. Awesome as JSON support is, I mainly want CSS support 🙏 bugzilla.mozilla.org/show_bug.cgi...
bugzilla.mozilla.org
1720570 - Implement CSS module scripts
NEW (nobody) in Core - DOM: CSS Object Model. Last updated 2025-05-22.
020
Keith Daulton @keithdaulton.com · 18/05/2025
Yes! Now I can finally author plain CSS for my web components!!
010
Keith Daulton @keithdaulton.com · 04/05/2025
If you see this, post your getaway vehicle
media.tenor.com
a man in a trench coat walks by a hot rod
ALT: a man in a trench coat walks by a hot rod
000
Reposted by Keith Daulton
Nicholas C. Zakas @humanwhocodes.com · 21/04/2025
When you file an open source issue and the maintainer asks for more information, please just give it rather than saying you already included all the info. We wouldn't ask if we had everything we needed.
0174
Keith Daulton @keithdaulton.com · 11/04/2025
Its not called HYDRA in this timeline
020
Reposted by Keith Daulton
Stuart Robson @sturobson.com · 21/03/2025
Quick Reminder That :is() and :where() Are Basically the Same With One Key Difference from @geoffgraham.me on @css-tricks.com css-tricks.com/quick... #CSS #WebDev #FrontEnd
css-tricks.com
Quick Reminder That :is() and :where() Are Basically the Same With One Key Difference | CSS-Tricks
I've seen a handful of recent posts talking about the utility of the :is() relational pseudo-selector. No need to delve into the details other than to say it
091
Keith Daulton @keithdaulton.com · 17/03/2025
A yummy Irish Single Pot Still flight after some corned beef for St. Patty’s! 🍀 Sláinte!
000
Keith Daulton @keithdaulton.com · 12/03/2025
Post your favourite Pokemon, wrong answers only -
000
Keith Daulton @keithdaulton.com · 26/02/2025
@firefox.com When will you ship import attributes? I'm dying to import plain CSS files for my web component styles instead of my component styles living in JS files.
150
Reposted by Keith Daulton
Hawk Ticehurst @hawkticehurst.com · 29/01/2025
Y'ALL. Portable HTML Web Components are fucking cracked. It looks like they are **faster** than the fastest Vanilla JS implementation in the JS Framework Benchmark. I literally reran the benchmark 5 times because I didn't believe it, but every single time they came in first place 🤯
A screenshot of a local run of the JS Framework Benchmark. The portable HTML web component implementation is the fastest. Faster than Vanilla JS.
4547
Reposted by Keith Daulton
Hawk Ticehurst @hawkticehurst.com · 24/02/2025
The idea of web component “overhead” is overblown — to even my own surprise! Rendering 1000s of nested WCs is *more* than competitive with the heavyweight champs of the web framework world. We’re talking S/S+ tier perf depending on the initialization method. Cont…
Screenshot of the JS Framework Benchmark results run locally on my computer. The order of results from most performant to least is:

1. Vanilla JS
2. Web Components 1
3. Web Components 2 Fast
4. Web Components 2
3. Web Components 3 Fast
4. Svelte 1
5. Solid 2
6. Solid 1
7. Web Components 3
8. Solid 3
9. Svelte 2
10. Svelte 3
1266
Reposted by Keith Daulton
Una Kravets @una.im · 17/01/2025
attr() is getting an upgrade! Starting in Chrome 133 (stable rollout happening this month), you'll be able to access attributes in CSS as typed values beyond strings.
Demo example, showing an update to a data attribute reflecting in the UI
719127
Keith Daulton @keithdaulton.com · 25/12/2024
Patron XO Cafe with a Bailey’s floater 😋
020
Reposted by Keith Daulton
Stuart Robson @sturobson.com · 22/12/2024
happy “I’m gonna start a side project” holidays
A two panel comic book style drawing. The first panel is a console with two red buttons labelled - “admit to yourself your dream is dead” and “pay $12”. A white gloved hand is hovering betwixt the two options. The second panel is a white man, holding a cloth to their forehead. They are sweating and look anxious. There is text that reads “domain renewal”
311084184
Reposted by Keith Daulton
Niki Tonsky @tonsky.me · 21/12/2024
I propose we replace semantic versioning with pride versioning
Diagram with large number: 2.7.123
First “2” is commented: Proud version. Bump when you are proud of the release
Second “7” is commented: Default version. Just normal/okay releases
Third “123” is commented: Shame version. Bump when fixing things too embarrassing to admit
332533737
Reposted by Keith Daulton
Doug Turnbull @softwaredoug.bsky.social · 14/12/2024
Design docs tell. Hacking throwaway code shows. One of the hardest engineering muscles to develop is to throwaway implementations. But if you get there, hacking throwaway, draft PRs works far more efficient than design docs as a "design" process. softwaredoug.com/blog/2024/12...
softwaredoug.com
Code speaks louder than design docs
If you have discipline to throw away your first idea, draft, throwaway PRs often drives more progress than a design doc.
051
Keith Daulton @keithdaulton.com · 09/12/2024
Be sure to catch the sessions on DevEx, AI tools, and the future of development at #GitKon2024 - a free, virtual event on December 10-11 hosted by @gitkraken.bsky.social! I’ll be sharing how to supercharge your development workflow with GitLens 16. Register now at gitkon.com ✨ #vscode #gitlens
021
Reposted by Keith Daulton
Brian Holt @brianholt.me · 06/12/2024
"It's written in Rust" is not a feature of your app. "It's blazing fast" is a hollow claim that makes me doubt it. Please stop putting these things on your homepage. Please show me why your tool/app/whatever makes my work easier/cheaper/faster-to-iterate.
1516521
Keith Daulton @keithdaulton.com · 07/12/2024
A long overdue jam along with Spotify to some songs I used to play with my “band” in college. To remain authentic to my college days, I’m drinking a bourbon and coke.
Guitars and bass, computer with an audio gear plugged-in, screens showing Spotify and Neural DSP Architype: Gojira.
000
Reposted by Keith Daulton
Ariel Salminen @arielsalminen.com · 05/12/2024
React v19 just released with full support for #WebComponents!!! 🥳 Perhaps we can finally ditch the React Wrappers package from Nord Design System as well: react.dev/blog/2024/12...
A screenshot with the text:

Support for Custom Elements 

React 19 adds full support for custom elements and passes all tests on Custom Elements Everywhere.

In past versions, using Custom Elements in React has been difficult because React treated unrecognized props as attributes rather than properties. In React 19, we’ve added support for properties that works on the client and during SSR with the following strategy:

- Server Side Rendering: props passed to a custom element will render as attributes if their type is a primitive value like string, number, or the value is true. Props with non-primitive types like object, symbol, function, or value false will be omitted.

- Client Side Rendering: props that match a property on the Custom Element instance will be assigned as properties, otherwise they will be assigned as attributes.

Thanks to Joey Arhar for driving the design and implementation of Custom Element support in React.
6549
Reposted by Keith Daulton
Augment Code @augmentcode.com · 04/12/2024
Augment is free for open source contributors and maintainers. 🎉 Augment’s deep codebase understanding tears down some of the biggest pains for working on open-source projects– the context you need to contribute and the help you need to make quality PRs. Sign up at augmentcode.com/opensource
053
Keith Daulton @keithdaulton.com · 05/12/2024
Happy Wrapped! Lots of electronic-oriented music this year, but had to sneak-in at least one black metal track
000
Reposted by Keith Daulton
Josh W. Comeau @joshwcomeau.com · 02/12/2024
One of my favourite UI patterns is using `backdrop-filter` to create a “frosted glass” effect. When I see this effect in the wild, though, it’s almost never as lush and realistic as it could be. There’s an important optimization that nobody makes. ✨ I share the secret sauce in my brand-new post:
joshwcomeau.com
Next-level frosted glass with backdrop-filter • Josh W. Comeau
Glassy headers have become a core part of the “slick startup” UI toolkit, but they’re all missing that final 10% that really makes it shine. In this tutorial, you’ll learn how to create the most reali...
45960138
Keith Daulton @keithdaulton.com · 04/12/2024
Finally took the time to look into why my website hero image is whacked in iOS Safari. Turns out `background-attachment: fixed;` isn't supported in mobile 🤦‍♂️ Decided to just `background-attachment: initial` in that case. Not nice, but certainly not as ugly as what iOS Safari was doing with `fixed`
100
Keith Daulton @keithdaulton.com · 04/12/2024
woot, finally got my doofy handle situation resolved
010
Reposted by Keith Daulton
Brad Frost @bradfrost.com · 26/11/2024
Things you forgot (or never knew) because of React joshcollinsworth.com/blog/antiqua... This is a very good post that's worth your time to read. It has a good blend of history, valid criticism, credit-where-credit-is-due, and a fresh look at current front-end technologies.
joshcollinsworth.com
Things you forgot (or never knew) because of React
If you don't often look beyond established comfortable defaults, you might be surprised to learn just how far the world of frontend has moved away from React, and how big that gap continues to grow.
14414
Reposted by Keith Daulton
Cory LaViska @cory.laviska.com · 21/11/2024
How did I not know about this in @lit.dev TL;DR – you can use `PropertyValues` to get strongly typed maps in lifecycle methods. 🤩
// simple-greeting.ts

import {html, css, LitElement} from 'lit';
import {customElement, property} from 'lit/decorators.js';
import type { PropertyValues } from 'lit';

@customElement('simple-greeting')
export class SimpleGreeting extends LitElement {
  @property() name = 'Somebody';
  
  // BEFORE
  // updated(changedProperties: Map<string, unknown>) {
  //   if (changedProperties.has('name')) {
  //     // works but any key is valid
  //   }
  // }

  // AFTER
  updated(changedProperties: PropertyValues<this>) {
    if (changedProperties.has('name')) {
      // works and tells you if a key is incorrect!
    }
  }

  render() {
    return html`<p>Hello, ${this.name}!</p>`;
  }
}
2477
Reposted by Keith Daulton
Justin Fagnani @justinfagnani.com · 20/11/2024
Now all three major browser engines are working on scoped custom element registries!!! It's been a long time since I first opened the proposal. I almost can't believe it's really happening... #webcomponents
media.tenor.com
two men are sitting in a car talking to each other and the words `` it 's happening isn 't it ? ''
ALT: two men are sitting in a car talking to each other and the words `` it 's happening isn 't it ? ''
6408