From 00829cd4e7dc18379bc5b415b4f15d43c608bbac Mon Sep 17 00:00:00 2001 From: Samir AMZANI Date: Mon, 17 Jul 2023 10:00:34 +0200 Subject: [PATCH 1/3] chore: [ADR-0004] use RadixUI --- doc/adr/0004-use-radix-ui.md | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 doc/adr/0004-use-radix-ui.md diff --git a/doc/adr/0004-use-radix-ui.md b/doc/adr/0004-use-radix-ui.md new file mode 100644 index 000000000..b8ba2ad0e --- /dev/null +++ b/doc/adr/0004-use-radix-ui.md @@ -0,0 +1,38 @@ +# 1. Record architecture decisions + +Date: 2023-07-17 + +## Status + +Accepted + + +## Context + +In our project, we have identified the need for a set of UI components that handle not only the logical part but also the design aspects. We have evaluated existing libraries such as Radix and Headless UI, which provide components with implicit designs. + +We have concluded that using a ready-made library would restrict our freedom to customize the look and feel of the components. Additionally, these libraries integrate design elements into their components, making it challenging or impossible to modify them according to our specific requirements. + +This is related to [ADR-003](./0003-use-design-system.md). + +## Decision + +After careful evaluation, we have decided to use Radix UI. This decision was driven by the following factors: + +- **Flexibility**: By creating our own components, we gain complete freedom to define the design and visual aspects according to our specific needs and branding. + +- **Logic Integration**: Building our own components allows us to integrate both the logical and design aspects seamlessly. We can ensure that our components handle keyboard navigation, support screen readers, check for rendering space, and avoid collisions with window limits. + +- **Maintenance and Community Support**: We have selected Radix as our preferred library due to its completeness, active maintenance, and vibrant community. + +## Consequences + +The decision to build our own UI components instead of using existing libraries will have the following consequences: + +- **Increased Development Effort and maintenance**: Developing custom UI components requires additional time and effort compared to adopting an existing library. + +- **Design Consistency Responsibility**: With the freedom to define our own components, we also bear the responsibility of maintaining design consistency across the application. We must establish design guidelines and ensure that all components adhere to them, promoting a cohesive and intuitive user interface. + +- **Reduced Dependency on External Libraries**: By building our own components, we reduce our reliance on external libraries and minimize the risk of being tied to their specific look and feel. This independence allows us to evolve and iterate on the components based on our unique requirements, providing long-term flexibility. + +By carefully considering these consequences and actively managing the development and maintenance process, we believe that building our own UI components will provide us with the flexibility, control, and customization required to deliver an outstanding studio user experience. \ No newline at end of file From 8ca15b0c3fc4eb976a0a59d69a9e317612f0db10 Mon Sep 17 00:00:00 2001 From: samz Date: Tue, 18 Jul 2023 14:13:54 +0200 Subject: [PATCH 2/3] Update doc/adr/0004-use-radix-ui.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fran Méndez --- doc/adr/0004-use-radix-ui.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/adr/0004-use-radix-ui.md b/doc/adr/0004-use-radix-ui.md index b8ba2ad0e..cae8a1f6b 100644 --- a/doc/adr/0004-use-radix-ui.md +++ b/doc/adr/0004-use-radix-ui.md @@ -9,7 +9,7 @@ Accepted ## Context -In our project, we have identified the need for a set of UI components that handle not only the logical part but also the design aspects. We have evaluated existing libraries such as Radix and Headless UI, which provide components with implicit designs. +In our project, we have identified the need for a set of UI components that only handle the logical part without imposing any design aspects. We have evaluated existing libraries such as Radix and Headless UI, which provide components without implicit designs. We have concluded that using a ready-made library would restrict our freedom to customize the look and feel of the components. Additionally, these libraries integrate design elements into their components, making it challenging or impossible to modify them according to our specific requirements. From 4f78d9555debcd1ba472639fd73ad6acd1b12f01 Mon Sep 17 00:00:00 2001 From: samz Date: Tue, 18 Jul 2023 14:14:12 +0200 Subject: [PATCH 3/3] Update doc/adr/0004-use-radix-ui.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fran Méndez --- doc/adr/0004-use-radix-ui.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/adr/0004-use-radix-ui.md b/doc/adr/0004-use-radix-ui.md index cae8a1f6b..519366ded 100644 --- a/doc/adr/0004-use-radix-ui.md +++ b/doc/adr/0004-use-radix-ui.md @@ -11,7 +11,7 @@ Accepted In our project, we have identified the need for a set of UI components that only handle the logical part without imposing any design aspects. We have evaluated existing libraries such as Radix and Headless UI, which provide components without implicit designs. -We have concluded that using a ready-made library would restrict our freedom to customize the look and feel of the components. Additionally, these libraries integrate design elements into their components, making it challenging or impossible to modify them according to our specific requirements. +We have concluded that using a ready-made library would restrict our freedom to customize the look and feel of the components. Additionally, this kind of libraries integrate design elements into their components, making it challenging or impossible to modify them according to our specific requirements. This is related to [ADR-003](./0003-use-design-system.md).