SnippetUI

玻璃拟态模态框

一个美丽的玻璃般图案的对话框,背景图案粘贴。

Tailwind CSSJavaScript

现代模态窗口,可以像磨砂玻璃一样透过窗户看到背景。

预览

Glassmorphism

This is a beautiful glassmorphism modal popup using Tailwind CSS backdrop-blur utilities.

用例和功能

  • 促销和警报:非常适合真正吸引用户注意力的重要消息或需要采取行动的弹出窗口。
  • 现代视觉效果:模糊背景(玻璃态)以突出显示前景内容,同时保留背景上下文。
  • 产生奢华感:给人一种深度感和透明感,比简单的纯色背景给人更精致的印象。

设计和用户体验(Design & UX)的要点

  • 背景模糊:使用 Tailwind CSS 的“backdrop-blur”实用程序来精美地模糊背景元素。
  • 边框和透明度:通过组合半透明的背景颜色和边框,例如“bg-white/20”和“border-white/30”,表达真实的玻璃纹理。
  • 添加动画:显示模态时,添加淡入和轻微放大动画以创建更自然的外观。

如何定制(定制指南)

  • 霜玻璃强度:您可以通过更改backdrop-blur-mdbackdrop-blur-xl类来调整模糊强度。
  • 更改颜色主题:通过更改背景叠加颜色(bg-black/20)或模态本身的基色,您可以将其与深色主题或品牌颜色相匹配。

实现代码(Implementation)

<!-- Container with background to demonstrate glass effect -->
<div class="relative w-full h-screen bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center">
<button id="open-modal" class="px-6 py-2 bg-white/20 hover:bg-white/30 backdrop-blur-md text-white font-medium rounded-lg border border-white/30 transition-all">Open Modal</button>

<div id="glass-modal" class="fixed inset-0 z-50 flex items-center justify-center p-4 opacity-0 pointer-events-none transition-opacity duration-300">
  <!-- Overlay -->
  <div class="absolute inset-0 bg-black/20 backdrop-blur-sm"></div>
  
  <!-- Modal Box -->
  <div class="relative bg-white/20 dark:bg-black/30 backdrop-blur-xl border border-white/30 dark:border-white/10 rounded-2xl p-8 max-w-sm w-full shadow-2xl transform scale-95 transition-transform duration-300">
    <h3 class="text-xl font-bold text-white mb-2">Glassmorphism</h3>
    <p class="text-white/80 mb-6 text-sm">This is a beautiful glassmorphism modal popup using Tailwind CSS backdrop-blur utilities.</p>
    <button id="close-modal" class="w-full py-2 bg-white/20 hover:bg-white/30 text-white rounded-lg transition-colors font-medium border border-white/20">Close</button>
  </div>
</div>
</div>
<script>
const modal = document.getElementById('glass-modal');
const inner = modal.querySelector('.transform');

document.getElementById('open-modal').addEventListener('click', () => {
  modal.classList.remove('opacity-0', 'pointer-events-none');
  inner.classList.remove('scale-95');
  inner.classList.add('scale-100');
});

document.getElementById('close-modal').addEventListener('click', () => {
  modal.classList.add('opacity-0', 'pointer-events-none');
  inner.classList.add('scale-95');
  inner.classList.remove('scale-100');
});
</script>