Back to CSS Circular Menus Iris Aperture Pure CSS
Share
HTML
<div class="ccm-iris">
  <div class="ccm-iris-blade" style="--a: 0deg"></div>
  <div class="ccm-iris-blade" style="--a: 60deg"></div>
  <div class="ccm-iris-blade" style="--a: 120deg"></div>
  <div class="ccm-iris-blade" style="--a: 180deg"></div>
  <div class="ccm-iris-blade" style="--a: 240deg"></div>
  <div class="ccm-iris-blade" style="--a: 300deg"></div>
  <a href="#" class="ccm-iris-i" style="--a: -90deg">◐</a>
  <a href="#" class="ccm-iris-i" style="--a: -30deg">◑</a>
  <a href="#" class="ccm-iris-i" style="--a: 30deg">◒</a>
  <a href="#" class="ccm-iris-i" style="--a: 90deg">◓</a>
  <a href="#" class="ccm-iris-i" style="--a: 150deg">◉</a>
  <a href="#" class="ccm-iris-i" style="--a: 210deg">○</a>
</div>
CSS
.ccm-iris {
  position: relative;
  width: 200px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: radial-gradient(circle at center, #0a0a14 30%, #15151d);
  border: 4px solid #2a2a3e;
}

.ccm-iris-blade {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100px;
  height: 100px;
  margin: -50px;
  background: linear-gradient(135deg, #2a2a3e, #15151d);
  clip-path: polygon(50% 0%, 100% 50%, 50% 50%);
  transform: rotate(var(--a)) translateY(-30px);
  transform-origin: center;
  transition: transform 0.5s cubic-bezier(0.65, 0, 0.35, 1);
}

.ccm-iris:hover .ccm-iris-blade {
  transform: rotate(calc(var(--a) + 30deg)) translateY(-50px);
}

.ccm-iris-i {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 28px;
  height: 28px;
  margin: -14px;
  border-radius: 50%;
  background: #1f1f2e;
  color: #00e5ff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: 1px solid rgba(0, 229, 255, 0.4);
  transform: rotate(var(--a)) translate(70px) rotate(calc(var(--a) * -1));
  opacity: 0;
  transition: opacity 0.4s ease 0.25s;
  z-index: 2;
}

.ccm-iris:hover .ccm-iris-i {
  opacity: 1;
}

.ccm-iris-i:hover {
  background: #00e5ff;
  color: #0a0a14;
}