Our great sponsors
|1 day ago||7 months ago|
|GNU General Public License v3.0 or later||GNU General Public License v3.0 or later|
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
The benefits of Web Component Libraries
4 projects | dev.to | 27 Feb 2023
Web component browser APIs aren't that many, and not that hard to grasp (if you don't know about them, have a look at Google's Learn HTML section and MDN's Web Components guide); but creating a web component actually requires taking care of many small things. This is where web component libraries come in very handy, freeing us of having to think about some of those things by taking care of them for us. Most of the things I'll mention here are handled one way of another by other libraries (GitHub's Catalyst, Haunted, Hybrids, Salesforce's LWC, Slim.JS, Ionic's Stencil) but I'll focus on Google's Lit and Microsoft's FAST here as they probably are the most used web component libraries out there (ok, I lied, Lit definitely is, FAST not that much, far behind Lit and Stencil; but Lit and FAST have many things in common, starting with the fact that they are just native web components, contrary to Stencil that compiles to a web component). Both Lit and FAST leverage TypeScript decorators to simplify the code even further so I'll use that in examples, even though they can also be used in pure JS (decorators are coming to JS soon BTW). I'll also leave the most apparent yet most complex aspect for the end.
5 projects | reddit.com/r/web_design | 9 Dec 2022
Look into https://stenciljs.com/ .5 projects | reddit.com/r/web_design | 9 Dec 2022
We used https://stenciljs.com/ for web components to be consumed by angular, AEM and react at a previous employer. It uses tsx/jsx. Components are easy to write and it has good documentation.
Hexagonal architecture as a solution to the obsolescence of UI frameworks
4 projects | dev.to | 7 Nov 2022
For the creation of web components, even though writing in vanilla js is an option, we have chosen to do it via a dedicated framework, which will solve many potential integration/bundling problems. The choice of the framework will be made according to different factors that are not part of the scope of this article.
Ask HN: Help me pick a front-end framework
13 projects | news.ycombinator.com | 11 Sep 2022
Maybe have a look at Stencil (+ Ionic). https://stenciljs.com/
- Simple to learn
- Doesn't change all the time
- First-class TypeScript support
- Good default UI via Ionic
- Compiles to Web Components (although to be honest, this doesn't really matter)
- Easy testing
- Ionic as a company invests in Ionic the framework + Stencil the compiler. Might be around in 10 years, altough things could change. But this is true for all frameworks.
- You basically get an iOS/Android app for free, if you just dump the output in Capacitor (also developed by Ionic the company).
- Stencil is not very widespread as a frontend framework.
A Letter to D1sc0rd for not Supporting the Linux Desktop
7 projects | reddit.com/r/linux | 29 May 2022
because react-native is only reactlike. I may or may not want to stick with that. I think something like this is leading us towards a better and less UI lib specific approach. https://github.com/ionic-team/stencil/ . I don't think is 100% where we end up, but it is based on web components, so it's moving the entire ecosystem forward, not just a slice of it.
By Crayons and For Crayons
12 projects | dev.to | 13 May 2022
The app is built using vanilla Web Components without using any component publishing libraries like Stencil, Lit and so on. The reason being I met with some roadblocks in building a drag-n-drop editor using these libraries. Actually the Crayons Team itself is using Stencil to build the Crayons components using TypeScript and React-like component semantics and finally publish them as platform native Web components and React wrappers for the same. You can find out more about this in the Stencil documentation.
Why we chose WebComponents for our Design System
4 projects | dev.to | 5 May 2022
A Quick Guide to Mitosis: Why You Need It and How You Can Use It
5 projects | dev.to | 4 May 2022
The Case for Web Components
2 projects | dev.to | 14 Apr 2022
While you can build components directly from the supporting Web APIs, you might find it productive to use a library that's been built to support this task. Lit and StencilJS are two of several libraries with acompanying tooling to help you build web components. And because they compile to the same 'target', they give you an additonal advantage: if you choose to switch web component libraries at some point in the future, you can make the switch for new components without having to rewrite the old ones, and use both in the same application.
I am experimenting with Typescript. Is this way of defining a constructor considered normal or an abomination?
2 projects | reddit.com/r/webdev | 22 Feb 2023
It's more than just sugar now. You can't even write web components functionally: https://github.com/WICG/webcomponents/issues/587
Declarative Shadow DOM
Does this mean we'll finally get Template-Instantiation, providing a native way to do HTML templates in the browser?
There's been a bunch of hand waving that the reason we still don't have this is because they needed a solution for encapsulation and a solution for SSR. Now we have both. Can we please finally deliver on something people have been asking for since the mid 2000s?
gzip/brotli handles this very well, but it still is text to parse through.
Some form of declarative CSS module scripts would help a lot. A feature request for that here: https://github.com/WICG/webcomponents/issues/939
That's true, but they didn't ratify yet a standard on how to handle web components naming collision, so if you create `my-button` and another developer register `my-button`... Or if you want to use two different version of your own `my-button`...
This is the proposal for scoped elements: https://github.com/WICG/webcomponents/blob/gh-pages/proposal...
Templating in HTML
5 projects | news.ycombinator.com | 4 Oct 2022
In the past I've seen this one:
Perhaps there are more recent versions.
I liked the spirit of the proposal, but never studied it.5 projects | news.ycombinator.com | 4 Oct 2022
No one blocked it. If you're referring to HTML Imports, the problem with them is that they didn't integrate with JS modules. There's a new HTML modules proposal , and with JS import assertions and CSS and JSON modules landing , HTML modules are probably not far behind.
Shoelace: A Web Component Kit
14 projects | news.ycombinator.com | 3 Apr 2022
Ah, I didn't realize this wasn't solved -- a quick search turns up:
In pre-render they seem to have started in this direction extremely recently:
I don't use prerender so I can't definitively speak to it being solved and hiccup-free, but I think that limitation is going to go away in the future.
CSS's !important was added for one reason only
4 projects | news.ycombinator.com | 21 Mar 2022
this is called an html module: https://github.com/WICG/webcomponents/blob/gh-pages/proposal...
can a virtualdom beat solid js? introducing blockdom, a fast virtualdom library
Microsoft and Google have collaborated to bring native support for CSS modules to Chromium, available in Edge and Chrome 93.
Explainer. PR and discussion followed few days after. Those incubators and WHATWG are of course official.
What are some alternatives?
lit - Lit is a simple library for building fast, lightweight web components.
Svelte - Cybernetically enhanced web apps
vite-ssg - Static site generation for Vue 3 on Vite
css-modules - Documentation about css-modules
shoelace-css - A collection of professionally designed, every day UI components built on Web standards. Works with all framework as well as regular HTML/CSS/JS. 🥾
storybook - Storybook is a frontend workshop for building UI components and pages in isolation. Made for UI development, testing, and documentation.
catalyst - Catalyst is a set of patterns and techniques for developing components within a complex application.
stencil-storybook-demo - This demo show how to run, build & deploy Storybook and Stencil from one repository
mitosis - Write components once, run everywhere. Compiles to Vue, React, Solid, Angular, Svelte, and more.
solid-site - Code that powers the SolidJS.com platform.