Navigáció
Neon alsó lebegő menü
Élő előnézet – a komponens teljes méretben.
Élő előnézet
HTML · CSS · JS
<nav class="bottom-neon-menu">
<a href="#" class="bottom-menu-item active">
<i class="bi bi-house-door-fill"></i>
<span>Kezdőlap</span>
</a>
<a href="#" class="bottom-menu-item">
<i class="bi bi-grid-fill"></i>
<span>Projektek</span>
</a>
<a href="#" class="bottom-menu-item bottom-menu-main">
<i class="bi bi-plus-lg"></i>
</a>
<a href="#" class="bottom-menu-item">
<i class="bi bi-person-fill"></i>
<span>Rólunk</span>
</a>
<a href="#" class="bottom-menu-item">
<i class="bi bi-envelope-fill"></i>
<span>Kapcsolat</span>
</a>
</nav>
.bottom-neon-menu {
width: max-content;
min-width: 420px;
margin: 0 auto;
padding: 10px 14px;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
background: rgba(8, 13, 19, 0.96);
border: 1px solid rgba(46, 204, 113, 0.16);
border-radius: 24px;
box-shadow:
0 18px 45px rgba(0, 0, 0, 0.35),
0 0 28px rgba(46, 204, 113, 0.06);
}
.bottom-menu-item {
position: relative;
min-width: 72px;
height: 58px;
padding: 0 12px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 4px;
color: #667383;
text-decoration: none;
border-radius: 16px;
transition:
color 0.3s ease,
background 0.3s ease,
transform 0.3s ease;
}
.bottom-menu-item i {
font-size: 17px;
transition:
color 0.3s ease,
transform 0.3s ease;
}
.bottom-menu-item span {
font-size: 10px;
letter-spacing: 0.4px;
}
.bottom-menu-item:hover {
color: #ffffff;
background: rgba(255, 255, 255, 0.035);
}
.bottom-menu-item:hover i {
color: #2ecc71;
transform: translateY(-2px);
}
.bottom-menu-item.active {
color: #ffffff;
background: rgba(46, 204, 113, 0.08);
}
.bottom-menu-item.active::after {
content: "";
position: absolute;
left: 50%;
bottom: 5px;
width: 18px;
height: 2px;
border-radius: 5px;
background: #2ecc71;
transform: translateX(-50%);
box-shadow:
0 0 8px rgba(46, 204, 113, 0.7);
}
.bottom-menu-item.active i {
color: #2ecc71;
}
.bottom-menu-main {
min-width: 58px;
width: 58px;
height: 58px;
margin: 0 7px;
border-radius: 50%;
color: #06100a;
background: #2ecc71;
border: 4px solid #0b1118;
box-shadow:
0 0 0 1px rgba(46, 204, 113, 0.45),
0 0 22px rgba(46, 204, 113, 0.28);
transform: translateY(-15px);
transition:
background 0.3s ease,
box-shadow 0.3s ease,
transform 0.3s ease;
}
.bottom-menu-main i {
font-size: 20px;
}
.bottom-menu-main:hover {
color: #06100a;
background: #48e383;
transform: translateY(-18px);
box-shadow:
0 0 0 1px rgba(46, 204, 113, 0.7),
0 0 30px rgba(46, 204, 113, 0.42);
}
@media (max-width: 520px) {
.bottom-neon-menu {
min-width: 0;
width: calc(100% - 24px);
}
.bottom-menu-item {
min-width: 52px;
padding: 0 7px;
}
.bottom-menu-item span {
display: none;
}
.bottom-menu-main {
min-width: 58px;
}
}
document.querySelectorAll(".bottom-neon-menu").forEach(menu => {
menu.querySelectorAll(".bottom-menu-item").forEach(item => {
item.addEventListener("click", function () {
menu.querySelectorAll(".bottom-menu-item").forEach(link => {
link.classList.remove("active");
});
if (!this.classList.contains("bottom-menu-main")) {
this.classList.add("active");
}
});
});
});