Awesome Web Components 
A curated list of awesome Web Components resources.
Note This project was previously named “Web
Components the Right Way”
Web
Components — a suite of different technologies allowing you to
create reusable custom elements — with their functionality encapsulated
away from the rest of your code — and utilize them in your web apps.
Contents
Introduction
Standards
Custom Elements
Custom Elements provide a way for authors to build their own
fully-featured DOM elements.
Shadow DOM
Shadow DOM describes a method of combining multiple DOM trees into
one hierarchy and how these trees interact with each other within a
document, thus enabling better composition of the DOM.
HTML Templates
<template> element is used to declare fragments of
HTML that can be cloned and inserted in the document by script.
CSS Shadow Parts
CSS Shadow Parts allow developers to expose certain elements inside
Shadow DOM for styling purposes.
Guides
Accessibility
Best Practices
Codelabs
Examples
- generic-components
- Collection of generic web components with a focus on accessibility,
and ease of use.
- howto-components
- Collection of web components that implement common web UI
patterns.
- Nude UI -
Collection of accessible, customizable, ultra-light web components.
- open-wc
code examples - Collection of best practices and design patterns for
developing web components.
- vanilla-retro-js
- Vanilla JS UI component library of HTML deprecated tags.
- web-components-examples
- Series of web components examples, related to the MDN web components
documentation.
Articles
Architecture
Interoperability
Limitations
Styling
Real World
Case Studies
Components
<active-table>
- Editable table web component.
<api-viewer>
- API documentation and live playground for Web Components.
<chess-board>
- Standalone chess board web component.
<css-doodle>
- Web component for drawing patterns with CSS.
<dark-mode-toggle>
- Custom element that allows to create a dark mode toggle or
switch.
<deep-chat>
- Web component for chat with AI capabilities.
<emoji-picker>
- Lightweight emoji picker, distributed as a web component.
<fg-modal>
- Accessible modal dialog web component.
<file-viewer>
- Web component built with Svelte to view files.
<json-viewer>
- Web component to visualize JSON data in a tree view.
<lite-youtube>
- Lite YouTube embed with a focus on visual performance.
<midi-player>
- MIDI file player and visualizer web components.
<model-viewer>
- Web component for rendering interactive 3D models.
<player-x>
- Media player web component.
<progressive-image>
- Custom element to progressively enhance image placeholders.
<qr-code>
– Web component for rendering customizable, animate-able, SVG-based QR
codes.
<range-slider>
- Accessible range slider custom element with keyboard support.
<rapi-doc>
- Web component for creating documentation from OpenAPI
Specification.
<shader-doodle>
- Web component for writing and rendering shaders.
<theme-switch>
- Animated toggle button to switch between light, dark, and system
theme.
<trix-editor>
- Rich text editor custom element for everyday writing.
<vime-player>
- Customizable, extensible, accessible and framework agnostic media
player.
<web-vitals>
- Bring web
vitals quickly into your page using custom elements.
Component Libraries
- AMP - Web
component framework for easily creating user-first websites, stories,
ads, emails and more.
- AnywhereUI -
Collection of rich web components that includes framework bindings.
Created with StencilJS.
- Apollo
Elements - Custom elements for using Apollo GraphQL with various web
components libraries.
- AXA
Pattern Library - AXA CH UI components library built with Web
Components.
- Blackstone UI - Web
components for creating interfaces by Blackstone Publishing.
- Blaze UI Atoms
- Set of web components powered by Blaze CSS.
- Brightspace UI
core - Collection of web components for building Brightspace
applications.
- Clever
components - Collection of Web Components made by Clever Cloud.
- Curvenote - Web
components for creating interactive scientific articles.
- DataFormsJS
- Standalone Components for SPA routing, displaying data from web
services, and more.
- Dile
Components - General use Web Components for websites and
applications.
- elements-sk -
Collection of custom elements for “a la carte” web development.
- github-elements -
GitHub’s Web Component collection.
- Elix - High-quality,
customizable web components for common user interface patterns.
- Furo
Webcomponents - Enterprise ready set of web components which work
best with Eclipse Furo.
- Fusion
Web Components - Ser of web components used by Equinor Fusion.
- Ignite
UI Web Components - Complete library of UI components from
Infragistics.
- Immersive
Custom Elements - Set of web components for embedding immersive (VR
& AR) content.
- Joomla
UI custom elements - Compilation of Joomla 4 Custom Elements.
- Ketch.UP - Web
components library for Sme.UP.
- LDRS -
Lightweight, customizable loading animations/spinners.
- Lion Web Components -
Set of highly performant, accessible and flexible Web Components.
- LRNWebComponents
- ELMS:LN produced web components for any project.
- Lume - Custom elements
for defining 2D or 3D scenes rendered with CSS3D or WebGL.
- Medblocks UI
- Web Components for rapid development of openEHR and FHIR systems.
- Microsoft
Graph Toolkit - Collection of web components for the Microsoft
Graph.
- Mutation
testing elements - A schema for mutation testing results with the
web components to visualize it.
- Nightingale
- Data visualisation web components for the life sciences.
- Nuxeo Elements
- Components for building web applications with Nuxeo using Web
Components.
- One Platform
Components - Set of web components for Red Hat One Platform.
- Open Business
Application Platform Web Components - Collection of web components
designed for business applications.
- Pixano
Elements - Re-usable web components dedicated to data annotation
tasks.
- Playground
Elements - Serverless code experiences with web components.
- Shoelace -
A forward-thinking library of web components.
- Smart
Web Components - Web components for business applications.
- Stripe
Elements - Custom Element Wrapper for Stripe.js v3 Elements.
- TEI
Publisher Components - Collection of web components used by TEI
Publisher and apps generated by it.
- Titanium
Elements - Collection of lightweight web components used by Leavitt
Group Enterprises.
- Tradeshift
Elements - Reusable Tradeshift UI Components as Web Components.
- TrendChart
Elements - Components to generate simple, light and responsive
charts.
- Umbraco UI
Components - Collection of user interface web components for Umbraco
CMS.
- Vaadin
components - Evolving set of high-quality web components for
building business web applications.
- VSCode
Webview Elements - Components for creating VSCode extensions which
use the Webview API.
- Warp View -
Collection of charting web components for Warp 10.
- Webmarkets
web components - Set of Webmarkets’ public web components.
- Wired
Elements - Set of common UI elements with a hand-drawn, sketchy
look.
- Wokwi Elements
- Web Components for Arduino and various electronic parts.
- XWeather -
Collection of web components implementing portions of the OpenWeatherMap
API.
Design Systems
Use Cases
Libraries
Class Based
- DNA - Progressive Web
Components library.
- element-js -
Simple and lightweight base classes for web components with a beautiful
API.
- FAST
Element - Lightweight library for building performant,
memory-efficient, standards-compliant Web Components.
- Forge
Core - Building blocks and utilities that are used when building
Forge Web Components.
- Joist - Set
of small libraries designed to add the bare minimum to web components to
make you productive.
- Lit - Simple library for building
fast, lightweight web components.
- Lightning Web
Components - blazing fast, enterprise-grade Web Components
foundation.
- Omi - Next generation
web framework in 4kb JavaScript (Web Components + JSX + Proxy + Store +
Path Updating).
- Panel - Web
Components + Virtual DOM: web standards for powerful UIs.
- slim.js - Fast &
Robust Front-End Micro-framework based on modern standards.
- Stencil -
Compiler for generating Web Components.
- Tonic - Minimalist,
stable, audit friendly component framework.
- WebCell - Web
Components engine based on VDOM, JSX, MobX & TypeScript.
Functional
- atomico - Small
library for the creation of interfaces based on web components using
functions and hooks.
- haunted - React’s
Hooks API implemented for web components.
- hybrids - UI
library for creating Web Components with simple and functional API.
- Solid
Element - Library that extends Solid adding Custom Web Components
and extensions.
Integrations
Benchmarks
Frameworks
Angular
React
Vue
Svelte
Ecosystem
- AMP - Web
component framework to easily create user-first experiences for the
web.
- Enhance - Web
standards-based HTML framework for building lightweight web
applications.
- luna-js - SSR
framework that makes working with the WebComponents standard a
breeze.
- Rocket - Modern web
setup for static sites with a sprinkle of JavaScript.
- Web Components
Compiler - Compiler to make server-side rendering of native web
components easier.
- WebC -
Framework-independent standalone HTML serializer for generating markup
for web components.
Starter Kits
Testing Solutions
Books
Tutorials
Insights
Podcasts
Presentations
Talks
Usage Metrics
Proposals
Constructable Stylesheet
Objects
Custom State Pseudo Class
Miscellaneous
- bruck - Prototyping
system built with web components and the Houdini Paint API.
- Vaadin Directory -
Publish, discuss and rate web components
- webcomponents.org - Discuss
& share web components.
Archive
Polyfills
Modern browsers supports web components standards without any of the
polyfills listed below. The only notable exception is that customized
built-in elements are rejected by WebKit (Safari).
Custom Elements polyfills
Customized Built-in
Elements polyfills
Shadow DOM shims
HTML Templates polyfills
History
The articles below represent a long story of the Web Components
specifications on the way towards the standardization. Some of them
refer to earlier, so-called “v0” Shadow DOM and Custom Elements specs,
and abandoned HTML Imports spec. These materials are here for historical
reasons only, they are grouped by years and listed in chronological
order.
2019
2018
2017
2016
2015
2014
2013
2012
2011
Who To Follow
Maintainers