Skip to content

Commit ed536cd

Browse files
committed
docs: 📝 égaye et homogénéise les docs vitepress
1 parent 661fa7e commit ed536cd

File tree

15 files changed

+286
-86
lines changed

15 files changed

+286
-86
lines changed

.vitepress/config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ export default defineConfig({
8585
link: '/composants',
8686
collapsed: false,
8787
items: [
88+
{
89+
text: 'DsfrAccordion',
90+
link: '/composants/DsfrAccordion.md',
91+
},
8892
{
8993
text: 'DsfrAlert',
9094
link: '/composants/DsfrAlert.md',

.vitepress/theme/icons.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ export {
77
SiGithub,
88
SiNpm,
99
SiVisualstudiocode,
10+
ViFileTypeStorybook,
1011
} from 'oh-vue-icons/icons'

.vitepress/theme/style.css

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,3 +160,29 @@
160160
.vp-doc summary {
161161
cursor: pointer;
162162
}
163+
164+
.demo-container-col {
165+
display: flex;
166+
flex-direction: column;
167+
gap: 1rem;
168+
}
169+
170+
.flex {
171+
display: flex;
172+
}
173+
174+
.justify-between {
175+
justify-content: space-between;
176+
}
177+
178+
.justify-center {
179+
justify-content: center;
180+
}
181+
182+
.gap-4 {
183+
gap: 1rem;
184+
}
185+
186+
.w-full {
187+
width: 100%;
188+
}

docs/_frame.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
layout: false
33
---
44

5-
<div ref="el" class="flex h-4 flex-col justify-center px-6 pb-5"></div>
5+
<div ref="el" class="flex h-4 flex-col px-6 pb-5"></div>
66

77
<script setup lang="ts">
88
import { useStyleTag } from '@vueuse/core'

src/components/DsfrAccordion/DsfrAccordion.md

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
# Accordéon - `DsfrAccordion`
22

3+
## 🌟 Introduction
4+
35
Les accordéons permettent aux utilisateurs d'afficher et de masquer des sections de contenu présentés dans une page.
46

5-
## Structure
7+
🏅 La documentation sur l’accordéon sur le [DSFR](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/accordeon)
8+
9+
<VIcon name="vi-file-type-storybook" /> La story sur l’accordéon sur le storybook de [VueDsfr](https://vue-dsfr.netlify.app/?path=/docs/composants-dsfraccordion--docs)
10+
11+
## 📐 Structure
612

713
Un accordéon est constitué des éléments suivants :
814

@@ -16,16 +22,16 @@ Autres props :
1622
- **`id`** : identifiant du contenu de l’accordéon, qui est utilisé aussi pour l’attribut `aria-controls` du bouton qui permet de plier et déplier l’accordéon
1723
- **`expandedId`** : identifiant de l’accordéon actuellement déplié (pour savoir si l’accordéon doit être déplié)
1824

19-
## Les props
25+
## 🛠️ Les props
2026

21-
| nom | type | défaut | obligatoire |
22-
| ----------------------- | --------- | ---------------- | -------- |
23-
| `title` | *`string`* | | oui |
27+
| nom | type | défaut | obligatoire |
28+
| ----------------------- | --------- | ---------------- | -------- |
29+
| `title` | *`string`* | | |
2430
| `titleTag` | [*`TitleTag`*](/docs/types.md#title-tag "'h1' \| 'h2' \| 'h3' \| 'h4' \| 'h5' \| 'h6'") | `'h3'` | |
2531
| `id` | *`string`* | *random string* | |
26-
| `expandedId` | *`string`* | *`undefined`* | |
32+
| `expandedId` | *`string`* | *`undefined`* | |
2733

28-
## Les événements
34+
## 📡 Les événements
2935

3036
`DsfrAccordion` déclenche l’événement `'expand'` au clic sur le titre de l’accordéon.
3137

@@ -35,7 +41,11 @@ Autres props :
3541

3642
Ceci permet de récupérer l’id et de passer la prop **`expandedId`** à tous les accordéons du groupe (voir le code de la démo ci-dessous).
3743

38-
## Les groupes d’accordéons - `DsfrAccordionGroup`
44+
## 🧩 Les slots
45+
46+
`DsfrAccordion` possède un slot par défaut pour le contenu de l’accordéon.
47+
48+
## 🏗️ Les groupes d’accordéons - `DsfrAccordionGroup`
3949

4050
Un accordéon prend plus de sens lorsqu’il fait partie d’un groupe (comme nous tous, non ?).
4151

@@ -94,7 +104,7 @@ et
94104
Cf. la [documentation Vue](https://vuejs.org/guide/essentials/event-handling.html#accessing-event-argument-in-inline-handlers) pour plus de détails.
95105
:::
96106

97-
## Un exemple complet
107+
## 📝 Un exemple complet
98108

99109
::: code-group
100110

src/components/DsfrAlert/DsfrAlert.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
# Alertes - `DsfrAlert`
22

3+
## 🌟 Introduction
4+
35
Les alertes permettent d’attirer l’attention de l’utilisateur sur une information sans interrompre sa tâche en cours.
46

57
L’alerte est disponible en deux tailles :
68

79
- taille médium (MD, par défaut, si la prop `small` est absente ou à `false`) et
810
- petite taille ‘SM’ si la prop `small` est à `true`.
911

10-
La documentation sur l’alerte sur le [DSFR](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/alerte)
12+
🏅 La documentation sur l’alerte sur le [DSFR](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/alerte)
1113

12-
La story sur l’alerte sur le storybook de [VueDsfr](https://vue-dsfr.netlify.app/?path=/docs/composants-dsfralert--docs)
14+
<VIcon name="vi-file-type-storybook" /> La story sur l’alerte sur le storybook de [VueDsfr](https://vue-dsfr.netlify.app/?path=/docs/composants-dsfralert--docs)
1315

14-
## Structure
16+
## 📐 Structure
1517

1618
L’alerte est composée des éléments suivants :
1719

@@ -33,28 +35,28 @@ Autres props :
3335
- `closed` sert à indiquer si l’alerte doit être présente (`false`) ou non (`true`) dans le DOM.
3436
- `titleTag` permet d’indiquer la balise à utiliser pour le `title` : il s’agit de `h3` par défaut, cependant, pour passer les tests RGAA, il faut que les niveaux de titres se suivent et soient cohérents (par exemple, si sur la page il n’y a pas de `<h2>`, il faut passer `'h2'` comme valeur à la prop `titleTag` pour que le titre de la modal soit un `<h2>`).
3537

36-
## Les props
38+
## 🛠️ Les props
3739

3840
| nom | type | défaut | obligatoire |
3941
| ----------------------- | --------- | ---------------- | -------- |
4042
| `id` | *`string`* | *random string* | |
4143
| `type` | *`'info' \| 'success' \| 'warning' \| 'error'`* | `'info'` |
4244
| `title` | *`string`* | `''` | |
43-
| `description` | *`string`* | | oui |
45+
| `description` | *`string`* | | |
4446
| `titleTag` | [*`TitleTag`*](/docs/types.md#title-tag "'h1' \| 'h2' \| 'h3' \| 'h4' \| 'h5' \| 'h6'") | `'h3'` | |
4547
| `small` | *`boolean`* | `false` | |
4648
| `closed` | *`boolean`* | `false` | |
4749
| `closeable` | *`boolean`* | `false` | |
4850

49-
## Les événements
51+
## 📡 Les événements
5052

5153
`DsfrAlert` déclenche l’événement `'close'` lors du clic sur le bouton pour fermer l’alerte, sans données (sans *payload*).
5254

5355
| nom | donnée (*payload*) |
54-
| ---------------------- | --------- |
55-
| `'close'` | *aucune* |
56+
| ---------------------- | --------- |
57+
| `'close'` | *aucune* |
5658

57-
## Toutes les variantes d’Alertes
59+
## 📝 Toutes les variantes 🌈 d’Alertes
5860

5961
::: code-group
6062

src/components/DsfrBackToTop/DsfrBackToTop.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Retour en haut de page - `DsfrBackToTop`
22

3+
## 🌟 Introduction
4+
35
Bonjour et bienvenue à cette page de documentation incroyablement utile (et légèrement humoristique) pour notre composant `DsfrBackToTop`. Ce composant est votre meilleur ami pour permettre aux utilisateurs de remonter en haut de la page avec style et élégance. Et oui, même dans le monde du code, la classe, ça compte !
46

57
Dans les pages de contenu longues, il est possible de proposer un bouton de retour en haut de page à la fin du contenu.
@@ -13,11 +15,15 @@ Le lien de retour en haut de page se place à la fin du contenu de la page, avan
1315

1416
Si il y a des bloc de poursuite de lecture (liens vers d’autres articles), il est conseillé de placer le retour en haut de page avant ces blocs.
1517

18+
🏅 La documentation sur le retour en haut de page sur le [DSFR](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/retour-en-haut-de-page/)
19+
20+
<VIcon name="vi-file-type-storybook" /> La story sur le retour en haut de page sur le storybook de [VueDsfr](https://vue-dsfr.netlify.app/?path=/docs/composants-dsfrbacktotop--docs)
21+
1622
## Aperçu
1723

1824
`DsfrBackToTop` est un composant simple mais chic, permettant d'ajouter un lien de retour en haut de la page dans vos applications Vue. Il intègre un style distinctif et des options de positionnement pour s'adapter parfaitement à votre mise en page.
1925

20-
## Props
26+
## 🛠️ Les props
2127

2228
Notre composant est assez flexible et comprend les props suivantes :
2329

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,64 @@
11
# Badges - `DsfrBadge`
2+
3+
## 🌟 Introduction
4+
5+
Le `DsfrBadge` est le super-héros des petites étiquettes ! Ce composant Vue est idéal pour afficher des informations courtes et importantes, comme des catégories, des étiquettes ou des statuts. C'est comme le fromage sur votre pizza : petit mais essentiel !
6+
7+
🏅 La documentation sur le badge sur le [DSFR](https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/badge)
8+
9+
<VIcon name="vi-file-type-storybook" /> La story sur le badge sur le storybook de [VueDsfr](https://vue-dsfr.netlify.app/?path=/docs/composants-dsfrbadge--docs)
10+
11+
## 📐 Structure
12+
13+
- Le composant est un élément `p` avec la classe `fr-badge`.
14+
- Les props permettent de modifier l'apparence du badge selon les props : type (), présence d'icône, taille et gestion du texte trop long.
15+
- Le `label` est affiché à l'intérieur d'un `span`, potentiellement avec la prop `ellipsis` et une taille définie ou maximale pour gérer le texte tronqué.
16+
17+
## 🛠️ Les props
18+
19+
| Nom | Type | Défaut | Obligatoire | Description |
20+
| --- | --- | --- | --- | --- |
21+
| `type` | `'success' \| 'warning' \| 'error' \| 'info'` | 'info' | | Définit le type de badge et change la couleur du badge en fonction du type. |
22+
| `label` | `string` | || Le texte à afficher dans le badge. |
23+
| `noIcon` | `boolean` | `false` | | Si `true`, le badge s'affiche sans icône. |
24+
| `small` | `boolean` | `false` | | Si `true`, affiche un badge de taille réduite. |
25+
| `ellipsis` | `boolean` | `false` | | Si `true`, le texte est tronqué avec des points de suspension s'il est trop long. |
26+
27+
## 📝 Exemples d'utilisation
28+
29+
```vue
30+
<template>
31+
<DsfrBadge
32+
type="success"
33+
label="Approuvé"
34+
/>
35+
</template>
36+
```
37+
38+
```vue
39+
<template>
40+
<DsfrBadge
41+
type="info"
42+
label="Titre peut-être un peu trop long"
43+
ellipsis
44+
style="max-width=150px;"
45+
/>
46+
</template>
47+
```
48+
49+
::: code-group
50+
51+
<Story data-title="Démo" min-h="400px">
52+
<DsfrBadgeExample />
53+
</Story>
54+
55+
<<< docs-demo/DsfrBadgeExample.vue [Code de la démo]
56+
57+
<<< DsfrBadge.vue
58+
:::
59+
60+
Voilà, le DsfrBadge est prêt à illuminer vos interfaces comme les lumières de la Tour Eiffel illuminent Paris la nuit. Utilisez-le pour mettre en avant ces petits détails qui font toute la différence. À vos badges, prêts, partez ! 🚀💡
61+
62+
<script setup lang="ts">
63+
import DsfrBadgeExample from './docs-demo/DsfrBadgeExample.vue'
64+
</script>

src/components/DsfrBadge/DsfrBadge.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ withDefaults(defineProps<DsfrBadgeProps>(), {
1616
'fr-badge--no-icon': noIcon,
1717
'fr-badge--sm': small,
1818
}"
19+
:title="ellipsis ? label : undefined"
1920
>
2021
<span :class="ellipsis ? 'fr-ellipsis' : ''">
2122
{{ label }}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<script lang="ts" setup>
2+
import DsfrBadge from '../DsfrBadge.vue'
3+
</script>
4+
5+
<template>
6+
<div class="flex justify-center w-full gap-4">
7+
<div class="demo-container-col">
8+
<DsfrBadge
9+
label="Badge défaut"
10+
/>
11+
<DsfrBadge
12+
label="Badge succès"
13+
type="success"
14+
/>
15+
<DsfrBadge
16+
label="Badge danger"
17+
type="warning"
18+
/>
19+
<DsfrBadge
20+
label="Badge erreur"
21+
type="error"
22+
/>
23+
<DsfrBadge
24+
label="Badge info"
25+
type="info"
26+
/>
27+
<DsfrBadge
28+
label="Badge 'none'"
29+
type="none"
30+
/>
31+
</div>
32+
<div class="demo-container-col">
33+
<DsfrBadge
34+
label="Badge petit défaut"
35+
small
36+
/>
37+
<DsfrBadge
38+
label="Badge petit succès"
39+
type="success"
40+
small
41+
/>
42+
<DsfrBadge
43+
label="Badge petit danger"
44+
type="warning"
45+
small
46+
/>
47+
<DsfrBadge
48+
label="Badge petit erreur"
49+
type="error"
50+
small
51+
/>
52+
<DsfrBadge
53+
label="Badge petit info"
54+
type="info"
55+
small
56+
/>
57+
<DsfrBadge
58+
label="Badge petit 'none'"
59+
type="none"
60+
small
61+
/>
62+
</div>
63+
<div class="demo-container-col">
64+
<DsfrBadge
65+
label="Badge avec un titre un petit peu trop long"
66+
type="info"
67+
ellipsis
68+
style="max-width: 200px;"
69+
/>
70+
</div>
71+
</div>
72+
</template>

0 commit comments

Comments
 (0)