Web Components is 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.
-- MDN --
Web components are a set of web platform APIs that allow you to create new custom, reusable, encapsulated HTML tags to use in web pages and web apps. Custom components and widgets build on the Web Component standards, will work across modern browsers, and can be used with any JavaScript library or framework that works with HTML.
-- webcomponents.org --
JavaScript APIs for defining custom elements and their behaviour
Shadow DOM tree is rendered separately from the main DOM. Element behaviour and style is scoped.
Define element's DOM structure using <template> and <slot>.
Amongst other things allows import of web components into a page.
The goal:
Create and use web components in Angular, React and HTML5 apps.
Challenges:
Verdict... SPOILT!
SUCCESS!
Challenges:
Verdict... EASY!
SUCCESS!
Challenges:
Verdict... TOUCHDOWN!
SUCCESS!
Challenges:
Verdict... ANNOYING!
SUCCESS!
Note: As the component author, you're responsible for letting developers know about CSS custom properties they can use. Consider it part of your component's public interface. Make sure to document styling hooks!
-- Google guide --
GitHub - webcomponents-talk
MDN - web components
Google guides - custom elements & shadow dom
React - Wrapping web components in React
Angular - Using web component in Angular