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/) |