What kind of component library is Elements? #98
-
|
Now that we have a Design System working group and investment in Elements v5 starting to ramp up, I believe there is a key foundational question in front of us: what kind of component library is Elements? A clear answer will provide alignment and clarity across the group and help simplify some of the decisions that we'll face in future. It seems to me there are two obvious answers we could settle on:
Answer 1: Elements is a generic components library with a default appearanceThis answer would make Elements similar to MUI, Chakra UI, Reakit, React Aria and other popular generic component libraries in the React ecosystem. With this answer, the appearance of Elements' components can be modified to match any design system and the following design decisions would seem acceptable:
Answer 2: Elements is a specific implementation of the Reapit DSThis answer would make Elements similar to Lightning, Atlaskit, Fluent UI, Spectrum and other publicly-available design systems that can provide various implementations of a business' internal design system in different technologies (e.g. web components, React and others). With this answer, Elements could effectively become the name of the Reapit Design System itself and the following design decisions would seem acceptable:
Why no third option? Surely there's a compromise?It is possible there is another option you see that I have not considered. I am deliberately presenting a clear dichotomy here, but maybe there's some appropriate middle ground or alternatives that are worth our consideration. Please take some time to think about the main question—what kind of component library is Elements?—and respond below 🙏 Once we've collected our thoughts here, we'll be able to discuss verbally at an upcoming working group meeting, get input from the Design team and, hopefully, find an answer we're confident in 🤞 If we discover other important questions during the discussion, we can take a similar approach for them (assuming it works well enough for us this time). |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
|
@kurtdoherty For me it's option 2 - the sole mandate we have is to implement as faithfully as possible the Reapit Design system. Advanced customisation is not on the agenda and we should support basic level theming only insofar as the design tokens exported from the design system are exported and can be overridden as a native feature of CSS, purely at the user's discretion. Our focus should be to ensure as 1:1 parity with the Design System as possible. |
Beta Was this translation helpful? Give feedback.
-
|
The Design System working group, on 24 April, all agreed that answer (2) is correct; Elements is a specific implementation of the Reapit DS. This means:
|
Beta Was this translation helpful? Give feedback.
The Design System working group, on 24 April, all agreed that answer (2) is correct; Elements is a specific implementation of the Reapit DS. This means: