Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit deac4079 authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé
Browse files

docs(architecture): add design system section

parent 81012e3b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ generator, in this case, **mdbook**. It defines the structure and navigation of
  - [Module Structure](architecture/module-structure.md)
  - [Feature Modules](architecture/feature-modules.md)
  - [UI Architecture](architecture/ui-architecture.md)
  - [Design System](architecture/design-system.md)
  - [User Flows](architecture/user-flows.md)
  - [Legacy Module Integration](architecture/legacy-module-integration.md)
  - [Architecture Decision Records](architecture/adr/README.md)
+1 −1
Original line number Diff line number Diff line
@@ -16,7 +16,7 @@ be implemented multiple times across different screens.
## Decision

To address these challenges, we've decided to adopt an
[Atomic Design System](../../../core/ui/compose/designsystem/README.md) as a foundation for our application UI.
[Atomic Design System](../design-system.md) as a foundation for our application UI.
This system encapsulates Material components within our [own components](../../../core/ui/compose/designsystem/),
organized into categories of _atoms_, _molecules_, and _organisms_. We also defined _templates_ as layout structures
that can be flexibly combined to construct _pages_. These components collectively form the building blocks that we are
+4 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than diagrams.net -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="655px" height="144px" viewBox="-0.5 -0.5 655 144" content="&lt;mxfile host=&quot;drawio-plugin&quot; modified=&quot;2023-02-21T14:32:46.458Z&quot; agent=&quot;5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.45 Safari/537.36&quot; etag=&quot;t0zFHyaQrZC0e6OLrxYT&quot; version=&quot;20.5.3&quot; type=&quot;embed&quot;&gt;&lt;diagram id=&quot;23iRSUPoRavnBvh4doch&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><ellipse cx="43" cy="52" rx="40" ry="40" fill="none" stroke="#000000" stroke-width="7" pointer-events="none"/><ellipse cx="43" cy="52" rx="20" ry="20" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="298" cy="77" rx="15" ry="15" fill="none" stroke="#000000" stroke-width="4" pointer-events="none"/><ellipse cx="298" cy="77" rx="7.5" ry="7.5" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="298" cy="47" rx="15" ry="15" fill="none" stroke="#000000" stroke-width="4" pointer-events="none"/><ellipse cx="298" cy="47" rx="7.5" ry="7.5" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="298" cy="17" rx="15" ry="15" fill="none" stroke="#000000" stroke-width="4" pointer-events="none"/><ellipse cx="298" cy="17" rx="7.5" ry="7.5" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="328" cy="17" rx="15" ry="15" fill="none" stroke="#000000" stroke-width="4" pointer-events="none"/><ellipse cx="328" cy="17" rx="7.5" ry="7.5" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="328" cy="47" rx="15" ry="15" fill="none" stroke="#000000" stroke-width="4" pointer-events="none"/><ellipse cx="328" cy="47" rx="7.5" ry="7.5" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="328" cy="77" rx="15" ry="15" fill="none" stroke="#000000" stroke-width="4" pointer-events="none"/><ellipse cx="328" cy="77" rx="7.5" ry="7.5" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="358" cy="77" rx="15" ry="15" fill="none" stroke="#000000" stroke-width="4" pointer-events="none"/><ellipse cx="358" cy="77" rx="7.5" ry="7.5" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="358" cy="47" rx="15" ry="15" fill="none" stroke="#000000" stroke-width="4" pointer-events="none"/><ellipse cx="358" cy="47" rx="7.5" ry="7.5" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="358" cy="17" rx="15" ry="15" fill="none" stroke="#000000" stroke-width="4" pointer-events="none"/><ellipse cx="358" cy="17" rx="7.5" ry="7.5" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="153" cy="72" rx="20" ry="20" fill="none" stroke="#000000" stroke-width="5" pointer-events="none"/><ellipse cx="153" cy="72" rx="10" ry="10" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="213" cy="72" rx="20" ry="20" fill="none" stroke="#000000" stroke-width="5" pointer-events="none"/><ellipse cx="213" cy="72" rx="10" ry="10" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><ellipse cx="183" cy="22" rx="20" ry="20" fill="none" stroke="#000000" stroke-width="5" pointer-events="none"/><ellipse cx="183" cy="22" rx="10" ry="10" fill="#7ea6e0" stroke="#7ea6e0" pointer-events="none"/><path d="M 200.93 53.63 M 200.93 53.63 C 199.83 51.88 197.24 48.33 195.07 40.37 M 200.93 53.63 C 198.49 48.74 195.98 43.15 195.07 40.37" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 196.6 55.7 C 196.6 55.7 196.6 55.7 196.6 55.7 M 196.6 55.7 C 196.6 55.7 196.6 55.7 196.6 55.7" fill="none" stroke="#6c8ebf" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 204.57 61.86 M 204.57 61.86 C 201.74 60.55 200.92 59.15 196.82 55.45 M 204.57 61.86 C 202.79 59.9 201.26 58.85 196.82 55.45 M 196.82 55.45 C 199.15 54.77 202.66 53.29 205.05 51.81 M 196.82 55.45 C 199.02 54.26 201.56 52.92 205.05 51.81 M 205.05 51.81 C 205.45 54.52 205.45 57.68 204.57 61.86 M 205.05 51.81 C 205.23 54.5 204.56 57.56 204.57 61.86" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 191.18 32.43 C 191.18 32.43 191.18 32.43 191.18 32.43 M 191.18 32.43 C 191.18 32.43 191.18 32.43 191.18 32.43" fill="none" stroke="#6c8ebf" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 191.43 32.14 M 191.43 32.14 C 192.9 34.48 196.46 36.7 199.18 38.55 M 191.43 32.14 C 193.06 33.15 194.97 34.95 199.18 38.55 M 199.18 38.55 C 196.28 40.11 194.54 40.95 190.95 42.19 M 199.18 38.55 C 196.6 39.43 194.35 40.21 190.95 42.19 M 190.95 42.19 C 191.63 38.39 191.94 35.06 191.43 32.14 M 190.95 42.19 C 191.51 38.83 191.13 35.84 191.43 32.14" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 170.93 40.37 M 170.93 40.37 C 168.78 43.43 168.22 45.63 165.07 53.63 M 170.93 40.37 C 168.66 44.38 168.03 46.92 165.07 53.63" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 166.55 38.86 C 166.55 38.86 166.55 38.86 166.55 38.86 M 166.55 38.86 C 166.55 38.86 166.55 38.86 166.55 38.86" fill="none" stroke="#6c8ebf" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 174.57 32.14 M 174.57 32.14 C 173.93 34.93 174.87 37.86 175.05 42.19 M 174.57 32.14 C 174.29 36.55 175.12 39.8 175.05 42.19 M 175.05 42.19 C 172.17 40.29 169.84 39.62 166.82 38.55 M 175.05 42.19 C 172.7 40.88 169.68 39.79 166.82 38.55 M 166.82 38.55 C 168.69 36.23 171.16 35.35 174.57 32.14 M 166.82 38.55 C 168.43 36.5 170.95 34.83 174.57 32.14" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 161.25 51.47 C 161.25 51.47 161.25 51.47 161.25 51.47 M 161.25 51.47 C 161.25 51.47 161.25 51.47 161.25 51.47" fill="none" stroke="#6c8ebf" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 161.43 61.86 M 161.43 61.86 C 160.34 58.26 160.98 54.81 160.95 51.81 M 161.43 61.86 C 160.79 58.28 161.23 53.54 160.95 51.81 M 160.95 51.81 C 162.71 52 164.99 53.38 169.18 55.45 M 160.95 51.81 C 164.03 52.94 166.48 54.27 169.18 55.45 M 169.18 55.45 C 166.9 56.67 165.28 59.18 161.43 61.86 M 169.18 55.45 C 166.94 56.76 165.54 58.32 161.43 61.86" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 175.35 72 M 175.35 72 C 179.92 71.64 182.98 71.15 190.65 72 M 175.35 72 C 180.77 72.56 185.04 72.47 190.65 72" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 166.45 71.89 C 166.45 71.89 166.45 71.89 166.45 71.89 M 166.45 71.89 C 166.45 71.89 166.45 71.89 166.45 71.89" fill="none" stroke="#6c8ebf" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 166.35 72 M 166.35 72 C 170.48 71.04 171.86 68.53 175.35 67.5 M 166.35 72 C 169.86 70.6 173.29 69.08 175.35 67.5 M 175.35 67.5 C 174.53 69.33 175.39 72.54 175.35 76.5 M 175.35 67.5 C 175.45 70.83 175.62 73.8 175.35 76.5 M 175.35 76.5 C 172.52 74.94 171.37 73.73 166.35 72 M 175.35 76.5 C 173.54 75.25 171.35 75.21 166.35 72" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 190.53 67.64 C 190.53 67.64 190.53 67.64 190.53 67.64 M 190.53 67.64 C 190.53 67.64 190.53 67.64 190.53 67.64" fill="none" stroke="#6c8ebf" stroke-width="1.5" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><path d="M 199.65 72 M 199.65 72 C 197.44 74.33 192.47 74.99 190.65 76.5 M 199.65 72 C 196.46 73.99 193.19 75.82 190.65 76.5 M 190.65 76.5 C 189.8 73.98 190.67 72.83 190.65 67.5 M 190.65 76.5 C 190.6 73.11 190.77 69.37 190.65 67.5 M 190.65 67.5 C 191.58 67.93 194.11 68.57 199.65 72 M 190.65 67.5 C 192.46 67.92 193.93 69.71 199.65 72" fill="none" stroke="#6c8ebf" stroke-width="3" stroke-linejoin="round" stroke-linecap="round" stroke-miterlimit="10" pointer-events="none"/><rect x="573" y="2" width="80" height="80" fill="rgb(255, 255, 255)" stroke="#000000" stroke-width="3" pointer-events="none"/><path d="M 563 12 L 613 12 L 643 42 L 643 90 L 563 90 L 563 12 Z" fill="rgb(255, 255, 255)" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><path d="M 613 12 L 613 42 L 643 42 Z" fill-opacity="0.05" fill="#000000" stroke="none" pointer-events="none"/><path d="M 613 12 L 613 42 L 643 42" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="none"/><ellipse cx="583" cy="33" rx="10" ry="10" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="none"/><rect x="573" y="56" width="60" height="20" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="none"/><rect x="598" y="23" width="10" height="20" fill="#dae8fc" stroke="#6c8ebf" stroke-width="2" pointer-events="none"/><rect x="433" y="2" width="80" height="80" fill="rgb(255, 255, 255)" stroke="#000000" stroke-width="3" pointer-events="none"/><rect x="423" y="10" width="80" height="80" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="none"/><rect x="433" y="56" width="60" height="20" fill="rgb(255, 255, 255)" stroke="#000000" stroke-width="2" stroke-dasharray="6 6" pointer-events="none"/><rect x="461" y="23" width="10" height="20" fill="rgb(255, 255, 255)" stroke="#000000" stroke-width="2" stroke-dasharray="6 6" pointer-events="none"/><ellipse cx="441" cy="34" rx="10" ry="10" fill="rgb(255, 255, 255)" stroke="#000000" stroke-width="2" stroke-dasharray="6 6" pointer-events="none"/><rect x="483" y="24" width="10" height="20" fill="rgb(255, 255, 255)" stroke="#000000" stroke-width="2" stroke-dasharray="6 6" pointer-events="none"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 127px; margin-left: 14px;"><div data-drawio-colors="color: #7EA6E0; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: &quot;Courier New&quot;; color: rgb(126, 166, 224); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: normal; overflow-wrap: normal;">ATOMS</div></div></div></foreignObject><text x="43" y="132" fill="#7EA6E0" font-family="Courier New" font-size="18px" text-anchor="middle" font-weight="bold">ATOMS</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 127px; margin-left: 154px;"><div data-drawio-colors="color: #7EA6E0; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: &quot;Courier New&quot;; color: rgb(126, 166, 224); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: normal; overflow-wrap: normal;">MOLECULES</div></div></div></foreignObject><text x="183" y="132" fill="#7EA6E0" font-family="Courier New" font-size="18px" text-anchor="middle" font-weight="bold">MOLECUL...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 127px; margin-left: 299px;"><div data-drawio-colors="color: #7EA6E0; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: &quot;Courier New&quot;; color: rgb(126, 166, 224); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: normal; overflow-wrap: normal;">ORGANISM</div></div></div></foreignObject><text x="328" y="132" fill="#7EA6E0" font-family="Courier New" font-size="18px" text-anchor="middle" font-weight="bold">ORGANISM</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 127px; margin-left: 439px;"><div data-drawio-colors="color: #7EA6E0; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: &quot;Courier New&quot;; color: rgb(126, 166, 224); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: normal; overflow-wrap: normal;">TEMPLATES</div></div></div></foreignObject><text x="468" y="132" fill="#7EA6E0" font-family="Courier New" font-size="18px" text-anchor="middle" font-weight="bold">TEMPLAT...</text></switch></g><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 127px; margin-left: 579px;"><div data-drawio-colors="color: #7EA6E0; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 18px; font-family: &quot;Courier New&quot;; color: rgb(126, 166, 224); line-height: 1.2; pointer-events: none; font-weight: bold; white-space: normal; overflow-wrap: normal;">PAGES</div></div></div></foreignObject><text x="608" y="132" fill="#7EA6E0" font-family="Courier New" font-size="18px" text-anchor="middle" font-weight="bold">PAGES</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
 No newline at end of file
+39 −0
Original line number Diff line number Diff line
# 🎨 Design System

The design system is a collection of guidelines, principles, and tools that help teams create consistent and cohesive visual designs and user experiences. It is built using the Atomic Design Methodology.

## 📚 Background

[Jetpack Compose](https://developer.android.com/jetpack/compose) is a declarative UI toolkit for Android that provides a modern and efficient way to build UIs for Android apps. In this context, design systems and atomic design can help designers and developers create more scalable, maintainable, and reusable UIs.

### 🧩 Design System

A design system is a collection of guidelines, principles, and tools that help teams create consistent and cohesive visual designs and user experiences.
It typically includes a set of reusable components, such as icons, typography, color palettes, and layouts, that can be combined and customized to create new designs.

The design system also provides documentation and resources for designers and developers to ensure that the designs are implemented consistently and efficiently across all platforms and devices.
The goal of a design system is to streamline the design process, improve design quality, and maintain brand consistency.

An example is Google's [Material Design](https://m3.material.io/) that is used to develop cohesive apps.

### 🧪 Atomic Design

![Atomic design](assets/atomic_design.svg)

Atomic design is a methodology for creating user interfaces (UI) in a design system by breaking them down into smaller, reusable components.
These components are classified into five categories based on their level of abstraction: **atoms**, **molecules**, **organisms**, **templates**, and **pages**.

- **Atoms** are the smallest building blocks, such as buttons, labels, and input fields and could be combined to create more complex components.
- **Molecules** are groups of atoms that work together, like search bars, forms or menus
- **Organisms** are more complex components that combine molecules and atoms, such as headers or cards.
- **Templates** are pages with placeholders for components
- **Pages** are the final UI

By using atomic design, designers and developers can create more consistent and reusable UIs.
This can save time and improve the overall quality, as well as facilitate collaboration between team members.

## 📝 Acknowledgement

- [Atomic Design Methodology | Atomic Design by Brad Frost](https://atomicdesign.bradfrost.com/chapter-2/)
- [Atomic Design: Getting Started | Blog | We Are Mobile First](https://www.wearemobilefirst.com/blog/atomic-design)
+1 −0
Original line number Diff line number Diff line
@@ -111,6 +111,7 @@ fun AccountSettingsContent(
- Consistent visual language across the application
- Encapsulate styling, theming, and behavior from Material Design 3
- Located in the `core:ui:compose:designsystem` module for reuse across features
- Built using the [Atomic Design Methodology](design-system.md)

Example: