You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Oct 10, 2025 | 3.2.0 | The specific component "On colored bg" has been split into two distinct components: <ul><li>A public version offering traditional management of dark and light modes <li>A private version (allowing the core team to nest the component with other components) offering customized mode management with four possible configurations: <ul><li>Always in light mode <li>Always in dark mode <li>Light to dark mode <li>Dark to light mode </ul><li>Consequently, for the private version, the name of the "Inverted color" variant has been replaced to "Mode control".</ul> |
A button component must be clearly identifiable, easily navigable via keyboard, accessible to screen readers, and offer intuitive interaction for all users. Adopting these guidelines ensures compliance with WCAG 2.1 standards and an inclusive user experience.
2
+
3
+
**Semantics and Structure**
4
+
Ensure that each button has a clear and defined action.
5
+
Always use the HTML `<button>` element for buttons, as it is natively accessible and supported by assistive technologies (screen readers).
6
+
Avoid using `<div>` or `<span>` styled as buttons, unless absolutely necessary. In such cases:
7
+
* Add the appropriate ARIA role: `role="button"`.
8
+
* Manage keyboard navigation properly.
9
+
10
+
**Accessible Text**
11
+
The button's visible text should be clear and easy to understand ("Send" or "Add to Cart").
12
+
Avoid unlabeled or empty buttons.
13
+
If the button contains only an icon, provide a textual alternative using:
14
+
* The `aria-label` attribute (`aria-label="Search"`), or
15
+
* Hidden screen-reader text (using CSS techniques such as `.sr-only`).
16
+
17
+
**Visible Focus**
18
+
The button must display a clear and visible focus style when navigated to via keyboard (a border or highlight).
19
+
Never disable the browser's native focus state without providing an alternative.
20
+
21
+
**Screen Reader Compatibility**
22
+
The button's role is automatically detected when using the `<button>` element. If another element is used, add `role="button"`.
23
+
Provide additional context with `aria-label` or `aria-describedby` if the button's action is not clear from the visible text.
24
+
Use ARIA technologies to notify screen readers of changes if necessary (`aria-live`).
25
+
26
+
**Keyboard Navigation**
27
+
If the button serves a specific role (opening a menu), ensure interactions are intuitive and align with user expectations.
28
+
Users must be able to navigate to and activate the button using only the keyboard:
This component allows multi-line text editing. Although the number of lines is not technically limited, it is recommended not to exceed one line of text.
3
+
In its "Text + icon" variant, if the label spans multiple lines, the label remains horizontally centred and the icon remains vertically centred.
4
+
5
+
**Max-width vs full-width**
6
+
For greater flexibility, this component doesn't have a default max-width. To avoid exceeding a width that would degrade readability and the perception of a compact interactive element, we recommend applying **a max-width of around 360px.**
7
+
The component can also naturally wrap within the parent container (or the screen in a mobile use context for exemple) and use the full available width.
8
+
Please note that this behavior is not the default rule; it may be preferred if the template allows it (to improve user comfort or for better page structure/hierarchy).
9
+
10
+
**User zoom in/out**
11
+
The behavior of the text during user zoom in/out must follow a fundamental principle: the text must remain readable, accessible, and must never break the structure or lose information.
12
+
* The text must always scale proportionally with user zoom. Text resizing must never be blocked.
13
+
* Zooming must never cause text to be truncated or hidden. The component must expand vertically to allow line wrapping.
14
+
* The component's height and width must be flexible, never fixed, in order to automatically adapt its dimensions according to the level of zoom.
15
+
* In order to preserve the minimun interactive area during user zoom out, this component have a min-width and a min-height **of 48px**.
16
+
* Even if, the component has a max-height or a max-width for resizing control purposes, technically, during user zoom in, these limitations are not fixed but must be scalable in order to adapt to the user's zoom level.
17
+
* In its "Text + icon" variant, user zoom in/out doesn't affect the size of the icons; they remain fixed in size (decorative use).
18
+
* As the text is missing, in its "Icon only" variant, the icons follow the same rules as the text.
Copy file name to clipboardExpand all lines: components/action/button/button/dsm/guideline/rounded_corner.md
+11-1Lines changed: 11 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,4 +2,14 @@
2
2
The square rendering corresponds to Orange's historical style. It conveys the brand's sense of seriousness, robustness and utility-driven. It remains the default style for our digital interface components.
3
3
4
4
**`True`**
5
-
The rounded rendering offers flexibility without sacrificing the attribution to the brand. It helps anchoring the service in a reality where the visual codes of the mobile area tends to rub off on all interfaces. Use rounded corners for a softer, more approachable, friendly and tactile feel.
5
+
The rounded rendering offers flexibility without sacrificing the attribution to the brand. It helps anchoring the service in a reality where the visual codes of the mobile area tends to rub off on all interfaces. Use rounded corners for a softer, more approachable, friendly and tactile feel.
6
+
7
+
**Brand theme availability**
8
+
This option is technically not available for all brand themes. Here's the list of rounded corners availability by brand theme:
| Oct 10, 2025 | 3.2.0 | The specific component "On colored bg" has been split into two distinct components: <ul><li>A public version offering traditional management of dark and light modes <li>A private version (allowing the core team to nest the component with other components) offering customized mode management with four possible configurations: <ul><li>Always in light mode <li>Always in dark mode <li>Light to dark mode <li>Dark to light mode </ul><li>Consequently, for the private version, the name of the "Inverted color" variant has been replaced to "Mode control".</ul> | Maxime Tonnerre |
4
7
| Sep 28, 2025 | 3.1.0 | <ul><li>Brand variant: New background and content color tokens added for hover/pressed/loading/focus states <li>The name of the "Hierarchy" variant has been replaced to "Appearance"</ul> | Maxime Tonnerre |
5
8
| Jul 24, 2025 | 3.0.0 | <ul><li>New hierarchical variant: Brand → [Component tokens changelog 1.4.0](https://www.figma.com/design/Co2t6wHMf4GB9NJVGs2Hes/-OUDS-Core-Lib--Design-tokens?m=auto&node-id=9280-2568&t=HLVB4jOd35DWr8Bj-1) <li>Rounded corner property is now available → [Component tokens changelog 1.4.0](https://www.figma.com/design/Co2t6wHMf4GB9NJVGs2Hes/-OUDS-Core-Lib--Design-tokens?m=auto&node-id=9280-2568&t=HLVB4jOd35DWr8Bj-1) <li>Minimal variant: Color and width border tokens removed <li>Minimal variant: Color background tokens removed in the enabled state <li>Minimal variant: Color background tokens removed in the loading state <li>Minimal variant: Color background tokens removed in the disabled state</ul> | Maxime Tonnerre |
To be favored in more emotional, immersive contexts or those tied to specific visual identities. For standard or business-oriented journeys, keep the default corners. This evolution addresses the need for flexibility in adapting the design to certain brand contexts.
60
60
61
+
**Brand theme availability**
62
+
This option is technically not available for all brand themes. Here's the list of rounded corners availability by brand theme:
63
+
64
+
| Brand theme | Availability |
65
+
|---|---|
66
+
| Orange | ✅ Available |
67
+
| Orange Compact | ✅ Available |
68
+
| Sosh | ❌ Unavailable |
69
+
| Wireframe | ❌ Unavailable |
70
+
61
71
---
62
72
63
73
## Specific component: On colored bg
@@ -69,3 +79,61 @@ This variant ensures a sufficiently high level of accessibility when the compone
69
79
• In dark mode: For a white finish
70
80
71
81
---
82
+
83
+
## Multiline and responsiveness
84
+
85
+
**Multiline**
86
+
This component allows multi-line text editing. Although the number of lines is not technically limited, it is recommended not to exceed one line of text.
87
+
In its "Text + icon" variant, if the label spans multiple lines, the label remains horizontally centred and the icon remains vertically centred.
88
+
89
+
**Max-width vs full-width**
90
+
For greater flexibility, this component doesn't have a default max-width. To avoid exceeding a width that would degrade readability and the perception of a compact interactive element, we recommend applying **a max-width of around 360px.**
91
+
The component can also naturally wrap within the parent container (or the screen in a mobile use context for exemple) and use the full available width.
92
+
Please note that this behavior is not the default rule; it may be preferred if the template allows it (to improve user comfort or for better page structure/hierarchy).
93
+
94
+
**User zoom in/out**
95
+
The behavior of the text during user zoom in/out must follow a fundamental principle: the text must remain readable, accessible, and must never break the structure or lose information.
96
+
* The text must always scale proportionally with user zoom. Text resizing must never be blocked.
97
+
* Zooming must never cause text to be truncated or hidden. The component must expand vertically to allow line wrapping.
98
+
* The component's height and width must be flexible, never fixed, in order to automatically adapt its dimensions according to the level of zoom.
99
+
* In order to preserve the minimun interactive area during user zoom out, this component have a min-width and a min-height **of 48px**.
100
+
* Even if, the component has a max-height or a max-width for resizing control purposes, technically, during user zoom in, these limitations are not fixed but must be scalable in order to adapt to the user's zoom level.
101
+
* In its "Text + icon" variant, user zoom in/out doesn't affect the size of the icons; they remain fixed in size (decorative use).
102
+
* As the text is missing, in its "Icon only" variant, the icons follow the same rules as the text.
103
+
104
+
---
105
+
106
+
## Behaviour and accessibility
107
+
108
+
A button component must be clearly identifiable, easily navigable via keyboard, accessible to screen readers, and offer intuitive interaction for all users. Adopting these guidelines ensures compliance with WCAG 2.1 standards and an inclusive user experience.
109
+
110
+
**Semantics and Structure**
111
+
Ensure that each button has a clear and defined action.
112
+
Always use the HTML `<button>` element for buttons, as it is natively accessible and supported by assistive technologies (screen readers).
113
+
Avoid using `<div>` or `<span>` styled as buttons, unless absolutely necessary. In such cases:
114
+
* Add the appropriate ARIA role: `role="button"`.
115
+
* Manage keyboard navigation properly.
116
+
117
+
**Accessible Text**
118
+
The button's visible text should be clear and easy to understand ("Send" or "Add to Cart").
119
+
Avoid unlabeled or empty buttons.
120
+
If the button contains only an icon, provide a textual alternative using:
121
+
* The `aria-label` attribute (`aria-label="Search"`), or
122
+
* Hidden screen-reader text (using CSS techniques such as `.sr-only`).
123
+
124
+
**Visible Focus**
125
+
The button must display a clear and visible focus style when navigated to via keyboard (a border or highlight).
126
+
Never disable the browser's native focus state without providing an alternative.
127
+
128
+
**Screen Reader Compatibility**
129
+
The button's role is automatically detected when using the `<button>` element. If another element is used, add `role="button"`.
130
+
Provide additional context with `aria-label` or `aria-describedby` if the button's action is not clear from the visible text.
131
+
Use ARIA technologies to notify screen readers of changes if necessary (`aria-live`).
132
+
133
+
**Keyboard Navigation**
134
+
If the button serves a specific role (opening a menu), ensure interactions are intuitive and align with user expectations.
135
+
Users must be able to navigate to and activate the button using only the keyboard:
0 commit comments