Files
drupal-reha/web/themes/custom/reha/scss/partials/_menu-burger-auto.scss
T
2025-10-03 14:04:22 +02:00

108 lines
3.8 KiB
SCSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* themes/custom/reha/assets/css/menu-burger-auto.css */
.rb-sr {
position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
overflow:hidden; clip:rect(0,0,0,0); clip-path: inset(50%); white-space:nowrap; border:0;
}
/* Bouton burger */
.rb-toggle {
display:inline-flex; align-items:center; justify-content:center;
gap:.5rem; border:1px solid #ddd; background:#fff; color:#111;
border-radius:.75rem; padding:.6rem .8rem; cursor:pointer;
}
/* Icône */
.rb-burger { display:inline-flex; flex-direction:column; gap:6px; }
.rb-line { width:22px; height:2px; background:currentColor; display:block;
transition: transform .2s ease, opacity .2s ease; }
/* Anim "X" */
.rb-toggle.is-active .rb-line:nth-child(1){ transform: translateY(8px) rotate(45deg); }
.rb-toggle.is-active .rb-line:nth-child(2){ opacity:0; }
.rb-toggle.is-active .rb-line:nth-child(3){ transform: translateY(-8px) rotate(-45deg); }
/* Liste (mobile) */
#main-nav.rb-list {
list-style:none; padding:0; margin:.75rem 0 0 0; display:grid; gap:.25rem;
}
#main-nav.rb-list a {
display:block; padding:.75rem 1rem; border-radius:.5rem; text-decoration:none;
background:#fff; color:#111;
}
#main-nav.rb-list a:focus-visible { outline:2px solid #5b9aff; outline-offset:2px; }
/* Desktop / tablette */
@media (min-width:768px){
.rb-toggle{ display:none; }
#main-nav.rb-list { display:flex; gap:.5rem; margin-top:0; }
#main-nav.rb-list a { background:transparent; padding:.5rem .75rem; }
#main-nav.rb-list a:hover { text-decoration: underline; }
}
/* Impression : menu toujours visible */
@media print {
.rb-toggle{ display:none !important; }
#main-nav.rb-list{ display:block !important; }
}
/* 1) Garantir que lattribut hidden cache bien l’élément,
même si un autre CSS met un display:... */
#main-nav[hidden] { display: none !important; }
/* 2) Fallback ultra simple : on cache le menu en mobile,
et on laffiche quand le bouton est actif.
(Le JS insère le bouton juste AVANT le <ul>, donc ladjacence fonctionne) */
@media (max-width: 767px) {
#main-nav.rb-list { display: none !important; }
.rb-toggle.is-active + #main-nav.rb-list { display: grid !important; }
}
/* --- Empêcher le menu d'impacter la mise en page du header (mobile) --- */
@media (max-width: 767.98px) {
/* Le conteneur nav sert d'ancre pour le positionnement absolu */
#block-reha-navigationprincipale {
position: relative;
overflow: visible; /* au cas où un parent a overflow:hidden */
/* optionnel : si le header a text-align:center et que tu veux
que le bouton reste à gauche, décommente la ligne suivante */
/* text-align: initial; */
}
/* Par défaut, menu masqué quand le bouton n'est pas actif */
#block-reha-navigationprincipale .rb-toggle + #main-nav.rb-list {
display: none !important;
}
/* Quand on ouvre: on montre le menu en position absolue, hors du flux */
#block-reha-navigationprincipale .rb-toggle.is-active + #main-nav.rb-list {
display: grid !important;
}
/* Sortir le UL du flux et de tout align center, en overlay sous la barre */
#block-reha-navigationprincipale #main-nav.rb-list {
position: absolute;
top: 100%; /* juste sous la barre de nav */
left: 0;
right: 0; /* pleine largeur du nav */
z-index: 1000;
text-align: left; /* ignore tout text-align:center parent */
margin: 0;
padding: .5rem;
background: #fff;
box-shadow: 0 8px 20px rgba(0,0,0,.15);
}
#block-reha-navigationprincipale #main-nav.rb-list a {
display: block;
}
}
/* --- Desktop : on remet le menu dans le flux normal --- */
@media (min-width: 768px) {
#block-reha-navigationprincipale #main-nav.rb-list {
position: static;
box-shadow: none;
padding: 0;
}
}