Logo - DsfrLogo
🌟 Introduction
Le composant DsfrLogo
est utilisé pour afficher le logo institutionnel du Gouvernement français, en respectant les spécifications du Design System de l'État Français (DSFR). Ce composant permet d'afficher un texte simple ou multi-lignes représentant le logo, avec des options pour ajuster la taille.
📐 Structure
Le composant affiche un élément <p>
avec la classe CSS fr-logo
, et des classes supplémentaires pour les variations de taille. Le texte du logo peut être personnalisé pour répondre à vos besoins.
🛠️ Props
Nom | Type | Défaut | Description |
---|---|---|---|
small | boolean | false | Affiche le logo en petite taille (fr-logo--sm ). |
large | boolean | false | Affiche le logo en grande taille (fr-logo--lg ). |
logoText | `string | string[]` | 'Gouvernement' |
📡 Événements
Aucun événement spécifique n'est émis par ce composant.
🧩 Slots
Aucun slot disponible pour ce composant.
📝 Exemples
Exemple de base
vue
<DsfrLogo />
Résultat : Affiche le texte "Gouvernement" avec le style par défaut.
Exemple avec un texte personnalisé
vue
<DsfrLogo logoText="République Française" />
Résultat : Affiche le texte "République Française".
Exemple avec un texte sur plusieurs lignes
vue
<DsfrLogo :logoText="['Ministère de', 'l\'Éducation Nationale']" />
Exemple complet
vue
<script lang="ts" setup>
import DsfrLogo from '../DsfrLogo.vue'
const logoText = ['République', 'Française']
const small = false
const large = false
</script>
<template>
<DsfrLogo
:small="small"
:large="large"
:logo-text="logoText"
/>
</template>
⚙️ Code source du composant
vue
<script lang="ts" setup>
import { computed } from 'vue'
import type { DsfrLogoProps } from './DsfrLogo.types'
export type { DsfrLogoProps }
const props = withDefaults(defineProps<DsfrLogoProps>(), {
logoText: () => 'Gouvernement',
})
const text = computed(() => Array.isArray(props.logoText) ? props.logoText.join('<br>') : props.logoText)
</script>
<template>
<p
class="fr-logo"
:class="{
'fr-logo--sm': small && !large,
'fr-logo--lg': large && !small,
}"
v-html="text"
/>
</template>
ts
export type DsfrLogoProps = {
small?: boolean
large?: boolean
logoText?: string | string[]
}