Blur Glass Drawer
backdrop-filterのブラーとグラスモーフィズムで表示されるサイドドロワー。
HTML
<button class="bgd-trigger" id="bgd-trigger">Open Drawer</button> <input type="checkbox" id="bgd-toggle" class="bgd-check"> <label for="bgd-toggle" class="bgd-overlay"></label> <aside class="bgd-drawer"> <h3>Glass Drawer</h3> <p>Frosted panel overlay</p> </aside>
CSS
.bgd-trigger {
padding: 12px 28px;
background: #6366f1;
color: #fff;
border: none;
border-radius: 8px;
font-size: 14px;
font-weight: 600;
font-family: inherit;
cursor: pointer;
}
.bgd-check { display: none; }
.bgd-overlay {
position: fixed;
inset: 0;
background: rgba(0,0,0,0.3);
opacity: 0;
pointer-events: none;
transition: opacity 0.3s;
z-index: 99;
}
.bgd-check:checked ~ .bgd-overlay {
opacity: 1;
pointer-events: auto;
cursor: pointer;
}
.bgd-drawer {
position: fixed;
top: 0; right: 0;
width: 280px;
height: 100%;
background: rgba(30,41,59,0.7);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-left: 1px solid rgba(255,255,255,0.1);
padding: 32px 24px;
color: #e2e8f0;
transform: translateX(100%);
transition: transform 0.35s cubic-bezier(0.4,0,0.2,1);
z-index: 100;
}
.bgd-check:checked ~ .bgd-drawer {
transform: translateX(0);
}
.bgd-drawer h3 { margin: 0 0 12px; font-size: 20px; }
.bgd-drawer p { margin: 0; font-size: 13px; opacity: 0.7; }
JavaScript
document.getElementById('bgd-trigger').addEventListener('click', function() {
document.getElementById('bgd-toggle').checked = true;
});