{"repo":"coryrylan/reusable-ui-component-api-guide","free":true,"listed":false,"github":"https://github.com/coryrylan/reusable-ui-component-api-guide","clone":"git clone https://github.com/coryrylan/reusable-ui-component-api-guide.git","description":"An API guide outlining best practices for constructing highly reusable UI components on the Web","language":null,"stars":45,"topics":["api-design","design-systems","ui-components","ui-library","web-components"],"license":"MIT","category":"ui-components","readme_excerpt":"Reusable UI Component API Guide Goals Define and outline API best practices for creating highly reusable UI components that work in any Web framework or library. These recommendations are ideal for stateless components commonly used in UI component libraries and design systems. Non-Goals This guidance is not intended to define best practices around UI component API design in the use cases for high-level application UI components and state. However, many of the best practices described here may still be applicable. About Over the years, I have worked in various aspects of design systems, open source, and maintenance of UI libraries. You can find other related resources and guides in the list below. - coryrylan.com - webcomponent.dev - clarity.design Legend - ✅ Use: best practice - 🚫 Avoid: practice to avoid - 🚧 Warning: risks of not following guidance - 🏁 Performance: details of impact to performance - 📘 Tip: details on reasoning or rationale for guidance - 🎓 Learn: resources to learn more Topics - Compatibility - Element Registration - Properties & Attributes - Attributes - Properties - Impossible States - Primitive Types - Boolean Types - Custom Events - Slots - Slot Composition - Default Slots - Encapsulate Slots - Rendering - Stateless APIs - Escape Hatch - anti-pattern - State Synchornization - Stateful Events - Composition - API Inheritance - anti-pattern - Semantic Obfuscation - anti-pattern - Styles & CSS - Custom Properties - Internal Host - State Properties - Cu","default_branch":null,"files":null,"tree":[],"storefront":"/r/coryrylan","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/coryrylan/reusable-ui-component-api-guide/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}