How to create a Native Web Component without a Framework

Everyone knows it: encapsulating and reusing UI components on the web is challenging. It is usually
copy and paste of HTML, CSS, and JavaScript, often spread over one or more files.
If you forget a part, it either does not look as desired, or the interaction will not work. Enough of that!
Web Components open up new ways on the web to implement and (re-)use UI components in a standardized manner and without any framework.