{"slug": "mateusortiz--webcomponents-the-right-way", "title": "Webcomponents the Right Way", "description": "A curated list of awesome Web Components resources.", "github_url": "https://github.com/web-padawan/awesome-web-components", "stars": "3.4K", "tag": "Front-End Development", "entry_count": 516, "subcategory_count": 37, "subcategories": [{"name": "General", "parent": "", "entries": [{"name": "Introduction", "url": "#introduction", "description": ""}, {"name": "Standards", "url": "#standards", "description": ""}, {"name": "Guides", "url": "#guides", "description": ""}, {"name": "Articles", "url": "#articles", "description": ""}, {"name": "Real World", "url": "#real-world", "description": ""}, {"name": "Libraries", "url": "#libraries", "description": ""}, {"name": "Frameworks", "url": "#frameworks", "description": ""}, {"name": "Ecosystem", "url": "#ecosystem", "description": ""}, {"name": "Books", "url": "#books", "description": ""}, {"name": "Tutorials", "url": "#tutorials", "description": ""}, {"name": "Insights", "url": "#insights", "description": ""}, {"name": "Usage Metrics", "url": "#usage-metrics", "description": ""}, {"name": "Proposals", "url": "#proposals", "description": ""}, {"name": "Miscellaneous", "url": "#miscellaneous", "description": ""}, {"name": "Archive", "url": "#archive", "description": ""}, {"name": "Who To Follow", "url": "#who-to-follow", "description": ""}, {"name": "Maintainers", "url": "#maintainers", "description": ""}, {"name": "An Introduction to Web Components", "url": "https://css-tricks.com/an-introduction-to-web-components/", "description": ""}, {"name": "Intro to Web Components", "url": "https://developer.salesforce.com/blogs/2020/01/intro-to-web-components.html", "description": ""}, {"name": "The Holy Grail Of Reusable Components: Custom Elements, Shadow DOM, And NPM", "url": "https://www.smashingmagazine.com/2018/07/reusable-components-custom-elements-shadow-dom-npm/", "description": ""}, {"name": "The Motivation For Using Web Components, an Introduction", "url": "https://www.thinktecture.com/web-components/introduction-and-motivation/", "description": ""}, {"name": "The Power of Web Components", "url": "https://hacks.mozilla.org/2018/11/the-power-of-web-components/", "description": ""}, {"name": "Web Components 101", "url": "https://nhswd.com/blog/web-components-101-what-are-web-components/", "description": ""}, {"name": "Web Components: From the orbital height", "url": "https://javascript.info/webcomponents-intro", "description": ""}, {"name": "What are browser-native web components?", "url": "https://gomakethings.com/what-are-browser-native-web-components/", "description": ""}, {"name": "Why Web Components?", "url": "https://www.fast.design/docs/resources/why-web-components/", "description": ""}]}, {"name": "Custom Elements", "parent": "Standards", "entries": [{"name": "A Guide to Custom Elements for React Developers", "url": "https://css-tricks.com/a-guide-to-custom-elements-for-react-developers/", "description": ""}, {"name": "All about HTML Custom Elements", "url": "https://github.com/shawnbot/custom-elements", "description": "", "stars": "203"}, {"name": "Custom elements", "url": "https://javascript.info/custom-elements", "description": ""}, {"name": "Custom Elements v1: Reusable Web Components", "url": "https://web.dev/custom-elements-v1/", "description": ""}, {"name": "Handling properties in custom element upgrades", "url": "https://nolanlawson.com/2021/08/03/handling-properties-in-custom-element-upgrades/", "description": ""}, {"name": "Handy Custom Elements' Patterns", "url": "https://gist.github.com/WebReflection/ec9f6687842aa385477c4afca625bbf4", "description": ""}, {"name": "HTML Living Standard: Custom elements", "url": "https://html.spec.whatwg.org/multipage/custom-elements.html", "description": ""}, {"name": "MDN - Using Custom Elements", "url": "https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements", "description": ""}, {"name": "web-platform-tests", "url": "https://github.com/web-platform-tests/wpt/tree/master/custom-elements", "description": "", "stars": "5.8k"}]}, {"name": "Shadow DOM", "parent": "Standards", "entries": [{"name": "A complete guide on shadow DOM and event propagation", "url": "https://pm.dartus.fr/blog/a-complete-guide-on-shadow-dom-and-event-propagation/", "description": ""}, {"name": "DOM Living Standard: Shadow tree", "url": "https://dom.spec.whatwg.org/#shadow-trees", "description": ""}, {"name": "MDN - Using Shadow DOM", "url": "https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM", "description": ""}, {"name": "Mind the document.activeElement!", "url": "https://dev.to/open-wc/mind-the-document-activeelement-2o9a", "description": ""}, {"name": "Open vs. Closed Shadow DOM", "url": "https://blog.revillweb.com/open-vs-closed-shadow-dom-9f3d7427d1af", "description": ""}, {"name": "Shadow DOM", "url": "https://javascript.info/shadow-dom", "description": ""}, {"name": "Shadow DOM and events", "url": "https://javascript.info/shadow-dom-events", "description": ""}, {"name": "Shadow DOM in depth", "url": "https://github.com/praveenpuglia/shadow-dom-in-depth", "description": "", "stars": "237"}, {"name": "Shadow DOM slots, composition", "url": "https://javascript.info/slots-composition", "description": ""}, {"name": "Shadow DOM styling", "url": "https://javascript.info/shadow-dom-style", "description": ""}, {"name": "Shadow DOM v1: Self-Contained Web Components", "url": "https://web.dev/shadowdom-v1/", "description": ""}, {"name": "The Rise of Shadow DOM", "url": "https://medium.com/front-end-hacking/the-rise-of-shadow-dom-84aa1f731e82", "description": ""}, {"name": "Understanding Slot Updates with Web Components", "url": "https://coryrylan.com/blog/understanding-slot-updates-with-web-components", "description": ""}, {"name": "What is the Shadow DOM?", "url": "https://bitsofco.de/what-is-the-shadow-dom/", "description": ""}, {"name": "Who doesn't love some slots?", "url": "https://dev.to/westbrook/who-doesnt-love-some-s-3de0", "description": ""}, {"name": "Your Content in Shadow DOM Portals", "url": "https://dev.to/westbrook/your-content-in-shadow-dom-portals-3cdb", "description": ""}, {"name": "web-platform-tests", "url": "https://github.com/web-platform-tests/wpt/tree/master/shadow-dom", "description": "", "stars": "5.8k"}]}, {"name": "HTML Templates", "parent": "Standards", "entries": [{"name": "Crafting Reusable HTML Templates", "url": "https://css-tricks.com/crafting-reusable-html-templates/", "description": ""}, {"name": "HTML Living Standard: The `template` element", "url": "https://html.spec.whatwg.org/multipage/scripting.html#the-template-element", "description": ""}, {"name": "HTML templates with vanilla JavaScript", "url": "https://gomakethings.com/html-templates-with-vanilla-javascript/", "description": ""}, {"name": "MDN - \\