Skip to content

BeeModal ​

Une boîte de dialogue centrée, qui bloque la page derrière elle. Le focus clavier reste à l'intérieur, Échap la ferme, et le focus revient sur le bouton qui l'a ouverte.

ts
import { BeeModal } from "@thaisrr/beedesign";
import "@thaisrr/beedesign/style.css";

Utilisation ​

L'ouverture se pilote avec v-model:open. Le titre est obligatoire : il s'affiche dans l'en-tête et sert de nom accessible à la boîte de dialogue. Le contenu se place dans le slot par défaut.

Largeur ​

La prop width accepte n'importe quelle largeur CSS. La valeur par défaut, min(90vw, var(--bd-overlay-width)) (448 px par défaut), garde une marge sur mobile.

Titre masqué ​

Avec hide-title, le titre n'est plus visible mais reste annoncé par les lecteurs d'écran. C'est utile quand l'affichage se suffit à lui-même, comme un menu de navigation.

Retour du focus ​

À la fermeture, le focus revient automatiquement sur l'élément qui l'avait à l'ouverture, généralement le bouton déclencheur. Si le déclencheur n'est plus dans la page ou doit être un autre élément, passez-le avec return-focus-el.

API ​

Props ​

NomTypeDéfautDescription
titlestringTitre et nom accessible de la modale. Obligatoire.
openbooleanOuverture, à utiliser avec v-model:open. Obligatoire.
widthstring"min(90vw, 418px)"Largeur CSS de la modale.
hideTitlebooleanfalseCache le titre visuellement, le garde pour les lecteurs d'écran.
closeLabelstring"Close"Texte accessible du bouton de fermeture.
returnFocusElHTMLElement | nullnullÉlément qui reprend le focus à la fermeture.
panelIdstringgénéréId du panneau, pour un aria-controls externe.

Événements ​

NomPayloadDescription
update:openbooleanÉmis avec false au clic sur le fond, sur le bouton de fermeture, ou sur Échap.

Slots ​

NomDescription
defaultContenu de la modale.

Variables CSS utilisées ​

--bd-color-overlay, --bd-z-modal, --bd-color-surface, --bd-color-border, --bd-color-text, --bd-color-primary-light, --bd-color-primary-medium, --bd-color-primary-dark, --bd-color-focus, --bd-font-main, --bd-font-title, --bd-font-size-lg, --bd-radius-md, --bd-radius-full, --bd-space-md, --bd-shadow-3, --bd-transition-fast, --bd-transition-base, --bd-border-width, --bd-close-size, --bd-overlay-width, --bd-focus-ring-width, --bd-focus-ring-width, --bd-focus-ring-offset.

Accessibilité ​

  • role="dialog" et aria-modal="true", nommée par son titre.
  • Le focus entre sur le bouton de fermeture à l'ouverture, Tab et Shift+Tab bouclent dans la modale.
  • Échap ferme la modale, le focus est rendu à la fermeture.
  • Le scroll de la page est bloqué tant que la modale est ouverte.
  • Les transitions sont désactivées si prefers-reduced-motion est activé.