From 59c798cdb0664eb80d1f2f6f38663dcae98131a4 Mon Sep 17 00:00:00 2001 From: Louis-Maxime Piton Date: Fri, 2 Aug 2024 11:12:29 +0200 Subject: [PATCH] docs(utilities): add 'Interactions' page (#2662) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Julien Déramond --- .../docs/0.0/utilities/interactions.md | 35 ++++++++++++++++++- site/data/sidebar.yml | 1 - 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/site/content/docs/0.0/utilities/interactions.md b/site/content/docs/0.0/utilities/interactions.md index 4855b3ee3b..b7345f132b 100644 --- a/site/content/docs/0.0/utilities/interactions.md +++ b/site/content/docs/0.0/utilities/interactions.md @@ -8,4 +8,37 @@ aliases: toc: false --- -{{< callout-soon "page" >}} +## Text selection + +Change the way in which the content is selected when the user interacts with it. + +{{< example >}} +

This paragraph will be entirely selected when clicked by the user.

+

This paragraph has default select behavior.

+

This paragraph will not be selectable when clicked by the user.

+{{< /example >}} + +## Pointer events + +OUDS Web provides `.pe-none` and `.pe-auto` classes to prevent or add element interactions. + +{{< example >}} +

This link can not be clicked.

+

This link can be clicked (this is default behavior).

+

This link can not be clicked because the pointer-events property is inherited from its parent. However, this link has a pe-auto class and can be clicked.

+{{< /example >}} + +The `.pe-none` class (and the `pointer-events` CSS property it sets) only prevents interactions with a pointer (mouse, stylus, touch). Links and controls with `.pe-none` are, by default, still focusable and actionable for keyboard users. To ensure that they are completely neutralized even for keyboard users, you may need to add further attributes such as `tabindex="-1"` (to prevent them from receiving keyboard focus) and `aria-disabled="true"` (to convey the fact they are effectively disabled to assistive technologies), and possibly use JavaScript to completely prevent them from being actionable. + +If possible, the simpler solution is: + +- For form controls, add the `disabled` HTML attribute. +- For links, remove the `href` attribute, making it a non-interactive anchor or placeholder link. + +## CSS + +### Sass utilities API + +Interaction utilities are declared in our utilities API in `scss/_utilities.scss`. [Learn how to use the utilities API.]({{< docsref "/utilities/api#using-the-api" >}}) + +{{< scss-docs name="utils-interaction" file="scss/_utilities.scss" >}} diff --git a/site/data/sidebar.yml b/site/data/sidebar.yml index 3f709ae038..df07adef22 100644 --- a/site/data/sidebar.yml +++ b/site/data/sidebar.yml @@ -225,7 +225,6 @@ - title: Float draft: true - title: Interactions - draft: true - title: Link draft: true - title: Object fit