HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
WICG
webcomponents
HTML2014–2026
WICG / webcomponents

webcomponents

Web Components specifications

53Distinct people
96Mentions
0Explicit recommenders
4.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Web Components specifications

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 9:02:44 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year96 dated mentions

Observed mentions: 2014-12-02 17:08:42 UTC to 2026-08-02 06:30:56 UTC.

051015202014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 6 mentions; 4 submissions, 2 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 10 mentions; 2 submissions, 8 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 18 mentions; 0 submissions, 18 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 13 mentions; 3 submissions, 10 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 15 mentions; 0 submissions, 15 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC101
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC110
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC202
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC642
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC615
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC1019
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC707
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC303
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC1028
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC18018
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC13310
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC15015
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC404

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Web Components Web Components are a new browser feature that provides a standard component model for the Web, consisting of several pieces maintained in different places: Shadow DOM Most of the parts are now maintained in DOM Standard, called shadow trees. Some of the parts are still remained in this repository. See Issue #661 for the progress of upstreaming those parts from the partially out-of-date Shadow DOM document. Issues against the DOM and HTML Standard. Issues raised in this repository. The old issue tracker on W3C bugzilla, which is no longer used. Custom Elements Custom elements were upstreamed into the HTML Standard (and bits in the DOM Standard) and are maintained there. Issues against the DOM and HTML Standard. Issues raised in this repository. The old issue tracker on W3C bugzilla, which is no longer used. HTML Templates HTML Templates were upstreamed into the HTML Standard and are fully maintained there. CSS changes The CSS WG works on CSS Scoping and CSS Shadow Parts, which help dealing with shadow trees with various selectors. Various other parts of CSS and its object model are also impacted by shadow trees and directly worked on in the various CSS specificaions. Issues against the CSS WG repository. JSON, CSS, HTML Modules Successor to the abandoned HTML Imports, allows JSON, CSS, and HTML markup to be requested by a component. HTML Modules Spec work is being incubated upstream in whatwg/html (see PR). For new issues, please file against whatwg/html or here in w3c/webcomponents. See also the HTML Modules explainer, initial proposal, and earlier design ideas. Issues raised in HTML Standard Issues raised in this repository. Includes related issues for other potential module-types, such as CSS and JSON. Old issue tracker includes a few issues filed when the feature was first proposed. Please avoid filing new issues there. Issues Please file issues in the most specific repository possible, per the above issue pointers. (It's often not this repository.) Abandoned features: HTML Imports The current issue tracker. The old issue tracker on W3C bugzilla, which is no longer used. Note: HTML Modules are intended to replace HTML Imports (see above).
Read the full README on GitHub

What Hacker News says

18 sources
It's not all that shiny. Web components have global names (you should pretty much apply a prefix/namespace if you want to work with others) and managing multiple version of the same component in the same page is an issue in any non trivial codebase (either use a different name per version or fix all breaking changes at once during the upgrade, unless the draft about scoping web elements became standard https://github.com/WICG/webcomponents/blob/gh-pages/proposal... )
In Web Components Eliminate JavaScript Framework Lock-In
Web Components are really just the minimal APIs required to allow the implementation of new HTML elements. This includes things like: - Responding to being attached to the DOM - Encapsulating DOM nodes (the Shadow DOM) - Scoped styling (Shadow DOM + User defined stylesheets + CSS parts) It is definitively not a templating engine. It doesn't provide any new APIs for creating DOM nodes, or mutating them a la React or handlebars or lit-html. Templating is basically the "next step up the stack". Using shadowDom.innerHTML = `...`; is basically a stand-in for having an actual templating engine. There is work going on, developing a native templating system in the browser which may interest you. It's called the DOM Parts proposal and you can find info on it here: https://github.com/WICG/webcomponents/blob/gh-pages/proposal...
In Web Components Eliminate JavaScript Framework Lock-In
I've recently just started playing with Web Components without a build environment. Meaning, no npm, no bun, no webpack, etc, and no dependencies; in typescript. Intellij can autocompile down to js and the browser view injects a small onchange handler for live updates when developing. So far no problems. The only thing holding web components back seems to be HTML Modules; being able to link to a .html file instead of a .js file to import a web component. Because of this if you want to use templates or anything more complicated you need to do the ugly inject of .innerHtml = `<tag soup>...`, which I thought would be a problem but the IDE parses the template string very nicely. It would be great to make a component in HTML and any javascript you would put in a <script> tag. It seems like there a lot of bureaucracy involved in getting HTML Mo
Read the rest
dules out the door since its been eight years. https://github.com/WICG/webcomponents/blob/gh-pages/proposal...
In HTML Web Components
We're trying to advocate for greater flexibility in cross-component styling. One proposal is "open styleable shadow-roots" which would be an opt-in to let styles from above a component to apply to it's shadow root. I think this would help migration in situations where app teams are currently using global stylesheets. Feedback and support of the need for something like this would help a lot: https://github.com/WICG/webcomponents/issues/909
In Lit 3.0
There's one thing that I haven't figured out about custom web components which make them completely broken for me: using them as form elements with good DX and UX. For example custom button that should behave like native html button - submit form on click, submit form on enter if I am in one of the text inputs, correctly handling "form" attribute when the button is outside of the form itself etc. I know about "formAssociated" and "ElementInternals" but they don't solve the problem completely. Imho this isn't solved anywhere and makes the web components no-go for design systems. https://github.com/WICG/webcomponents/issues/814 I also find baffling that there is _zero_ information about forms in the Lit3.0 documentation. If someone figured this out please enlighten me. Example: https://lit.dev/playground/#project=W3sibmFtZSI6InNpbXBsZS1n...
In Lit 3.0
(( I've split my reply into three parts to avoid a wall of text in a single comment. I may run into "you're posting too fast, so not all part may appear at the same time" )) Part 1. > I honestly believe that 90% of the dislike for WC comes from the name "connectedCallback". If they'd named it "onCreate" or something, everyone would be using it Of course not. None of the criticism towards Web Components ever mentions "connectedCallback", or how it should be named differently. Do you know the actual reason so few are using them? Let's skip the atrocious not-really-high-level not-really-low-level imperative API that they offer. How about: - 13 years after introduction they still need 20 more specs to try and patch just some of the holes in their original design: https://w3c.github.io/webcomponents-cg/2022.html - Shadow DOM is infecting every
Read the rest
spec so that the actual useful specs like Scoped CSS have to be delayed almost indefinitely to try and figure out how to work with this abomination of a design To quote the report linked above, "many of these pain points are directly related to Shadow DOM's encapsulation" - The amount of specs that are required to make them work, barely, and be "good web citizens". And the amount of APIs. Oh, you want your custom input to a) be able to send its data in a form, and b) be accessible to a label outside of your component? Well, there's a separate API for a) and there's some separate future API for b). And meanwhile your custom button won't be able to submit your form, sorry, it's a 4-year old issue with no solution: https://github.com/WICG/webcomponents/issues/814 And all that despite the fact that there are already a dozen specs covering web components, and dozens more on their way. - Web Components ar HTMLElement. It means you cannot use them inside SVGs. This is impossible: <svg> <x-axis min="2000" max="2019"/> <y-axis min="0" max="100"/> <scatter-plot points="..."/> </svg> This makes them unsuitable to a huge swath of graphics- and visualisation-related applications. - A smattering of other issues: -- They cannot be easily used when progressive enhancement is required: SSR story is still non-existent, you can't easily update the original DOM in a custom element without trashing it. -- They cannot be easily lazy-loaded because slotted content is eagerly loaded: <p>Toggle the section for more info:</p> <toggled-section> <html-include src="./more-info.html"/> </toggled-section> `html-include` will load in its entirety even if you never toggle the section. And yes, this causes a cascading loading of multiple resources, too. -- they share a flat global namespace. Of course this will be solved in the next five years by a yet another spec. -------------- If any userland framework had these many issues, it would be laughed out of the room. And yet here we are with people trying to argue that they are good now actually and all that stops them from being used is "connectedCallback" name. These are also the reason why most framework authors that initially supported web components (Vue, Svelte, Solid) are now at best completely indifferent towards them.
In Things you forgot (or never knew) because of React
> The fact that React is ten years old and doesn't support Web Components still, goes to show just how little the React team cares about Web Standards . No one cares about web components, including people who originally where really bullish on them (Vue, Svelte, Solid). React supports web components just as it supports anything that attaches itself to the DOM, and that is more than enough for the vast majority of use cases. Meanwhile, if Web Components were any good they wouldn't need another 20 specs just to barely patch holes in their design: https://w3c.github.io/webcomponents-cg/2022.html or still have unresolved issues like "custom button cannot submit a form": https://github.com/WICG/webcomponents/issues/814 > but at least jQuery helped shape modern standards. Has anything good come from React for the platform? It could have, if the
Read the rest
people behind web components listened to anyone except themselves.
In Things you forgot (or never knew) because of React
Template Instantiation is suppose to be the answer at least in part, but it’s been held up since 2017[0] The bigger problem is that the web platform stakeholders (IE the committees that industry influence and the browser makers) simply didn’t listen at all to what regular developers have been saying about what they want from the web platform w/r/t better built in platform provided primitives. It’s seems to me like web components have largely not taken lessons of component based development as everyone has come to expect. It’s still a weird imperative API with no rendering or data binding primitives [0]: https://github.com/WICG/webcomponents/blob/gh-pages/proposal...
In If Web Components are so great, why am I not using them?
I'm not using them because WebKit (i.e. Apple), in a long-standing vendor pissing contest¹ they've tunnel-vision'd themselves into, still refuses²³ to implement the customized built-in elements⁴ part of the standard, without which the content model for HTML cannot be fully realized (e.g. custom elements inside a table), and to make matters worse, without offering a firm proposal or implementation of an equivalent alternative. (and this is something a polyfill can only partially bridge) [1] https://github.com/WICG/webcomponents/issues/509#issuecommen... [2] https://bugs.webkit.org/show_bug.cgi?id=182671 [3] https://github.com/WebKit/standards-positions/issues/97 [4] https://html.spec.whatwg.org/multipage/custom-elements.html#...
In If Web Components are so great, why am I not using them?
The lit-plugin in for VS Code offers syntax highlighting, jumpt-to-definition, etc: https://marketplace.visualstudio.com/items?itemName=runem.li... Prettier already supports HTML in html`` strings, likewise, CSS. > Is there a way in Lit to write the templates in regular HTML rather than a string? This would require a compiler. You would need to load the HTML into the JS module graph and JS can't do that yet, though there is a proposal for it: https://github.com/WICG/webcomponents/blob/gh-pages/proposal... Template in HTML also have the problem of the data not being in scope as it is in JS, and there not being an expression language. So you ned up having to re-implement a lot of JS embedded into the HTML syntax, which then preferences a compiler-based approach to make fast. It turns out to be a lot simpler to embed HTML in JS.
In Building a front end framework – Reactivity, composability with no dependencies
Many years ago, when getting my feet wet with WebComponents, I often went without ShadowDOM. This post circles nicely back to my feelings. The page is a kind of beautiful thing, a shared sandbox experience for a bunch of pieces of content, and rules to apply to them. There's a lot of industrialized corporate-istic computing concerns that value security & safety & isolation, that thought these would be a major shift forward, but we have these tools now and they often don't help much and they do greatly hinder. We lead with principles, and the principle was fear, and the result wasn't good. There's a beauty in having a page, where all the stuff lives & is visible together. The web's strenghts keep being interpretted as weaknesses, as things that know-better programmers want to reform & remake, to give them the comfort of programming as they
Read the rest
know it, that gives them the top-down predictable well-ordered machine feel that writing a main() function has. The possibility, of so much, scares the programming tradition. I really hope something good comes from this. Alas it's still kind of a PITA that WebComponents don't have a transport layer that makes sense. We'd hoped to de-bundle and be able to use HTTP Push to speed module delivery. We'd hoped we'd have module registries, a "post 1.0" effort for es2015 modules, but that never happened- we got other things instead, import-maps, import.meta, others... but figuring out how to effectively deliver a modular new thing that multiple sites can use on the web is still also another layer of unsuccess, another dimensions of modularity that never really emerged. Great post by Lea, good initiative, and hpoeful we can start re-weaving & connecting together the web, after Shadow DOM broke us into smaller pieces. --- semi-related, there's some interesting discussion on how some spec-authors intended/expected WebComponents to be adopted versus how they have. i'm still not sure how this addresses a lot of the concerns here, but it's an interesting discussion. and i like a lot of how it suggests that the Shadow DOM is for decoration, but that it ought have a visible apparent part to itself too, not be so isolating. this comment & @domenics follow up are both semi-interesting... but i think are also very due for a longer treatment/write-up. https://github.com/WICG/webcomponents/issues/986#issuecommen...
In The point of Web Components was modularity and encapsulation

Showing the 15 most recent of 18 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.