The technology is defined by four key HTML5 W3C specifications:
Even though these specs make up the concept of Web Components, you don't need browser support for all of them in order to write or use a web component.
webcompomponents.js (all specs)
Skate (custom elements only)
document-register-element (custom elements only)
Libraries to simplify building Web Components
Directories of ready-to-use components