Skip to content
Luna UI
Luna UI
button webcore y2k
HTML
<button class="tv-webcore-button" type="button">enter site</button>
CSS
/* A retro OS push button. The fill lightens on hover and the button sinks into its shadow when pressed. */
.tv-webcore-button {
  --tv-webcore-button-face: var(--tv-webcore-pink, #f7b5e4);
  --tv-webcore-button-fill: var(--tv-webcore-button-face, #f7b5e4);
  box-sizing: border-box;
  min-width: 6.5rem;
  min-height: 2.5rem;
  padding: 4px 16px;
  border: 1px solid var(--tv-webcore-navy, #2c2b9f);
  background: var(--tv-webcore-button-fill, #f7b5e4);
  color: var(--tv-webcore-navy, #2c2b9f);
  font: 14px/1.2 "Lucida Console", "Courier New", ui-monospace, monospace;
  letter-spacing: 0.06em;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 3px 3px 0 color-mix(in srgb, var(--tv-webcore-navy, #2c2b9f) 35%, transparent);
}

.tv-webcore-button:hover {
  --tv-webcore-button-fill: color-mix(in srgb, var(--tv-webcore-button-face, #f7b5e4) 60%, var(--tv-webcore-paper, #ffffff));
}

.tv-webcore-button:active {
  box-shadow: none;
  transform: translate(3px, 3px);
}

.tv-webcore-button:focus-visible {
  outline: 2px dashed var(--tv-webcore-navy, #2c2b9f);
  outline-offset: 4px;
}

.tv-webcore-button:disabled,
.tv-webcore-button[aria-disabled="true"] {
  --tv-webcore-button-fill: var(--tv-webcore-grey, #d9d9e5);
  border-style: dashed;
  color: color-mix(in srgb, var(--tv-webcore-navy, #2c2b9f) 55%, var(--tv-webcore-grey, #d9d9e5));
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}

/* Default: an inner rule marks the button that Enter presses. */
.tv-webcore-button--default {
  box-shadow: inset 0 0 0 3px var(--tv-webcore-button-fill, #f7b5e4), inset 0 0 0 4px var(--tv-webcore-navy, #2c2b9f), 3px 3px 0 color-mix(in srgb, var(--tv-webcore-navy, #2c2b9f) 35%, transparent);
}

.tv-webcore-button--default:active {
  box-shadow: inset 0 0 0 3px var(--tv-webcore-button-fill, #f7b5e4), inset 0 0 0 4px var(--tv-webcore-navy, #2c2b9f);
}

.tv-webcore-button--lilac {
  --tv-webcore-button-face: var(--tv-webcore-lilac, #a49bf3);
}

.tv-webcore-button--grey {
  --tv-webcore-button-face: var(--tv-webcore-grey, #d9d9e5);
}
Markdown MIT License
Usage & credits
Use when
Actions on Y2K and webcore pages: ok, cancel, enter site, sign the guestbook.
Avoid when
Dense toolbars, or icon-only actions where a square key fits better.
Requires
Use disabled (or aria-disabled="true" on links) for the unavailable state.