42 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Web Components
 | 
						|
---
 | 
						|
 | 
						|
## What are web components?
 | 
						|
 | 
						|
Web components are comprised of a series of web specifications created by the [W3C](https://w3c.github.io/).
 | 
						|
These specifications describe a set of web platform APIs that can be used to create reusable, encapsulated, and customizable HTML elements.
 | 
						|
By exposing the low level web APIs used by browser vendors to create the HTML elements you may already be familiar with, web components can be used across
 | 
						|
a variety of environments.
 | 
						|
This means whether you're working on a Wordpress site, a server rendered application, a Single Page Application (SPA) with the latest framework, or no framework at all,
 | 
						|
web components can be used.
 | 
						|
For the first time, regardless of what framework is used, you can understand the web as a platform to creature unique experiences that are easily
 | 
						|
translated from one platform to another.
 | 
						|
 | 
						|
## Web Component Specifications
 | 
						|
 | 
						|
Web components are defined in [four main specifications](https://www.webcomponents.org/introduction#specifications).
 | 
						|
 | 
						|
- **Custom Elements**
 | 
						|
 | 
						|
  - The [Custom Elements specification](https://w3c.github.io/webcomponents/spec/custom/) lays the foundation for designing and using new types of DOM elements.
 | 
						|
 | 
						|
- **Shadow DOM**
 | 
						|
 | 
						|
  - The [Shadow DOM specification](https://w3c.github.io/webcomponents/spec/shadow/) defines how to use encapsulated style and markup in web components.
 | 
						|
 | 
						|
- **ES Modules**
 | 
						|
 | 
						|
  - The [ES Modules specification](https://html.spec.whatwg.org/multipage/webappapis.html#integration-with-the-javascript-module-system) defines the inclusion
 | 
						|
    and reuse of JS documents in a standards based, modular, performant way.
 | 
						|
 | 
						|
- **HTML Template**
 | 
						|
  - The [HTML template element specification](https://html.spec.whatwg.org/multipage/scripting.html#the-template-element/) defines how to declare
 | 
						|
    fragments of markup that go unused at page load, but can be instantiated later on at runtime.
 | 
						|
 | 
						|
### More Information:
 | 
						|
 | 
						|
- [Introduction to web components](https://www.webcomponents.org/introduction)
 | 
						|
- [Extensible Web Manifesto](https://github.com/extensibleweb/manifesto)
 | 
						|
- [W3C Web Component Specification](https://w3c.github.io/webcomponents/explainer/)
 |