モーダル
JavaScript

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;
});