Glass Tab Bar
Bottom navigation bar (mobile-app pattern) where the active pill is a brighter glass surface inside a darker glass container.
The code
<div class="gm-tabbar-bg">
<nav class="gm-tabbar">
<button class="gm-tabbar__tab gm-tabbar__tab--active">
<span class="gm-tabbar__icon">⌂</span>Home
</button>
<button class="gm-tabbar__tab"><span class="gm-tabbar__icon">⌕</span>Search</button>
<button class="gm-tabbar__tab"><span class="gm-tabbar__icon">♡</span>Saved</button>
<button class="gm-tabbar__tab"><span class="gm-tabbar__icon">◔</span>Profile</button>
</nav>
</div> <div class="gm-tabbar-bg">
<nav class="gm-tabbar">
<button class="gm-tabbar__tab gm-tabbar__tab--active">
<span class="gm-tabbar__icon">⌂</span>Home
</button>
<button class="gm-tabbar__tab"><span class="gm-tabbar__icon">⌕</span>Search</button>
<button class="gm-tabbar__tab"><span class="gm-tabbar__icon">♡</span>Saved</button>
<button class="gm-tabbar__tab"><span class="gm-tabbar__icon">◔</span>Profile</button>
</nav>
</div>.gm-tabbar-bg {
position: relative; padding: 24px;
border-radius: 18px; overflow: hidden;
background:
radial-gradient(ellipse at 50% 20%, #fb923c 0%, transparent 55%),
radial-gradient(ellipse at 30% 80%, #f43f5e 0%, transparent 55%),
#1f0a14;
}
.gm-tabbar {
display: flex; gap: 4px;
background: rgba(20, 20, 30, 0.5);
-webkit-backdrop-filter: blur(24px) saturate(160%);
backdrop-filter: blur(24px) saturate(160%);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 16px;
padding: 6px;
}
.gm-tabbar__tab {
flex: 1;
background: none; border: none;
color: rgba(255, 255, 255, 0.55);
padding: 8px 4px;
display: flex; flex-direction: column; align-items: center; gap: 4px;
font: 600 10px system-ui, sans-serif;
border-radius: 10px;
cursor: pointer;
transition: background 0.2s, color 0.2s;
}
.gm-tabbar__icon { font-size: 18px; line-height: 1; }
.gm-tabbar__tab:hover { color: rgba(255, 255, 255, 0.85); }
.gm-tabbar__tab--active {
background: rgba(255, 255, 255, 0.18);
border: 1px solid rgba(255, 255, 255, 0.25);
color: #fff;
} .gm-tabbar-bg {
position: relative; padding: 24px;
border-radius: 18px; overflow: hidden;
background:
radial-gradient(ellipse at 50% 20%, #fb923c 0%, transparent 55%),
radial-gradient(ellipse at 30% 80%, #f43f5e 0%, transparent 55%),
#1f0a14;
}
.gm-tabbar {
display: flex; gap: 4px;
background: rgba(20, 20, 30, 0.5);
-webkit-backdrop-filter: blur(24px) saturate(160%);
backdrop-filter: blur(24px) saturate(160%);
border: 1px solid rgba(255, 255, 255, 0.12);
border-radius: 16px;
padding: 6px;
}
.gm-tabbar__tab {
flex: 1;
background: none; border: none;
color: rgba(255, 255, 255, 0.55);
padding: 8px 4px;
display: flex; flex-direction: column; align-items: center; gap: 4px;
font: 600 10px system-ui, sans-serif;
border-radius: 10px;
cursor: pointer;
transition: background 0.2s, color 0.2s;
}
.gm-tabbar__icon { font-size: 18px; line-height: 1; }
.gm-tabbar__tab:hover { color: rgba(255, 255, 255, 0.85); }
.gm-tabbar__tab--active {
background: rgba(255, 255, 255, 0.18);
border: 1px solid rgba(255, 255, 255, 0.25);
color: #fff;
}