diff --git a/app/assets/css/malio.css b/app/assets/css/malio.css index 2d5f716..95c5667 100644 --- a/app/assets/css/malio.css +++ b/app/assets/css/malio.css @@ -2,6 +2,24 @@ @tailwind components; @tailwind utilities; +@layer components { + /* Anneau de focus clavier standard (navigation au Tab), invisible à la souris. + Deux déclencheurs, même rendu : + - .m-focus-ring → s'appuie sur :focus-visible natif. Pour les éléments + où :focus-visible se limite déjà au clavier (boutons, + onglets, tuiles, checkbox/radio…). + - .m-focus-ring-kbd → classe ajoutée en JS (via useKbdFocusRing) uniquement + quand le focus vient du clavier. Pour les champs texte, + où :focus-visible natif se déclenche aussi à la souris. + Le `:focus` sur .m-focus-ring-kbd élève la spécificité pour passer devant le + `outline-none` des inputs. */ + .m-focus-ring:focus-visible, + .m-focus-ring-kbd:focus { + outline: 2px solid rgb(var(--m-primary) / 1); + outline-offset: 2px; + } +} + @layer base { :root { /* ── Globales ── */ diff --git a/app/components/malio/input/InputEmail.vue b/app/components/malio/input/InputEmail.vue index 95bb5a7..7ed98dc 100644 --- a/app/components/malio/input/InputEmail.vue +++ b/app/components/malio/input/InputEmail.vue @@ -19,8 +19,8 @@ type="email" inputmode="email" @input="onInput" - @focus="isFocused = true" - @blur="isFocused = false" + @focus="isFocused = true; onKbdFocus()" + @blur="isFocused = false; onKbdBlur()" >