这是一款CSS水晶玻璃质感按钮。该该CSS按钮使用CSS的阴影和渐变属性,来制作非常逼真的水晶玻璃质感按钮效果,非常炫酷。
使用方法
HTML代码
<div class="glass-btn">Glassy</div>
CSS代码
* {
    box-sizing: border-box;
}
:root {
    --h: 33;
    --s: 90%;
    --l: 90%;
    font-family: 'Noto Sans', sans-serif;
}
.container {
    margin: 0;
    min-height: 50vh;
    display: grid;
    place-content: center;
}
.glass-btn {
    font-size: clamp(1.2rem, 5vw + 1rem, 2.5rem);
    width: 10em;
    height: 4em;
    border-radius: 0.5em;
    background-image: linear-gradient(#0003, #0000);
    box-shadow:
        0 -0.125em 0.25em #0002,
        0 0.25em 0.25em hsl(var(--h) var(--s) var(--l) / 0.5),
        0 0 0 0.1em hsl(var(--h) var(--s) var(--l) / 0.5),
        0 0.175em 0.3em hsl(var(--h) var(--s) var(--l) / 0.5) inset,
        0 -0.025em 0.175em hsl(var(--h) var(--s) var(--l) / 0.4) inset,
        0 -0.25em 1em 0.3em hsl(var(--h) var(--s) var(--l) / 0.3) inset,
        0 0.6em 0 hsl(var(--h) var(--s) var(--l) / 0.3) inset,
        0 2em 1em #0004;
    backdrop-filter: blur(0.15em);
    position: relative;
    display: grid;
    place-content: center;
    color: hsl(var(--h) var(--s) var(--l) / .7);
    text-shadow:
        0.03em 0.03em #fff5,
        -0.03em -0.03em #0005;
    cursor: pointer;
    transition: 0.1s ease;
    padding-top: 0.2em;
}
.glass-btn:before {
    content: '';
    position: absolute;
    top: 100%;
    width: 80%;
    left: 10%;
    height: 1.5em;
    background-image:
        radial-gradient(100% 100% at center,
            hsla(var(--h), var(--s), 80%, 0.25),
            hsla(var(--h), var(--s), 80%, 0) 50%);
}
.glass-btn:after {
    content: '';
    inset: 0;
    top: 0.5em;
    position: absolute;
    background-image:
        linear-gradient(105deg,
            transparent 20%,
            hsl(var(--h) var(--s) var(--l) / .2) 20%,
            hsl(var(--h) var(--s) var(--l) / .2) 30%,
            transparent 30%,
            transparent 32%,
            hsl(var(--h) var(--s) var(--l) / .2) 5%,
            hsl(var(--h) var(--s) var(--l) / .2) 40%,
            transparent 0%);
    background-size: 400% 100%;
    background-position: 100% 0%;
    transition: .3s ease;
}
.glass-btn:active:after {
    background-position: -50% 0%;
}
.glass-btn:active {
    translate: .01em .25em;
    box-shadow:
        0 -0.125em 0.25em #0002,
        0 0.25em 0.25em hsl(var(--h) var(--s) var(--l) / 0.5),
        0 0 0 0.1em hsl(var(--h) var(--s) var(--l) / 0.5),
        0 0.175em 0.3em hsl(var(--h) var(--s) var(--l) / 0.8) inset,
        0 -0.025em 0.175em hsl(var(--h) var(--s) var(--l) / 0.4) inset,
        0 -0.25em 1em 0.3em hsl(var(--h) var(--s) var(--l) / 0.3) inset,
        0 0.6em 0 hsl(var(--h) var(--s) var(--l) / 0.3) inset,
        0 1em 0.5em #0004;
    backdrop-filter: blur(0.08em);
}
.glass-btn:active:before {
    height: 1em;
}
		 
		
    
	 
           
         
          
 
                     
                     
                     
                     
                     
                     
                     
                     
                    