پیش‌نمایش زنده
کد HTML
<article class="keycap">
  <aside class="letter">OK</aside>
</article>
کد CSS
.keycap {
  position: relative;
  display: inline-block;
  width: 80px;
  height: 80px;
  border-radius: 10px;
  background: linear-gradient(180deg, #282828, #202020);
  box-shadow:
    inset -8px 0 8px rgba(0, 0, 0, 0.15),
    inset 0 -8px 8px rgba(0, 0, 0, 0.25),
    0 0 0 2px rgba(0, 0, 0, 0.75),
    10px 20px 25px rgba(0, 0, 0, 0.4);
  overflow: hidden;
  transition:
    transform 0.1s ease-in-out,
    box-shadow 0.1s ease-in;
  user-select: none;
  -webkit-tap-highlight-color: transparent;

  .letter {
    position: absolute;
    left: 12px;
    top: 12px;
    color: #e9e9e9;
    font-size: 16px;
    transition: transform 0.1s ease-in-out;
  }

  &::before {
    content: "";
    position: absolute;
    top: 3px;
    left: 4px;
    bottom: 14px;
    right: 12px;
    background: linear-gradient(90deg, #232323, #4a4a4a);
    border-radius: 10px;
    box-shadow:
      -10px -10px 10px rgba(255, 255, 255, 0.25),
      10px 5px 10px rgba(0, 0, 0, 0.15);
    border-left: 1px solid #0004;
    border-bottom: 1px solid #0004;
    border-top: 1px solid #0009;
    transition: all 0.1s ease-in-out;
  }

  &:active {
    transform: translateY(2px);
    box-shadow:
      inset -4px 0 4px rgba(0, 0, 0, 0.1),
      inset 0 -4px 4px rgba(0, 0, 0, 0.15),
      0 0 0 2px rgba(0, 0, 0, 0.5),
      5px 10px 15px rgba(0, 0, 0, 0.3);

    &::before {
      top: 5px;
      left: 5px;
      bottom: 11px;
      right: 11px;
      box-shadow:
        -5px -5px 5px rgba(255, 255, 255, 0.15),
        5px 3px 5px rgba(0, 0, 0, 0.1);
    }

    .letter {
      transform: translateY(1px);
    }
  }
}
نوع: button
تاریخ ایجاد: 2026/06/05
آخرین بروزرسانی: 2026/06/05