Maison
Composants
Menu
Composant de menu
Dernière mise à jour: juil. 13, 2026
Menu vertical CSS Tailwind uniquement CSS pour les listes de navigation. États des éléments actifs, désactivés et icônes. Variantes de taille. WCAG AA accessible, fonctionne avec Django, HTMX, Laravel, React et n'importe quelle pile.
Les composants de menu affichent des listes organisées d'actions ou d'options de navigation. Construit avec des listes HTML sémantiques et des éléments de lien, le système de menus Frutjam prend en charge les dispositions verticales et horizontales, les menus imbriqués, les icônes et les états actifs. Entièrement accessibles grâce à la navigation au clavier, les menus s'intègrent parfaitement aux listes déroulantes, aux barres latérales et aux modèles de navigation contextuels.
CSS uniquement, aucun JavaScript requis. WCAG AA accessible et indépendant du framework – fonctionne avec Django, HTMX, Laravel, React et n'importe quelle pile.
Classe
Taper
Description
menu Base Liste verticale des éléments de navigation ou d'action
menu-item Modificateur Élément cliquable individuel dans le menu
menu-title Modificateur Étiquette de section non interactive
menu-horizontal Modificateur Disposition horizontale
menu-vertical Modificateur Disposition verticale (par défaut)
menu-active Modificateur Force l'état actif/mis en surbrillance sur un élément
menu-disabled Modificateur Apparence désactivée pour un élément de menu
menu-xs Taille Très petit
menu-sm Taille Petit
menu-md Taille Moyen (par défaut)
menu-lg Taille Grand
menu-xl Taille Très grand
Utilisation de base
< ul class = "menu menu-horizontal" >
< li >< a class = "menu-item" > Item 1</ a ></ li >
< li >< a class = "menu-item" > Item 2</ a ></ li >
< li >< a class = "menu-item" > Item 3</ a ></ li >
</ ul >
Afficher le code
< ul class = "menu menu-vertical" >
< li >< a class = "menu-item" > Item 1</ a ></ li >
< li >< a class = "menu-item" > Item 2</ a ></ li >
< li >< a class = "menu-item" > Item 3</ a ></ li >
</ ul >
Afficher le code
Menu avec icône et texte
< ul class = "menu menu-vertical lg:menu-horizontal" >
< li >< a class = "menu-item" > Item 1</ a ></ li >
< li >< a class = "menu-item" > Item 2</ a ></ li >
< li >< a class = "menu-item" > Item 3</ a ></ li >
</ ul >
Afficher le code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 < ul class = "menu menu-xs w-56" >
< li >< a class = "menu-item" > Xsmall 1</ a ></ li >
< li >< a class = "menu-item" > Xsmall 2</ a ></ li >
</ ul >
< ul class = "menu menu-sm w-56" >
< li >< a class = "menu-item" > Small 1</ a ></ li >
< li >< a class = "menu-item" > Small 2</ a ></ li >
</ ul >
< ul class = "menu menu-md w-56" >
< li >< a class = "menu-item" > Medium 1</ a ></ li >
< li >< a class = "menu-item" > Medium 2</ a ></ li >
</ ul >
< ul class = "menu menu-lg w-56" >
< li >< a class = "menu-item" > Large 1</ a ></ li >
< li >< a class = "menu-item" > Large 2</ a ></ li >
</ ul >
< ul class = "menu menu-xl w-56" >
< li >< a class = "menu-item" > Xlarge 1</ a ></ li >
< li >< a class = "menu-item" > Xlarge 2</ a ></ li >
</ ul >
Afficher le code
< ul class = "menu w-56" >
< li class = "menu-title" > Title</ li >
< li >< a class = "menu-item" > Item 1</ a ></ li >
< li >< a class = "menu-item" > Item 2</ a ></ li >
< li >< a class = "menu-item" > Item 3</ a ></ li >
</ ul >
Afficher le code
< ul class = "menu w-56" >
< li >
< h2 class = "menu-title" > Title</ h2 >
< ul >
< li >< a class = "menu-item" > Item 1</ a ></ li >
< li >< a class = "menu-item" > Item 2</ a ></ li >
< li >< a class = "menu-item" > Item 3</ a ></ li >
</ ul >
</ li >
</ ul >
Afficher le code
< ul class = "menu w-56" >
< li >< a class = "menu-item" > Enabled item</ a ></ li >
< li class = "menu-disabled" >< button disabled class = "menu-item" > disabled item</ button ></ li >
< li class = "menu-disabled" >< a class = "menu-item" aria-disabled = "true" > disabled item</ a ></ li >
</ ul >
Afficher le code
< ul class = "menu" >
< li >< a class = "menu-item" > Item 1</ a ></ li >
< li >< a class = "menu-item menu-active" > Item 2</ a ></ li >
< li >< a class = "menu-item" > Item 3</ a ></ li >
</ ul >
Afficher le code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 < ul class = "menu w-56" >
< li >< a class = "menu-item" > Item 1</ a ></ li >
< li >
< a class = "menu-item" > Parent</ a >
< ul >
< li >< a class = "menu-item" > Submenu 1</ a ></ li >
< li >< a class = "menu-item" > Submenu 2</ a ></ li >
< li >
< a class = "menu-item" > Parent</ a >
< ul >
< li >< a class = "menu-item" > Submenu 1</ a ></ li >
< li >< a class = "menu-item" > Submenu 2</ a ></ li >
</ ul >
</ li >
</ ul >
</ li >
< li >< a class = "menu-item" > Item 3</ a ></ li >
</ ul >
Afficher le code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 < ul class = "menu w-56" >
< li >< a class = "menu-item" > Item 1</ a ></ li >
< li >
< div class = "accordion accordion-flush" >
< details open >
< summary > Parent</ summary >
< div class = "accordion-content" >
< ul >
< li >< a class = "menu-item" > Submenu 1</ a ></ li >
< li >< a class = "menu-item" > Submenu 2</ a ></ li >
< li >
< div class = "accordion accordion-flush" >
< details open >
< summary > Parent</ summary >
< div class = "accordion-content" >
< ul >
< li >< a class = "menu-item menu-active" > Submenu 1</ a ></ li >
< li >< a class = "menu-item" > Submenu 2</ a ></ li >
</ ul >
</ div >
</ details >
</ div >
</ li >
</ ul >
</ div >
</ details >
</ div >
</ li >
< li >< a class = "menu-item" > Item 3</ a ></ li >
</ ul >
Afficher le code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 < ul class = "menu" >
< li >
< a class = "menu-item" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" >
</ path >
</ svg >
</ a >
</ li >
< li >
< a class = "menu-item" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "m21 21-4.34-4.34" />
< circle cx = "11" cy = "11" r = "8" />
</ svg >
</ a >
</ li >
< li >
< a class = "menu-item" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< circle cx = "12" cy = "8" r = "5" />
< path d = "M20 21a8 8 0 0 0-16 0" />
</ svg >
</ a >
</ li >
</ ul >
Afficher le code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 < ul class = "menu menu-horizontal" >
< li >
< a class = "menu-item" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" >
</ path >
</ svg >
</ a >
</ li >
< li >
< a class = "menu-item" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "m21 21-4.34-4.34" />
< circle cx = "11" cy = "11" r = "8" />
</ svg >
</ a >
</ li >
< li >
< a class = "menu-item" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< circle cx = "12" cy = "8" r = "5" />
< path d = "M20 21a8 8 0 0 0-16 0" />
</ svg >
</ a >
</ li >
</ ul >
Afficher le code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 < ul class = "menu" >
< li >
< a class = "menu-item tooltip tooltip-end" data-tip = "Home" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" >
</ path >
</ svg >
</ a >
</ li >
< li >
< a class = "menu-item tooltip tooltip-end" data-tip = "Search" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "m21 21-4.34-4.34" />
< circle cx = "11" cy = "11" r = "8" />
</ svg >
</ a >
</ li >
< li >
< a class = "menu-item tooltip tooltip-end" data-tip = "Profile" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< circle cx = "12" cy = "8" r = "5" />
< path d = "M20 21a8 8 0 0 0-16 0" />
</ svg >
</ a >
</ li >
</ ul >
Afficher le code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 < ul class = "menu menu-horizontal" >
< li >
< a class = "menu-item tooltip" data-tip = "Home" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" >
</ path >
</ svg >
</ a >
</ li >
< li >
< a class = "menu-item tooltip" data-tip = "Search" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< path d = "m21 21-4.34-4.34" />
< circle cx = "11" cy = "11" r = "8" />
</ svg >
</ a >
</ li >
< li >
< a class = "menu-item tooltip" data-tip = "Profile" >
< svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" viewBox = "0 0 24 24"
fill = "none" stroke = "currentColor" stroke-width = "2" stroke-linecap = "round" stroke-linejoin = "round" >
< circle cx = "12" cy = "8" r = "5" />
< path d = "M20 21a8 8 0 0 0-16 0" />
</ svg >
</ a >
</ li >
</ ul >
Afficher le code
Menu avec icônes et badge (responsive)
Arborescence des fichiers
< ul class = "menu menu-horizontal" >
< li >< a class = "menu-item" > Item 1</ a ></ li >
< li >
< a class = "menu-item" > Parent</ a >
< ul >
< li >< a class = "menu-item" > Submenu 1</ a ></ li >
< li >< a class = "menu-item" > Submenu 2</ a ></ li >
</ ul >
</ li >
< li >< a class = "menu-item" > Item 3</ a ></ li >
</ ul >
Afficher le code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 < ul class = "menu xl:menu-horizontal lg:min-w-max" >
< li >
< a class = "menu-item" > Solutions</ a >
< ul >
< li >< a class = "menu-item" > Design</ a ></ li >
< li >< a class = "menu-item" > Development</ a ></ li >
< li >< a class = "menu-item" > Hosting</ a ></ li >
< li >< a class = "menu-item" > Domain register</ a ></ li >
</ ul >
</ li >
< li >
< a class = "menu-item" > Enterprise</ a >
< ul >
< li >< a class = "menu-item" > CRM software</ a ></ li >
< li >< a class = "menu-item" > Marketing management</ a ></ li >
< li >< a class = "menu-item" > Security</ a ></ li >
< li >< a class = "menu-item" > Consulting</ a ></ li >
</ ul >
</ li >
< li >
< a class = "menu-item" > Products</ a >
< ul >
< li >< a class = "menu-item" > UI Kit</ a ></ li >
< li >< a class = "menu-item" > WordPress themes</ a ></ li >
< li >< a class = "menu-item" > WordPress plugins</ a ></ li >
< li >
< a class = "menu-item" > Open source</ a >
< ul >
< li >< a class = "menu-item" > Auth management system</ a ></ li >
< li >< a class = "menu-item" > VScode theme</ a ></ li >
< li >< a class = "menu-item" > Color picker app</ a ></ li >
</ ul >
</ li >
</ ul >
</ li >
< li >
< a class = "menu-item" > Company</ a >
< ul >
< li >< a class = "menu-item" > About us</ a ></ li >
< li >< a class = "menu-item" > Contact us</ a ></ li >
< li >< a class = "menu-item" > Privacy policy</ a ></ li >
< li >< a class = "menu-item" > Press kit</ a ></ li >
</ ul >
</ li >
</ ul >
Afficher le code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 < ul class = "menu lg:menu-horizontal" >
< li >< a class = "menu-item" > Item 1</ a ></ li >
< li >
< div class = "accordion accordion-flush" >
< details open >
< summary > Parent item</ summary >
< div class = "accordion accordion-flush" >
< ul >
< li >< a class = "menu-item" > Submenu 1</ a ></ li >
< li >< a class = "menu-item" > Submenu 2</ a ></ li >
< li >
< div class = "accordion accordion-flush" >
< details open >
< summary > Parent</ summary >
< div class = "accordion-content" >
< ul >
< li >< a class = "menu-item" > item 1</ a ></ li >
< li >< a class = "menu-item" > item 2</ a ></ li >
</ ul >
</ div >
</ details >
</ div >
</ li >
</ ul >
</ div >
</ details >
</ div >
</ li >
< li >< a class = "menu-item" > Item 3</ a ></ li >
</ ul >
Afficher le code
Vous utilisez Claude Code, Cursor ou un autre éditeur d'IA ?
Cherry MCP donne à votre éditeur d'IA les noms et la structure exacts des classes Menu sur demande. Fini les cours hallucinés.
Essayez Cherry MCP