Web Components is the process of creating re-usable components, so instead of copying and pasting large blocks of HTML, you build a component which you can re-use.
The creators of Web Components introduced a couple of new concepts which I need to briefly cover before covering the components themselves ...
ShadowDOM, each component you create gets their own sandboxed DOM that runs on top of the normal DOM.
ShadowDOM is not supported by all browsers, Chrome and Opera supports it, Firefox partially supports it and as far as I know, IE/Edge and Safari has no support for ShadowDOM at all.
If you're doing a lot of DOM manipulation, having each element have their own DOM means better performance since everything you do will only apply to the ShadowDOM so your getElementById / Class / Name / etc will only have to search in your ShadowDOM and not the full DOM.
The engineers created something called Polyfills. polyfills.js (if we can call it that) will look at which browser is running, if a feature is natively supported, send it straight through, if not, do some magic to simulate the feature that's missing from the browser, almost like modernizer.js does, only polyfills.js makes a non-shadowDOM browser behave as if it had shadowDOM enabled and in the cases where custom tags are not supported, emulate custom tags as if they were allowed, etc.
The components side of it is pretty simple, you create a new component, let's call it ScrollPanel, you define a tag for it, <scroll-panel></scroll-panel>, give it some attributes which will be used to initialise the component, <scroll-panel scroll-x="true" scroll-y="false" height="200px" width="100px">......<scroll-panel> and then when you define the component, you can extend an existing component (in this case a div would be perfect) and define what those attributes should do with the component, give that component its own CSS and its own JavaScript. A good practice is to not include colour in the component, only use CSS for layout and apply colour in a global style.
In terms of packaging all these components into a single CSS and JS file, I don't know how that works, I've only briefly worked with Polymer Dart. Performance tuning of pages containing Web Components is probably worth a separate topic.