Theme
A real <button> carrying .btn-raw-block — the preview is the stylesheet, not a picture of it.
States
default
hover
focus-visible
active
disabled
not declared
.btn-raw-block {
display: inline-block;
padding: 14px 30px;
border: 4px solid #000000;
border-radius: 0;
background: #ffffff;
color: #000000;
font-family: inherit;
font-size: 15px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.06em;
cursor: pointer;
transition: none;
}
.btn-raw-block:hover {
background: #000000;
color: #ffffff;
}
.btn-raw-block:active {
background: #1a1a1a;
color: #ffffff;
}
.btn-raw-block:focus-visible {
outline: 2px solid currentColor;
outline-offset: 3px;
}
Self-contained · MIT · no build step.btn-raw-block
BrutalistSquare
Implementation notes
About the Raw Block CSS button
Raw Block uses direct typography, strong borders and deliberately exposed structure. Its square geometry creates a compact, precise control. Its structure comes from a 4px border. The interaction stays intentionally restrained.
Usage
<button class="btn-raw-block">Button</button>Pair it with the CSS tab above — the class is self-contained.
Before shipping: keep the semantic button element, verify contrast on your actual background and add a visible
:focus-visible state. If you retain motion, include a prefers-reduced-motion override.- Built with
- HTML + plain CSS
- Shape
- Square
- Exports
- CSS, Tailwind, React
- License
- MIT · commercial use
Complete the look
Build the interface around this button
We matched its palette, surface, geometry and motion to a complete UI system — like composing an outfit, not browsing unrelated parts.
Style DNA · v1
How matching works →Pro preview
Free sample
Input83% match
Neo Pop Smart Input
Neo Pop kit
Brutalist charactersolid surface
Pro preview
Toggle83% match
Neo Pop Preference Toggle
Neo Pop kit
Brutalist charactersolid surface
Unlock with Pro →Pro preview
Pro preview
Pro preview
Get the complete Neo Pop kit
Six coordinated component types, commercial license and future kit updates.