Skip to content

Commit bc3ea19

Browse files
DaBadBunnylaruiss
authored andcommitted
docs: 📝 Création de la doc vitepress pour DsfrCard
1 parent 9b451f4 commit bc3ea19

File tree

4 files changed

+85
-2
lines changed

4 files changed

+85
-2
lines changed

.vitepress/config.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,17 @@ export default defineConfig({
9393
text: 'DsfrAlert',
9494
link: '/composants/DsfrAlert.md',
9595
},
96+
{
97+
text: 'DsfrBackToTop',
98+
link: '/composants/DsfrBackToTop.md',
99+
},
96100
{
97101
text: 'DsfrBadge',
98102
link: '/composants/DsfrBadge.md',
99103
},
100104
{
101-
text: 'DsfrBackToTop',
102-
link: '/composants/DsfrBackToTop.md',
105+
text: 'DsfrCard',
106+
link: '/composants/DsfrCard.md',
103107
},
104108
{
105109
text: 'DsfrRange',

docs/composants.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@
77
## Badges et tags
88

99
- [Badge](./composants/DsfrBadge)
10+
11+
## Carte
12+
13+
- [DsfrCard](./composants/DsfrCard)
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Carte - `DsfrCard`
2+
3+
La carte est un aperçu d'une page et un lien vers cette dernière. Elle fait généralement partie d'une liste de contenus similaires.
4+
5+
La carte existe en trois tailles (LG, MD, SM) et deux formats (horizontal et vertical) déclinés sur deux supports (desktop et mobile). Les cartes horizontales sont réservées au desktop (en mobile, une carte horizontale devient verticale).
6+
7+
## Structure
8+
9+
Une carte se compose des éléments suivants :
10+
11+
- un titre (prop **`title`**, de type `string`), reprenant celui de l’objet visé (page de destination, action, site).
12+
- un lien (prop **`link`**, de type `string`), sur le titre de la carte.
13+
- une image (prop **`imgSrc`**, de type `string`), issue ou en lien avec la page de destination à laquelle on peut ajouter une description textuelle de l'image (prop **`altImg`**, de type `string`), ce texte alternatif sera affiché sur la page si l'image ne peut pas être chargée et sera très utile pour l'accessibilité.
14+
- une zone destinée à d'éventuels détails (prop **`detail`**, de type `string`).
15+
- une description (prop **`description`**, de type `string`), de 5 lignes maximum (tronquée au-delà).
16+
- une icône illustrative (par défaut, une flèche) - optionnelle peut se désactiver (prop **`noArrow`**, de type `boolean`).
17+
- une zone d’action, composée de boutons (prop **`buttons`**, un tableau d'objets pouvant contenir les props à passer à chaque bouton (cf le composant `DsfrButton` afin de connaître les props à passer)).
18+
- une zone d’action, composée de liens (prop **`linksGroup`**, un tableau d'objets composé de la propriété **`label`** (`string`),et de **`link`** (`string`) s'il s'agit d'un lien interne au site ou à l'application, ou de **`href`** (`string`) s'il s'agit d'un lien externe).
19+
20+
Autres props :
21+
22+
- la taille de la carte (prop **`size`**, de type `string`) qui peut prendre plusieurs valeurs: `md`, `medium`, `large`, `lg`, `sm`, `small`.
23+
- la balise du titre (prop **`titleTag`**, de type `string`) afin de respecter la hiérarchie des titres. Valeurs possibles: `h1`, `h2`, `h3`, `h4`, `h5`, `h6`.
24+
- l'orientation de la carte (verticale par défaut) (prop **`horizontal`**, de type `boolean`) pour la basculer à l'horizontal.
25+
- une variante de carte indiquant que l’évènement de clic lancera un téléchargement (prop **`download`**, de type `boolean`).
26+
27+
## Les props
28+
29+
| nom | type | défaut | obligatoire |
30+
| ---------------------- | --------- | --------------- | ----------- |
31+
| `altImg` | *`string`* | | non |
32+
| `buttons` | *`object`* | | non |
33+
| `detail` | *`string`* | | non |
34+
| `description` | *`string`* | | oui |
35+
| `download` | *`boolean`* | | non |
36+
| `horizontal` | *`boolean`* | | non |
37+
| `imgSrc` | *`string`* | | non |
38+
| `link` | *`string`* | | non |
39+
| `linksGroup` | *`object`* | | non |
40+
| `size` | *`string`* | `'md'` | non |
41+
| `title` | *`string`* | | oui |
42+
| `titleTag` | [*`TitleTag`*](/docs/types.md#title-tag "'h1' \| 'h2' \| 'h3' \| 'h4' \| 'h5' \| 'h6'") | `'h3'` | non |
43+
44+
## Un exemple complet
45+
46+
<Story data-title="Démo" min-h="530px">
47+
<DsfrCardDemo />
48+
</Story>
49+
50+
<<< docs-demo/DsfrCardDemo.vue [Code de la démo]
51+
52+
<script setup lang="ts">
53+
import DsfrCardDemo from './docs-demo/DsfrCardDemo.vue'
54+
</script>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<script lang="ts" setup>
2+
import { ref } from 'vue'
3+
4+
import DsfrCard from '../DsfrCard.vue'
5+
6+
const link = ref('https://www.systeme-de-design.gouv.fr/')
7+
const description = ref('Description sommaire de la carte')
8+
const detail = ref('Détails sur la carte en question')
9+
const altImg = ref('Un adorable chaton')
10+
const imgSrc = ref('https://placekitten.com/300/200')
11+
</script>
12+
13+
<template>
14+
<DsfrCard
15+
:imgSrc="imgSrc"
16+
:link="link"
17+
:description="description"
18+
:detail="detail"
19+
:altImg="altImg"
20+
/>
21+
</template>

0 commit comments

Comments
 (0)