Black & Gold CSS button
Black button with gold border and lettering. Hover, click and tab to it to see every state.
CSS
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700;800;900&display=swap');
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: .5em;
padding: 15px 34px;
font-family: 'Cinzel', serif;
font-size: 14px;
font-weight: 700;
line-height: 1.2;
letter-spacing: 0.200000000000000011102230246251565404236316680908203125em;
text-transform: uppercase;
color: #e7c873;
background: #0a0a0a;
border: 1px solid #c9a24a;
border-radius: 0px;
box-shadow: 0 0 0 4px #0a0a0a, 0 0 0 5px rgba(201, 162, 74, .5);
cursor: pointer;
text-decoration: none;
white-space: nowrap;
-webkit-tap-highlight-color: transparent;
transition: transform 200ms cubic-bezier(.2,.8,.2,1), box-shadow 200ms cubic-bezier(.2,.8,.2,1), filter 200ms cubic-bezier(.2,.8,.2,1);
}
.btn:hover {
filter: brightness(1.149999999999999911182158029987476766109466552734375);
box-shadow: 0 0 0 4px #0a0a0a, 0 0 0 5px rgba(201, 162, 74, .5), 0 0 18px 0 rgba(231, 200, 115, .34999999999999997779553950749686919152736663818359375);
}
.btn:active {
transform: translateY(1px) scale(0.979999999999999982236431605997495353221893310546875);
transition-duration: 100ms;
}
.btn:focus-visible {
outline: 3px solid #0a0a0a;
outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
.btn {
transition: none;
animation: none;
}
}
HTML
<button class="btn" type="button">
Members
</button>
How this button is built
- Background: a solid #0a0a0a fill.
- Type: Cinzel, weight 700, 14px, uppercase, letter-spacing 20px, in #e7c873.
- Shape: square corners with 15px × 34px padding, plus a 1px solid border.
- Depth: layered soft drop shadows.
- Interaction: on hover it brightens slightly and glows, and it squishes slightly when clicked, with 200ms transitions.
- Accessibility: a visible
:focus-visiblering for keyboard users, and all motion turns off underprefers-reduced-motion.
How to use it
- Copy the CSS into your stylesheet. The
@importline loads the Cinzel font from Google Fonts. Move it to the top of your file, or drop it if you already load the font. - Paste the HTML where you want the button. It works on
<button>,<a>and<input type="submit">. - Change the label, or rename the
.btnclass if it clashes with your framework. Want a different colour or size? Open it in the editor, change it visually, and copy the new code.