Skip to content

Alert

Le composant Alert permet d'afficher des messages importants et contextuels à l'utilisateur, tels que des confirmations, avertissements, erreurs ou informations générales.

Exemples d'utilisation

Alert basique

vue
<template>
  <SuAlert 
    title="Titre de l'alerte" 
    description="Ceci est une description de l'alerte." 
  />
</template>

Types d'alertes

vue
<template>
  <SuAlert 
    type="success"
    title="Succès" 
    description="L'opération a été réalisée avec succès." 
  />
  <SuAlert 
    type="warning"
    title="Attention" 
    description="Cette action est irréversible." 
  />
  <SuAlert 
    type="error"
    title="Erreur" 
    description="Une erreur s'est produite." 
  />
  <SuAlert 
    type="info"
    title="Information" 
    description="Nouvelle fonctionnalité disponible." 
  />
</template>

Alert avec slots personnalisés

vue
<template>
  <SuAlert type="success">
    <template #title>
      <strong>Titre personnalisé</strong>
    </template>
    <template #description>
      <p>Description avec <em>contenu riche</em> et <a href="#">liens</a>.</p>
    </template>
  </SuAlert>
</template>

Alert fermable

vue
<script setup>
const handleDismiss = () => {
  console.log('Alert fermée')
}
</script>

<template>
  <SuAlert 
    type="info" 
    title="Notification" 
    description="Cette alerte peut être fermée."
    dismissible
    @dismiss="handleDismiss"
  />
</template>

API

Props

Attributs d'accessibilité

Attributs de validation HTML

Events

Slots

Accessibilité

Le composant Alert respecte les normes WCAG 2.1 AA et les bonnes pratiques W3C pour assurer une expérience accessible à tous les utilisateurs.

Fonctionnalités d'accessibilité

  • Rôle ARIA approprié : Utilise role="alert" pour identifier l'élément comme une alerte
  • Annonces screen reader : Support de aria-live avec différents niveaux de politesse (assertive pour les alertescritiques, polite pour les informations)
  • Navigation au clavier : Le bouton de fermeture est entièrement navigable et actionnable au clavier
  • Contraste des couleurs : Les couleurs respectent les ratios de contraste WCAG AA
  • Support RTL : Interface adaptée aux langues de droite à gauche
  • Mode sombre : Thème adapté aux préférences système
  • Haute contraste : Adaptation aux paramètres de contraste élevé
  • Réduction des animations : Respect des préférences de réduction de mouvemen

Exemples d'usage avancés

Gestion d'état d'alerte

vue
<script setup>
import { ref } from 'vue'

const alerts = ref([
  { id: 1, type: 'success', title: 'Succès', description: 'Opération réussie', visible: true },
  { id: 2, type: 'error', title: 'Erreur', description: 'Échec de l\'opération', visible: true }
])

const removeAlert = (id) => {
  const index = alerts.value.findIndex(alert => alert.id === id)
  if (index > -1) {
    alerts.value.splice(index, 1)
  }
}
</script>

<template>
  <div class="alert-container">
    <SuAlert
      v-for="alert in alerts"
      :key="alert.id"
      :type="alert.type"
      :title="alert.title"
      :description="alert.description"
      dismissible
      @dismiss="removeAlert(alert.id)"
    />
  </div>
</template>

Publié sous licence MIT.