scss: add variables to control field and button outline, for a11y (#34811)

This commit is contained in:
Frédéric Péters 2019-07-13 18:23:17 +02:00
parent b9c8044cd9
commit a5e7ae5a2c
9 changed files with 93 additions and 6 deletions

View File

@ -436,6 +436,16 @@ paramètre, la deuxième sa description et la troisième la valeur par défaut.
<td><p>Taille de l'arrondi à appliquer aux boutons</p></td>
<td><p><var>$border-radius</var></p></td>
</tr>
<tr>
<td><p><code>$button-focus-outline</code></p></td>
<td><p>Style du contour des boutons quand ils sont actifs</p></td>
<td><p><var>$widget-focus-outline</var></p></td>
</tr>
<tr>
<td><p><code>$button-focus-outline-offset</code></p></td>
<td><p>Décalage du contour des boutons quand ils ont actifs</p></td>
<td><p><var>$widget-focus-outline-offset</var></p></td>
</tr>
<tr>
<td><p><code>$widget-background</code></p></td>
<td><p>Couleur de fond des champs de formulaire (texte, liste…)</p></td>
@ -466,6 +476,16 @@ paramètre, la deuxième sa description et la troisième la valeur par défaut.
<td><p>Style de bordure des champs de formulaire lorsqu'ils sont actifs (texte, liste…)</p></td>
<td><p><var>$widget-border</var></p></td>
</tr>
<tr>
<td><p><code>$widget-focus-outline</code></p></td>
<td><p>Style du contour des champs de formulaire quand ils sont actifs</p></td>
<td><p><var>none</var></p></td>
</tr>
<tr>
<td><p><code>$widget-focus-outline-offset</code></p></td>
<td><p>Décalage du contour des champs de formulaire quand ils sont actifs</p></td>
<td><p><var>0</var></p></td>
</tr>
<tr>
<td><p><code>$widget-border-radius</code></p></td>
<td><p>Taille de l'arrondi à appliquer aux champs de formulaire (texte, liste…)</p></td>

View File

@ -15,6 +15,11 @@ $widget-border-radius: 0 !default;
$widget-focus-background: inherit !default;
$widget-focus-border: $widget-border !default;
$widget-focus-color: $widget-color !default;
$widget-focus-outline: none !default;
$widget-focus-outline-offset: 0 !default;
$button-focus-outline: $widget-focus-outline !default;
$button-focus-outline-offset: $widget-focus-outline-offset !default;
$widget-custom-radio-checkbox: false !default;
$widget-custom-radio-checkbox-color: $button-background !default;
@ -82,7 +87,9 @@ div.buttons div {
cursor: pointer;
border: $button-border;
border-radius: $button-border-radius;
transition: all 0.2s ease;
transition: background 0.5s ease;
transition: color 0.5s ease;
transition: border 0.5s ease;
margin-right: 1.5em;
vertical-align: middle;
box-shadow: 1px 0px 5px rgba(0, 0, 0, 0.21);
@ -100,6 +107,15 @@ div.buttons div {
background: grayscale($button-background);
color: grayscale($button-color);
}
&:focus {
@if $button-focus-outline == none {
outline: 1px dotted $button-background;
} @else {
outline: $button-focus-outline;
outline-offset: $button-focus-outline-offset;
}
}
}
.fargo-pick-popup button,
@ -130,15 +146,20 @@ input, input[type="text"], input[type="email"], input[type="password"], input[ty
border-radius: $widget-border-radius;
box-sizing: border-box;
margin: 0.2em 0px;
outline: medium none;
padding: 0.4em 0.7em 0.4em 0.7em;
max-width: 100%;
transition: all 0.5s ease;
transition: background 0.5s ease;
transition: color 0.5s ease;
transition: border 0.5s ease;
&:focus:not([readonly]) {
background-color: $widget-focus-background;
border: $widget-focus-border;
color: $widget-focus-color;
}
&:focus {
outline: $widget-focus-outline;
outline-offset: $widget-focus-outline-offset;
}
}
select option {
@ -177,6 +198,15 @@ input[type="checkbox"],
input[type="radio"] {
margin-right: 0.7em;
margin-bottom: 0.7em;
&:focus {
@if $widget-focus-outline == none {
outline: $widget-border;
outline-style: dotted;
} @else {
outline: $widget-focus-outline;
outline-offset: $widget-focus-outline-offset;
}
}
}
div.content label {
@ -271,6 +301,10 @@ span.select2-container {
border: $widget-focus-border;
}
}
&.select2-container--focus span.select2-selection--single {
outline: $widget-focus-outline;
outline-offset: $widget-focus-outline-offset;
}
.select2-choices,
.select2-choice {
box-shadow: none;
@ -358,8 +392,7 @@ div.select2-search {
top: calc(0.33rem + 2px);
left: 2px;
}
}
}
&:checked + span::after {
background: $widget-custom-radio-checkbox-color;
}
@ -368,7 +401,13 @@ div.select2-search {
}
&:focus + span {
outline: 1px dotted $widget-custom-radio-checkbox-color;
@if $widget-focus-outline == none {
outline: $widget-border;
outline-style: dotted;
} @else {
outline: $widget-focus-outline;
outline-offset: $widget-focus-outline-offset;
}
}
}
}

View File

@ -123,6 +123,15 @@ div#login-methods input {
}
}
.block-fc a.button:focus {
@if $button-focus-outline == none {
outline: 1px dotted $button-background;
} @else {
outline: $button-focus-outline;
outline-offset: $button-focus-outline-offset;
}
}
#profile span.label {
color: lighten($font-color, 20%);
font-size: 90%;

View File

@ -589,6 +589,16 @@ div.file-upload-widget {
box-sizing: border-box;
border: $widget-border;
border-radius: $widget-border-radius;
&:focus-within {
border: $widget-focus-border;
@if $widget-focus-outline == none {
outline: $widget-border;
outline-style: dotted;
} @else {
outline: $widget-focus-outline;
outline-offset: $widget-focus-outline-offset;
}
}
height: 150px;
position: relative;
text-align: center;

View File

@ -52,6 +52,8 @@ $widget-background: white;
$widget-background-focus: white;
$widget-border-radius: 0px;
$widget-border: 1px solid $darkblue;
$button-focus-outline: 2px solid $blue;
$button-focus-outline-offset: 1px;
$carrousel-height: 170px;
$carrousel-navigation-bullet-border: 2px solid $darkblue;

View File

@ -24,4 +24,7 @@ $body-background: white;
$widget-background: white;
$widget-border: 1px solid #AAA;
$widget-border-radius: 0;
$widget-focus-border: $widget-border;
$widget-focus-outline: none;
$button-focus-outline: none;
$nav-mobile-mode: none;

View File

@ -16,3 +16,4 @@ $footer-background: #3a3a3a;
$footer-color: #b4b4b4;
$footer-menucell-separator: 1px solid #b4b4b4;
$nav-mobile-mode: none;
$button-focus-outline: none;

View File

@ -12,3 +12,4 @@ $button-color: rgb(49, 69, 93);
$cell-border: 0;
$cell-title-cover-border: false;
$nav-mobile-mode: none;
$button-focus-outline: none;

View File

@ -34,6 +34,8 @@ $widget-border: 2px solid #e4e4e4;
$widget-focus-background: white;
$widget-focus-border: 2px solid #4b4b4b;
$widget-unique-checkbox-position: left;
$button-focus-outline: 2px solid $red;
$button-focus-outline-offset: 1px;
$mobile-navigation-height: 64px;