Pulse loading ghost

Pulse loading ghost: a CSS button. Copy the rules, or the prompt that rebuilds it.

loadingpulseskeletonghost

CSS
.btn-085 {
  font: 600 14px/1 system-ui,sans-serif;
  color: #9ca3af;
  background: #f3f4f6;
  border: 1px dashed #d1d5db;
  border-radius: 8px;
  padding: 12px 24px;
  cursor: wait;
  animation: btn-085-p 1.6s ease-in-out infinite
}
@keyframes btn-085-p {
  0%,100% {
    opacity: 1
  }
  50% {
    opacity: .45
  }
}
.btn-085:focus-visible {
  outline: 2px solid #9ca3af;
  outline-offset: 3px
}
@media (prefers-reduced-motion: reduce) {
  .btn-085, .btn-085 * { animation: none; transition: none; }
}
HTML
<button class="btn-085" disabled>Please wait</button>
Prompt

A disabled placeholder button that pulses: #f3f4f6 fill, 1px dashed #d1d5db border, grey #9ca3af 14px semibold text "Please wait", 8px radius, 12px by 24px padding, cursor wait. Its opacity breathes between 100% and 45% every 1.6s.