navigation · mobile · menu
Bouton hamburger qui ouvre un panneau de navigation plein écran, avec recherche et réseaux sociaux. 100% CSS, aucun JavaScript.
Couleurs
Effets
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');
.bn-burger {
--bn-burger-accent: #E6E4DD;
position: relative;
min-height: 260px;
overflow: hidden;
font-family: 'Inter', sans-serif;
background: #0B0F10;
}
.bn-burger__checkbox {
display: none;
}
.bn-burger__bar {
display: flex;
align-items: center;
justify-content: space-between;
padding: 1.25rem 1.5rem;
}
.bn-burger__logo {
color: #E6E4DD;
font-weight: 700;
letter-spacing: 0.04em;
}
.bn-burger__hamburger {
display: flex;
flex-direction: column;
gap: 5px;
cursor: pointer;
}
.bn-burger__hamburger span {
width: 24px;
height: 2px;
background: #E6E4DD;
}
/* Le panneau est caché hors-écran par défaut (translateX 100%),
et glisse à l'intérieur quand la case à cocher passe à "coché" */
.bn-burger__panel {
position: absolute;
top: 0;
right: 0;
bottom: 0;
width: 280px;
max-width: 82%;
padding: 4rem 2rem 2rem;
background: #050808;
border-left: 1px solid rgba(230, 228, 221, 0.1);
display: flex;
flex-direction: column;
gap: 1.25rem;
transform: translateX(100%);
transition: transform 0.35s ease;
--fx-shadow: none;
box-shadow: var(--fx-shadow);
}
.bn-burger.fx-shadow .bn-burger__panel {
--fx-shadow: -30px 0 60px -20px rgba(0, 0, 0, 0.6);
}
.bn-burger__checkbox:checked ~ .bn-burger__panel {
transform: translateX(0);
}
.bn-burger__close {
position: absolute;
top: 1.25rem;
right: 1.5rem;
color: #E6E4DD;
cursor: pointer;
font-size: 1.1rem;
}
.bn-burger__link {
color: #C7C1B7;
text-decoration: none;
font-size: 0.95rem;
letter-spacing: 0.04em;
text-transform: uppercase;
}
.bn-burger__link.is-active,
.bn-burger__link:hover {
color: var(--bn-burger-accent);
}
.bn-burger__search input {
width: 100%;
margin-top: 0.75rem;
padding: 0.6rem 0.8rem;
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(230, 228, 221, 0.15);
border-radius: 4px;
color: #E6E4DD;
font-family: inherit;
}
.bn-burger__social {
display: flex;
gap: 1rem;
margin-top: auto;
}
.bn-burger__social a {
color: #979793;
text-decoration: none;
font-size: 0.75rem;
letter-spacing: 0.04em;
}
.bn-burger__social a:hover {
color: var(--bn-burger-accent);
}
</style>
<div class="bn-burger" data-fx-root>
<!-- La case à cocher est invisible : c'est elle qui retient l'état
"menu ouvert / fermé", entièrement piloté en CSS -->
<input type="checkbox" id="bn-burger-toggle" class="bn-burger__checkbox" />
<header class="bn-burger__bar">
<span class="bn-burger__logo">BN</span>
<label class="bn-burger__hamburger" for="bn-burger-toggle" aria-label="Ouvrir le menu">
<span></span><span></span><span></span>
</label>
</header>
<nav class="bn-burger__panel">
<label class="bn-burger__close" for="bn-burger-toggle" aria-label="Fermer le menu">✕</label>
<a href="#" class="bn-burger__link">À propos</a>
<a href="#" class="bn-burger__link is-active">Projets</a>
<a href="#" class="bn-burger__link">Réflexions</a>
<a href="#" class="bn-burger__link">Contact</a>
<div class="bn-burger__search">
<input type="search" placeholder="Rechercher" />
</div>
<div class="bn-burger__social">
<a href="#" aria-label="Instagram">IG</a>
<a href="#" aria-label="X">X</a>
<a href="#" aria-label="Vimeo">VM</a>
</div>
</nav>
</div>