Developers want to go beyond implementation because products evolve, but some of them just want to follow implementation.
1. Do not use the implementation
2. Use desired "limited experience" implementation
1. Use the component library
2. Create your own implementation.
2. Define possible components beyond primitives.
I like approach 1, but it will give a lot more work for developers...
Transporting this thinking to the component library seems easy, but there are some challenges:
In a first release of our components on clayui.com, we had taken the approach of faithfully following the specification of the components...
We recently launched Clay v3 with a different and hybrid approach to component delivery. We call it the Multi-Layered API library.
high-level - Highly specific component that tend to cover only specific use cases, limiting their flexibility.
Low-level components follow the composition, for example:
<ClayDropDown />
<ClayDropDown.Action />
<ClayDropDown.Item />
<ClayDropDown.ItemList />
<ClayDropDown.Search />
<ClayButtonWithIcon />
<ClayCardWithHorizontal />
<ClayCardWithNavigation />
<ClayDropDownWithItems />
The benefit of this is that you can come up with a hybrid approach that reaches more adoption and many teams with different tastes.
- Github: github.com/liferay/clay
- Site: clayui.com
- Design System: lexicondesign.io
Our Github repository is full of very interesting thoughts and speeches. Explore our issues and PR's 😁