« Jâai cliquĂ© sur le bouton⊠quelque chose sâest passĂ© Ă lâĂ©cran, mais POURQUOI ? »
Dans le monde du frontend, il existe des composants qui :
- ArrĂȘtent lâutilisateur đ
- Forcent une dĂ©cision đ€
- Mettent de lâordre dans le chaos đ§
Aujourdâhui, nous construisons ce trio Avengers de lâUI :
- Modal â Entre en scĂšne avec beaucoup de drame
- Dropdown â Discret mais ultra utile
- Accordion â Un peu obsessionnel avec lâordre⊠mais il a raison
Le tout en HTML + CSS + JavaScript purs
Pas de framework. Pas dâexcuses. Juste de lâapprentissage đ
đ 1. MODAL â « STOP ! Tu ne peux pas partir sans voir ça »
Un modal, câest essentiellement ça :
« Normalement je suis cachĂ©, mais quand quelquâun clique sur un bouton â BOOM đ„ â jâapparais Ă lâĂ©cran. »
đŻ Cas dâutilisation
- Ăcrans de connexion / inscription
- Avertissements
- Drames du type « Jâaccepte »
- Pop-ups de campagne (oui⊠ceux quâon dĂ©teste)
đ§± HTML â Construisons le squelette
<button id="openModal">Open Modal đ</button>
<div class="modal" id="modal">
<div class="modal-content">
<span class="close" id="closeModal">Ă</span>
<h2>Iâm a Modal đ</h2>
<p>Relax, Iâm just here to inform you.</p>
</div>
</div>
đ§ Que se passe-t-il ici ?
modalâ LâarriĂšre-plan sombre (overlay)modal-contentâ La boĂźte blanche (la star du show)Ăâ Le cri « ferme-moi, sâil te plaĂźt »
đš CSS â LumiĂšres, camĂ©ra, action
.modal {
display: none; /* La ligne la plus importante */
position: fixed;
inset: 0;
background: rgba(0,0,0,0.6);
}
.modal-content {
background: white;
padding: 20px;
width: 300px;
margin: 100px auto;
border-radius: 10px;
}
.close {
cursor: pointer;
font-size: 24px;
}
đ§ Conseil en or :
Sans display: none, le modal commence Ă crier dĂšs sa naissance.
âïž JavaScript â Lui donner vie
const modal = document.getElementById("modal");
const openBtn = document.getElementById("openModal");
const closeBtn = document.getElementById("closeModal");
openBtn.addEventListener("click", () => {
modal.style.display = "block";
});
closeBtn.addEventListener("click", () => {
modal.style.display = "none";
});
đ La logique JS en rĂ©sumĂ© :
« Afficher â Cacher â RĂ©afficher »
JavaScript adore le minimalisme.
đĄ Astuces pour le Modal
- Ajouter la fermeture avec la touche ESC
- Cliquer sur lâarriĂšre-plan pour fermer
classList.togglerend le code plus propre- Ajouter des animations = +100 de charisme
đ 2. DROPDOWN â « Il sâouvre, mais reste sage »
Un dropdown, câest :
« Petit menu, grande responsabilité. »
đ§± HTML
<button id="dropdownBtn">Menu âŹïž</button>
<ul id="dropdownMenu" class="dropdown">
<li>Profile</li>
<li>Settings</li>
<li>Logout</li>
</ul>
đš CSS
.dropdown {
display: none;
list-style: none;
padding: 10px;
border: 1px solid #ccc;
}
âïž JavaScript â La magie du toggle
const btn = document.getElementById("dropdownBtn");
const menu = document.getElementById("dropdownMenu");
btn.addEventListener("click", () => {
menu.style.display =
menu.style.display === "block" ? "none" : "block";
});
đ§ La magie ici :
Ă chaque clic, JS pose une seule question :
« Suis-je ouvert ou fermé ? »
đĄ Astuces pour le Dropdown
- Cliquer Ă lâextĂ©rieur devrait le fermer (niveau avancĂ©)
- La sensibilité tactile est cruciale sur mobile
- Trop de dropdowns = UX en pleurs đą
đȘ 3. ACCORDION â « Lâordre avant tout »
Un accordion, câest :
« Tout ne peut pas ĂȘtre ouvert en mĂȘme temps, mon ami. »
đ§± HTML
<button class="accordion-btn">Question 1 â</button>
<div class="panel">Answer 1</div>
<button class="accordion-btn">Question 2 â</button>
<div class="panel">Answer 2</div>
đš CSS
.panel {
display: none;
padding: 10px;
border: 1px solid #ddd;
}
âïž JavaScript â Trouver le voisin
const buttons = document.querySelectorAll(".accordion-btn");
buttons.forEach(btn => {
btn.addEventListener("click", () => {
const panel = btn.nextElementSibling;
panel.style.display =
panel.style.display === "block" ? "none" : "block";
});
});
đ§ Quâest-ce que nextElementSibling ?
« Donne-moi lâĂ©lĂ©ment juste aprĂšs moi. »
La colonne vertĂ©brale des accordions đȘ
đĄ Astuces pour lâAccordion
- Tu veux quâun seul panneau soit ouvert Ă la fois ?
- Ferme dâabord tous les panneaux
- Avec des animations, câest magique
- Le héros secret des pages FAQ
đ§ RĂšgles dâor du Frontend
- Utilise des classes au lieu de
displayâ code propre - JS = comportement, CSS = apparence
- Petits composants = gros impact
- Du code sans UX = du code poubelle đ
đŹ Mot de la fin
Ăcrire des interfaces UI en JavaScript, câest un peu comme ça :
« Tu cliques sur un boutonâŠ
et en coulisses, une petite machine logique se met à tourner. »
Le modal adore le drame đ
Le dropdown sâouvre poliment đ
Lâaccordion exige de lâordre đȘ

