Part of the Webcore kit
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);
}
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.
- From
- Luna UI