Doug Gibson's Avatar

Doug Gibson

@dgibson

Front-end/design systems engineer (web components, a11y, CSS, JS; former full-stack/ColdFusion developer), metalhead, geek, father.

370
Followers
332
Following
83
Posts
15.11.2024
Joined
Posts Following

Latest posts by Doug Gibson @dgibson

Looks like they've pulled the pages down already too.

12.02.2026 17:29 ๐Ÿ‘ 2 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Is the code to this "design system" public somewhere like uswds?

12.02.2026 01:53 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I actually like the other one since it's more backward compatible without @property.

10.02.2026 15:26 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Amazing! I tried this on a coldfusion test page for my components that was showing a terrible fouc and it's much improved. I don't generally see it so bad on production sites but this is a nice snippet to have in my back pocket just in case.

09.02.2026 16:40 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

And web components work pretty well with Angular out of the box last I checked.

14.01.2026 20:14 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

And I completely agree with this. One of the best places I'd use the Shadow DOM is for the calendar/popover part of a date input/picker. The real issue is using Shadow DOM as the default without understanding all the limitations and issues it may cause.

02.01.2026 21:38 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Because we can't extend native elements, a custom element's host tag is usually an inert wrapper and the interactive element is rendered within, in the shadow DOM. ElementInternals patches its form participation, but still doesn't allow it to be labelled by a label outside it's shadow DOM.

02.01.2026 21:38 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

One cannot easily create interactive elements that exist in the light DOM and only have parts in the Shadow DOM like you see for native form field implementations in the browser.

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

I think this is misleading. It's important to look at how they use shadow DOM as well. The fact that a select uses it is completely different than creating your own select component that is entirely in the Shadow DOM. I use shadow DOM very sparingly.

31.12.2025 19:28 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Devs should be included in it though. I see a lot of issues that come from design centric decisions that don't consider the native platform, including naming of things.

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

How long ago? I wrote one with aria-activedescendant and tested it (just recently) across all screen readers and browsers and platforms and it seemed to work fine in Safari.

22.08.2025 21:29 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Been there. I learned 2 things from this experience:

I really needed to up my attention to detail to reduce this because designers will notice all those things.

But also I needed a detailed spec sheet that spelled things out visually as well as proper requirements. A picture != requirements.

08.08.2025 20:05 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Me and my son at the concert

Me and my son at the concert

Volbeat in concert

Volbeat in concert

Volbeat in concert

Volbeat in concert

Volbeat in concert

Volbeat in concert

Saw Volbeat for the first time in over a decade with my son last night at Jiffy Lube Live. Seats were great - front and center in the orchestra section behind the pit. They do an amazing job of creating headbanging riffs with catchy hooks and vocal melodies and the singing was spot-on.

08.08.2025 15:44 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I don't use shadow dom so my components set their public variables in :root. The part about not overriding them with selectors deeper than the host (wc selector) still applies because of how I write my css though. It took a while to fully work through and understand that part.

06.07.2025 13:13 ๐Ÿ‘ 3 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I think I may have it handled already with a @watch (this is stencil) on the value prop that sets the child selected states.

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

Honestly I haven't dealt with a form reset in quite a while. I'll have to consider the impacts on some of my components. Good point. I tend to slot the native controls so most just work. But there's always some like dropdowns...

19.06.2025 16:14 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I would use the attribute selector because unlike the native element, you would likely manage this prop like a state based on user interaction. Web components should be reactive to work with modern frameworks, so this behavior fits the paradigm better.

18.06.2025 19:48 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Maybe you're saying the same thing but I've seen some storybooks that have dozens of stories for a component, most of which are just a control toggle away.

14.06.2025 22:31 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

In some cases I think the control is enough vs separate stories. If my button has 3 fills and 3 colors (conservatively), I don't really need 9 stories to represent them. I use individual stories when there's complexity or different implementation necessities (e.g., complex slotted content).

14.06.2025 22:29 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I have been using stencil for 7 years on 2 design systems/ 3 major releases. I've never written a component from scratch but it sounds horrible ๐Ÿ˜€.

14.06.2025 22:19 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I use stencil and it uses jsx, which I like. That and the polyfilled slots makes it hard to move to something else.

24.05.2025 01:01 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I didn't know you could use jsx with lit. Is that out of the box?

23.05.2025 17:16 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Sounds like you should check out stencil to build your components - it's the best of both worlds.

21.05.2025 01:09 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Has it? I don't think it did.

07.05.2025 02:02 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

That solid foundation is a big investment, but hopefully worth it in the end.

06.05.2025 19:54 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

I'll try to start up a new project and see what's up. I'm stuck on a previous version on my work project for reasons... You are doing a web components project, not stencil app, correct?

06.05.2025 19:53 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

I've been in stencil-land for too long to notice. I have my own gripes there, but was just reading the FAST docs the other day and feel you there.

06.05.2025 19:47 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0

Identifying what's a web component from a pattern made up of web components isn't trivial. In my first design system, we made components that did too much or were overly complex. Only after supporting those did we realize how and why to focus on building blocks and reuse more.

06.05.2025 19:41 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Well played.

05.05.2025 13:48 ๐Ÿ‘ 4 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

This was my first thought as well. Using a CSS API for customizing components has so many benefits. I've been planning to write an article on it but never got around to it.

30.04.2025 22:30 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0