feat(vitrine): modernisation UI (nav, home bento, typo, shortcodes)
- Header sticky, menu mobile, lien d’évitement et JS léger (site.js) - Accueil : layouts/index.html, contenu structuré en front matter, grille bento - Motif « parcours » en SVG statique (évite la casse minify sur path inline) - CSS : tokens, clamp, focus-visible, prefers-reduced-motion, formulaire contact - Footer aligné sur la charte (plus de styles inline Bootstrap) - Shortcodes featureblock + card ; fonctionnalités en blocs featureblock - Polices : Merienda + Source Sans 3 (remplace la pile à 5 Google Fonts) Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
(function () {
|
||||
var nav = document.getElementById("site-nav");
|
||||
if (!nav) return;
|
||||
|
||||
var toggle = nav.querySelector(".nav-toggle");
|
||||
var mq = window.matchMedia("(max-width: 51.99rem)");
|
||||
|
||||
function setOpen(open) {
|
||||
nav.classList.toggle("is-open", open);
|
||||
if (toggle) {
|
||||
toggle.setAttribute("aria-expanded", open ? "true" : "false");
|
||||
toggle.setAttribute("aria-label", open ? "Fermer le menu" : "Ouvrir le menu");
|
||||
}
|
||||
}
|
||||
|
||||
if (toggle) {
|
||||
toggle.addEventListener("click", function () {
|
||||
var next = !nav.classList.contains("is-open");
|
||||
setOpen(next);
|
||||
if (next) {
|
||||
var first = nav.querySelector(".site-nav__list a");
|
||||
if (first) {
|
||||
window.requestAnimationFrame(function () {
|
||||
first.focus();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
document.addEventListener("keydown", function (e) {
|
||||
if (e.key === "Escape" && nav.classList.contains("is-open")) {
|
||||
setOpen(false);
|
||||
if (toggle) toggle.focus();
|
||||
}
|
||||
});
|
||||
|
||||
nav.querySelectorAll(".site-nav__list a").forEach(function (a) {
|
||||
a.addEventListener("click", function () {
|
||||
if (mq.matches) setOpen(false);
|
||||
});
|
||||
});
|
||||
|
||||
mq.addEventListener("change", function (e) {
|
||||
if (!e.matches) setOpen(false);
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user