Avgrund
A modal concept with a visible level of depth between the page and modal layers. Click a button below to give it a try.
Uses CSS transforms to scale components and CSS filters to blur the page.
Avgrund is Swedish for abyss.
* { margin: 0; padding: 0; } html, body { height: 100%; overflow: hidden; } html { background-color: #222; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAGklEQVQIW2NkYGD4D8SMQAwGcAY2AbBKDBUAVuYCBQPd34sAAAAASUVORK5CYII=); background-repeat: repeat; } h1, h2 { font-size: 24px; } p { margin: 10px 0 10px 0; font-size: 16px; line-height: 1.32; } a { color: #7aa76d; text-decoration: none; -webkit-transition: 0.15s color ease; -moz-transition: 0.15s color ease; -ms-transition: 0.15s color ease; -o-transition: 0.15s color ease; transition: 0.15s color ease; } a:hover { color: #91cd85; } small { display: block; margin-top: 15px; padding-top: 15px; color: #333; font-size: 0.85em; border-top: 1px dashed #ccc; -webkit-text-size-adjust: none; } button { border: 0px; padding: 8px 10px; margin: 5px 0px; border-radius: 1px; outline: 0; cursor: pointer; color: #fff; background: #7aa76d; font-size: 15px; -webkit-transition: 0.15s background ease; -moz-transition: 0.15s background ease; -ms-transition: 0.15s background ease; -o-transition: 0.15s background ease; transition: 0.15s background ease; } button:hover { background: #91cd85; } button:active { background: #60895a; } button+button { margin-left: 5px; } .sharing { margin-top: 50px; } body { background: #fff; font-family: 'Lato', Helvetica, sans-serif; font-size: 16px; color: #222; } .avgrund-active body { -webkit-transform: scale( 0.9 ); -moz-transform: scale( 0.9 ); -ms-transform: scale( 0.9 ); -o-transform: scale( 0.9 ); transform: scale( 0.9 ); } .avgrund-cover { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 1; visibility: hidden; opacity: 0; background: rgba( 0, 0, 0, 0.5 ); } .avgrund-active .avgrund-cover { visibility: visible; opacity: 1; } .avgrund-contents { position: relative; padding: 20px; max-width: 400px; height: 100%; margin: auto; } .avgrund-active .avgrund-contents { -webkit-filter: blur(2px); -moz-filter: blur(2px); -ms-filter: blur(2px); -o-filter: blur(2px); filter: blur(2px); } .no-blur.avgrund-active .avgrund-contents { -webkit-filter: none; -moz-filter: none; -ms-filter: none; -o-filter: none; filter: none; } .avgrund-popup { position: absolute; width: 340px; height: 130px; left: 50%; top: 50%; margin: -130px 0 0 -190px; visibility: hidden; opacity: 0; z-index: 2; padding: 20px; background: white; box-shadow: 0px 0px 20px rgba( 0, 0, 0, 0.6 ); border-radius: 3px; -webkit-transform: scale( 0.8 ); -moz-transform: scale( 0.8 ); -ms-transform: scale( 0.8 ); -o-transform: scale( 0.8 ); transform: scale( 0.8 ); } .avgrund-active .avgrund-popup { visibility: visible; opacity: 1; -webkit-transform: scale( 1.1 ); -moz-transform: scale( 1.1 ); -ms-transform: scale( 1.1 ); -o-transform: scale( 1.1 ); transform: scale( 1.1 ); } .avgrund-popup.stack { -webkit-transform: scale( 1.5 ); -moz-transform: scale( 1.5 ); -ms-transform: scale( 1.5 ); -o-transform: scale( 1.5 ); transform: scale( 1.5 ); } .avgrund-active .avgrund-popup.stack { -webkit-transform: scale( 1.1 ); -moz-transform: scale( 1.1 ); -ms-transform: scale( 1.1 ); -o-transform: scale( 1.1 ); transform: scale( 1.1 ); } .avgrund-ready body, .avgrund-ready .avgrund-contents, .avgrund-ready .avgrund-popup, .avgrund-ready .avgrund-cover { -webkit-transform-origin: 50% 50%; -moz-transform-origin: 50% 50%; -ms-transform-origin: 50% 50%; -o-transform-origin: 50% 50%; transform-origin: 50% 50%; -webkit-transition: 0.3s all cubic-bezier(0.250, 0.460, 0.450, 0.940); -moz-transition: 0.3s all cubic-bezier(0.250, 0.460, 0.450, 0.940); -ms-transition: 0.3s all cubic-bezier(0.250, 0.460, 0.450, 0.940); -o-transition: 0.3s all cubic-bezier(0.250, 0.460, 0.450, 0.940); transition: 0.3s all cubic-bezier(0.250, 0.460, 0.450, 0.940); } .avgrund-ready .avgrund-popup.no-transition { -webkit-transition: none; -moz-transition: none; -ms-transition: none; -o-transition: none; transition: none; }
立体弹窗效果。这个作品的作者是 Hakim,他在 CodePen 上面有很多很多的好作品,很难选择出最好的一个。我挑选这个的原因是因为这个效果很实用。模态窗口配合深度的视觉效果让整个界面特别有立体感。