پیش‌نمایش زنده
کد HTML
<button>
  <span class="button_top"> Button </span>
</button>
کد CSS
button {
  --button_radius: 0.75em;
  --button_color: #e8e8e8;
  --button_outline_color: #000000;
  --hover_offset: 4px;
  --active_offset: 2px;
  --shadow_color: rgba(0, 0, 0, 0.5);
  --glitch_offset: 2px;

  font-size: 17px;
  font-weight: bold;
  border: none;
  width: 200px;
  border-radius: var(--button_radius);
  background: var(--button_outline_color);
  position: relative;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.23, 1, 0.32, 1);
  overflow: hidden;
}

.button_top {
  display: block;
  box-sizing: border-box;
  border: 5px solid var(--button_outline_color);
  border-radius: var(--button_radius);
  padding: 0.75em 1.5em;
  background: var(--button_color);
  color: var(--button_outline_color);
  transform: translateY(-0.2em);
  transition: transform 0.2s cubic-bezier(0.23, 1, 0.32, 1);
}

button:hover {
  box-shadow: var(--hover_offset) var(--hover_offset) 0 var(--shadow_color);
  transform: translate(
    calc(-1 * var(--hover_offset)),
    calc(-1 * var(--hover_offset))
  );
}

button:hover .button_top {
  transform: translateY(-0.33em);
}

button:active .button_top {
  transform: translateY(0);
}

button:active {
  box-shadow: var(--active_offset) var(--active_offset) 0 var(--shadow_color);
  transform: translate(
    calc(-1 * var(--active_offset)),
    calc(-1 * var(--active_offset))
  );
}

button:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--button_outline_color),
    inset 0 0 0 2px var(--button_color);
}

/* Brutalist hover effect */
button::before,
button::after {
  content: attr(data-content);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--button_color);
  color: var(--button_outline_color);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s cubic-bezier(0.23, 1, 0.32, 1);
  overflow: hidden;
  border-radius: var(--button_radius);
  opacity: 0;
}

/* Brutalist active effect */
button:active::before,
button:active::after {
  transform: none;
}

/* Additional brutalist flair */
@keyframes brutalistShake {
  0%,
  100% {
    transform: translateX(0) translateY(0);
  }
  25% {
    transform: translateX(-2px) translateY(-2px) rotate(-1deg);
  }
  75% {
    transform: translateX(2px) translateY(2px) rotate(1deg);
  }
}

button:hover {
  animation: brutalistShake 0.4s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}
نوع: button
تاریخ ایجاد: 2026/06/05
آخرین بروزرسانی: 2026/06/05