Frosted Ice
Glacier blue with backdrop-filter refraction and noisy frost grain on top. Hover melts the surface to a brighter, glossier ice.
Frosted Ice the 15th of 43 designs in the 43 CSS Button Designs collection. The design is implemented in pure CSS — no JavaScript required. Copy the HTML and CSS panels below into your project. Because the demo is pure CSS, it works in any framework or templating engine you happen to use. The design honours prefers-reduced-motion and uses real semantic markup, so it ships accessibility-ready out of the box.
Live preview
The code
<button class="btn-ice"> <span class="btn-ice-frost" aria-hidden="true"></span> <span class="btn-ice-glint" aria-hidden="true"></span> <span class="btn-ice-text">Cool Down</span> </button>
.btn-ice {
position: relative;
padding: 14px 30px;
border: 1px solid rgba(168,224,240,0.5);
border-radius: 12px;
background: linear-gradient(135deg, rgba(168,224,240,0.55), rgba(93,158,176,0.65));
color: #0a3a4a;
font-family: ui-sans-serif, system-ui;
font-size: 14px;
font-weight: 700;
letter-spacing: 0.02em;
cursor: pointer;
overflow: hidden;
-webkit-backdrop-filter: blur(8px) saturate(140%);
backdrop-filter: blur(8px) saturate(140%);
box-shadow: 0 8px 22px -8px rgba(15,80,100,0.4), inset 0 1px 0 rgba(255,255,255,0.6);
transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.btn-ice-frost {
position: absolute; inset: 0;
background:
radial-gradient(ellipse at 30% 20%, rgba(255,255,255,0.55), transparent 60%),
repeating-linear-gradient(45deg, rgba(255,255,255,0.04) 0 2px, transparent 2px 4px);
pointer-events: none;
}
.btn-ice-glint {
position: absolute; top: -50%; left: -30%;
width: 30%; height: 200%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.7), transparent);
transform: rotate(20deg);
transition: left 0.5s cubic-bezier(.3,1,.3,1);
pointer-events: none;
}
.btn-ice-text { position: relative; z-index: 1; }
.btn-ice:hover {
transform: translateY(-2px);
box-shadow: 0 12px 28px -8px rgba(15,80,100,0.5), inset 0 1px 0 rgba(255,255,255,0.7);
}
.btn-ice:hover .btn-ice-glint { left: 130%; }