Navigáció
Lebegő üvegpanelek
Élő előnézet – a komponens teljes méretben.
Élő előnézet
HTML · CSS · JS
<nav class="floating-glass-menu">
<a href="#" class="glass-menu-item active">
<i class="bi bi-house-door-fill"></i>
<span>Kezdőlap</span>
</a>
<a href="#" class="glass-menu-item">
<i class="bi bi-person-fill"></i>
<span>Rólunk</span>
</a>
<a href="#" class="glass-menu-item">
<i class="bi bi-grid-fill"></i>
<span>Szolgáltatások</span>
</a>
<a href="#" class="glass-menu-item">
<i class="bi bi-images"></i>
<span>Portfólió</span>
</a>
<a href="#" class="glass-menu-item">
<i class="bi bi-envelope-fill"></i>
<span>Kapcsolat</span>
</a>
</nav>
.floating-glass-menu {
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
width: max-content;
max-width: calc(100% - 30px);
margin: 0 auto;
padding: 8px;
background: rgba(12, 18, 25, 0.72);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 22px;
backdrop-filter: blur(18px);
-webkit-backdrop-filter: blur(18px);
box-shadow:
0 20px 50px rgba(0, 0, 0, 0.35),
inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.glass-menu-item {
position: relative;
display: flex;
align-items: center;
gap: 10px;
padding: 12px 16px;
color: #7d8998;
text-decoration: none;
border: 1px solid transparent;
border-radius: 15px;
overflow: hidden;
transition:
color 0.3s ease,
border-color 0.3s ease,
background 0.3s ease,
transform 0.3s ease,
box-shadow 0.3s ease;
}
.glass-menu-item::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(
135deg,
rgba(255, 255, 255, 0.06),
transparent 55%
);
opacity: 0;
transition: opacity 0.3s ease;
}
.glass-menu-item i,
.glass-menu-item span {
position: relative;
z-index: 1;
}
.glass-menu-item i {
font-size: 16px;
transition:
color 0.3s ease,
transform 0.3s ease;
}
.glass-menu-item span {
font-size: 13px;
letter-spacing: 0.3px;
}
.glass-menu-item:hover {
color: #ffffff;
border-color: rgba(46, 204, 113, 0.35);
background: rgba(46, 204, 113, 0.055);
box-shadow:
0 8px 22px rgba(0, 0, 0, 0.2),
0 0 18px rgba(46, 204, 113, 0.06);
transform: translateY(-3px);
}
.glass-menu-item:hover::before {
opacity: 1;
}
.glass-menu-item:hover i {
color: #2ecc71;
transform: scale(1.08);
}
.glass-menu-item.active {
color: #ffffff;
border-color: rgba(46, 204, 113, 0.28);
background: rgba(46, 204, 113, 0.08);
box-shadow:
inset 0 0 16px rgba(46, 204, 113, 0.035),
0 0 14px rgba(46, 204, 113, 0.05);
}
.glass-menu-item.active i {
color: #2ecc71;
}
.glass-menu-item.active::after {
content: "";
position: absolute;
left: 50%;
bottom: 4px;
width: 22px;
height: 2px;
border-radius: 10px;
background: #2ecc71;
transform: translateX(-50%);
box-shadow: 0 0 8px rgba(46, 204, 113, 0.65);
}
@media (max-width: 700px) {
.floating-glass-menu {
flex-wrap: wrap;
width: calc(100% - 30px);
}
.glass-menu-item {
flex: 1 1 auto;
justify-content: center;
}
}
@media (max-width: 480px) {
.glass-menu-item span {
display: none;
}
.glass-menu-item {
width: 48px;
height: 48px;
padding: 0;
justify-content: center;
}
}
document.querySelectorAll(".floating-glass-menu").forEach(menu => {
menu.querySelectorAll(".glass-menu-item").forEach(item => {
item.addEventListener("click", function () {
menu.querySelectorAll(".glass-menu-item").forEach(link => {
link.classList.remove("active");
});
this.classList.add("active");
});
});
});