43 CSS Button Designs

Frosted Ice

Glacier blue with backdrop-filter refraction and noisy frost grain on top. Hover melts the surface to a brighter, glossier ice.

Pure CSS MIT licensed

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

Open in playground

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

Search CodeFronts

Loading…