Refined Brutalist
Neo-brutalist design system: black on white, monospaced text, 3 px borders, hard offset shadows and zero radius. For studios, portfolios and statement brands that stay disciplined.
THM/03
Refined
Brutalist
Hard, eerlijk en strak gemaakt. Geen ronding, geen verloop: alleen randen, ritme en één gele markering.
0 px radius
3 px rand
6/6 schaduw
01Achtergrond
#FFFFFF02Oppervlak
#EFEDE603Tekst
#0A0A0A04Gedempt
#55534E05Lijn
#0A0A0A · 3px06Accent
#FFE60007Accent 2
#2B4BFF08Signaal
#FF3B1F[ TYPE ] Cabinet Grotesk 900 / JetBrains Mono 400
Aa
- WERK 202644
- Identiteit voor Kade24
- Bodytekst in mono, 13 px, regelafstand 1,6. Leest als een werkdocument, niet als reclame.13
- LABEL · 11 PX11
[ KNOPPEN ]
[ FORMULIER ]
NIEUWIDENTITEITWEBVOL TOT JAN
[ KAART ]
KADE
Nieuwe huisstijl voor zeilmakerij Kade & Zn.
STUDIO KADEWerkStudioJournalContact
01Zeilmakerij Kade & Zn.Identiteit, web2026
02Brouwerij NoordschansEtiketten, verpakking2025
03Architectenbureau VlakWebsite, fotografie2025
04Festival MaasoeverCampagne, signing2024
PAST BIJ ontwerpstudio's · fotografen en portfolio's · architecten · platenlabels · merken met een uitgesproken mening
How to use it
- Paste the HTML where the themes should appear.
- Add the CSS to your stylesheet. All classes are prefixed, so nothing clashes with your own styles.
- No JavaScript needed.
<!-- Refined Brutalist · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="tbr"><div class="tbr__in">
<div class="tbr__mast">
<p class="tbr__no">THM/03</p>
<h3 class="tbr__name">Refined<br>Brutalist</h3>
<p class="tbr__mood">Hard, eerlijk en strak gemaakt. Geen ronding, geen verloop: alleen randen, ritme en één gele markering.</p>
<p class="tbr__stamp">0 px radius<br>3 px rand<br>6/6 schaduw</p>
</div>
<div class="tbr__pal">
<div class="tbr__sw" style="--c:#FFFFFF;--t:#0A0A0A"><b>01</b><span>Achtergrond</span><code>#FFFFFF</code></div>
<div class="tbr__sw" style="--c:#EFEDE6;--t:#0A0A0A"><b>02</b><span>Oppervlak</span><code>#EFEDE6</code></div>
<div class="tbr__sw" style="--c:#0A0A0A;--t:#FFFFFF"><b>03</b><span>Tekst</span><code>#0A0A0A</code></div>
<div class="tbr__sw" style="--c:#55534E;--t:#FFFFFF"><b>04</b><span>Gedempt</span><code>#55534E</code></div>
<div class="tbr__sw" style="--c:#0A0A0A;--t:#FFFFFF"><b>05</b><span>Lijn</span><code>#0A0A0A · 3px</code></div>
<div class="tbr__sw" style="--c:#FFE600;--t:#0A0A0A"><b>06</b><span>Accent</span><code>#FFE600</code></div>
<div class="tbr__sw" style="--c:#2B4BFF;--t:#FFFFFF"><b>07</b><span>Accent 2</span><code>#2B4BFF</code></div>
<div class="tbr__sw" style="--c:#FF3B1F;--t:#0A0A0A"><b>08</b><span>Signaal</span><code>#FF3B1F</code></div>
</div>
<div class="tbr__grid">
<div class="tbr__box tbr__type">
<p class="tbr__lbl">[ TYPE ] Cabinet Grotesk 900 / JetBrains Mono 400</p>
<div class="tbr__spec"><span class="tbr__aa">Aa</span>
<ol class="tbr__scale">
<li><span class="tbr__s1">WERK 2026</span><em>44</em></li>
<li><span class="tbr__s2">Identiteit voor Kade</span><em>24</em></li>
<li><span class="tbr__s3">Bodytekst in mono, 13 px, regelafstand 1,6. Leest als een werkdocument, niet als reclame.</span><em>13</em></li>
<li><span class="tbr__s4">LABEL · 11 PX</span><em>11</em></li>
</ol>
</div>
</div>
<div class="tbr__box tbr__ui">
<p class="tbr__lbl">[ KNOPPEN ]</p>
<div class="tbr__btns">
<button class="tbr__btn tbr__btn--p" type="button">Project starten</button>
<button class="tbr__btn tbr__btn--s" type="button">Bekijk werk</button>
<button class="tbr__btn tbr__btn--g" type="button">Lees meer →</button>
<button class="tbr__btn tbr__btn--p is-hover" type="button">Hover: inzakken</button>
</div>
<p class="tbr__lbl">[ FORMULIER ]</p>
<div class="tbr__form">
<label class="tbr__field"><span>E-MAIL</span><input class="tbr__input" type="text" value="jij@voorbeeld.nl"></label>
<label class="tbr__field"><span>BUDGET</span><select class="tbr__sel"><option>€ 8k tot 15k</option><option>€ 15k of meer</option></select></label>
</div>
<div class="tbr__badges"><span class="tbr__bdg tbr__bdg--y">NIEUW</span><span class="tbr__bdg">IDENTITEIT</span><span class="tbr__bdg tbr__bdg--b">WEB</span><span class="tbr__bdg tbr__bdg--r">VOL TOT JAN</span></div>
</div>
<div class="tbr__box tbr__card">
<p class="tbr__lbl">[ KAART ]</p>
<div class="tbr__case">
<div class="tbr__case-img"><span>KADE</span></div>
<div class="tbr__case-body"><p class="tbr__case-meta">CASE 14 · 2026 · ROTTERDAM</p><p class="tbr__case-t">Nieuwe huisstijl voor zeilmakerij Kade & Zn.</p></div>
</div>
</div>
</div>
<div class="tbr__site">
<div class="tbr__nav"><b>STUDIO KADE</b><span>Werk</span><span>Studio</span><span>Journal</span><span class="tbr__nav-cta">Contact</span></div>
<div class="tbr__index">
<div class="tbr__row"><span>01</span><span>Zeilmakerij Kade & Zn.</span><span>Identiteit, web</span><span>2026</span></div>
<div class="tbr__row"><span>02</span><span>Brouwerij Noordschans</span><span>Etiketten, verpakking</span><span>2025</span></div>
<div class="tbr__row"><span>03</span><span>Architectenbureau Vlak</span><span>Website, fotografie</span><span>2025</span></div>
<div class="tbr__row"><span>04</span><span>Festival Maasoever</span><span>Campagne, signing</span><span>2024</span></div>
</div>
</div>
<p class="tbr__fit"><b>PAST BIJ</b> ontwerpstudio's · fotografen en portfolio's · architecten · platenlabels · merken met een uitgesproken mening</p>
</div></div>
</div>/* Refined Brutalist · NedDev · eigen werk. */
/* fonts (Fontshare): cabinet-grotesk@500,800,900 + jet-brains-mono@400,500,700 */
.tbr{--tbr-bg:#FFFFFF;--tbr-surface:#EFEDE6;--tbr-ink:#0A0A0A;--tbr-muted:#55534E;--tbr-line:#0A0A0A;--tbr-accent:#FFE600;--tbr-accent-2:#2B4BFF;--tbr-signal:#FF3B1F;--tbr-bw:3px;--tbr-shadow:6px 6px 0 var(--tbr-ink);--tbr-display:'Cabinet Grotesk',sans-serif;--tbr-mono:'JetBrains Mono',ui-monospace,monospace;
container-type:inline-size;background:var(--tbr-bg);color:var(--tbr-ink);font-family:var(--tbr-mono);font-variant-numeric:tabular-nums}
.tbr *{box-sizing:border-box;border-radius:0}
.tbr__in{padding:32px 36px 28px;max-width:1280px;margin:0 auto}
.tbr__mast{display:grid;grid-template-columns:auto 1fr 1fr auto;align-items:end;gap:28px;border:var(--tbr-bw) solid var(--tbr-line);background:var(--tbr-ink);color:#fff;padding:22px 24px}
.tbr__no{margin:0;align-self:start;font-size:12px;font-weight:700;background:var(--tbr-accent);color:var(--tbr-ink);padding:4px 7px}
.tbr__name{margin:0;font:900 76px/.86 var(--tbr-display);letter-spacing:-.035em;text-transform:uppercase}
.tbr__mood{margin:0;font-size:14px;line-height:1.6;color:#D6D4CE;max-width:40ch}
.tbr__stamp{margin:0;font-size:11px;line-height:1.7;font-weight:700;border:2px solid #fff;padding:8px 10px;transform:rotate(-4deg);text-transform:uppercase}
.tbr__pal{display:grid;grid-template-columns:repeat(8,1fr);border:var(--tbr-bw) solid var(--tbr-line);border-top:0}
.tbr__sw{background:var(--c);color:var(--t);padding:12px 12px 10px;min-height:118px;display:flex;flex-direction:column;border-left:var(--tbr-bw) solid var(--tbr-line)}
.tbr__sw:first-child{border-left:0}
.tbr__sw b{font:900 26px/1 var(--tbr-display)}
.tbr__sw span{margin-top:auto;font-size:12px;font-weight:700;text-transform:uppercase}
.tbr__sw code{font:400 11px var(--tbr-mono);opacity:.85}
.tbr__grid{display:grid;grid-template-columns:1.25fr 1fr .8fr;gap:22px;margin-top:22px}
.tbr__box{border:var(--tbr-bw) solid var(--tbr-line);padding:18px;background:var(--tbr-bg);box-shadow:var(--tbr-shadow);min-width:0}
.tbr__lbl{margin:0 0 14px;font-size:11px;font-weight:700;letter-spacing:.06em}
.tbr__ui .tbr__lbl+.tbr__btns{margin-bottom:18px}
.tbr__spec{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}
.tbr__aa{font:900 120px/.8 var(--tbr-display);letter-spacing:-.05em;background:var(--tbr-accent);padding:10px 8px 6px;border:var(--tbr-bw) solid var(--tbr-line)}
.tbr__scale{list-style:none;margin:0;padding:0}
.tbr__scale li{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-bottom:2px solid var(--tbr-line);padding:6px 0}
.tbr__scale li:last-child{border-bottom:0}
.tbr__scale em{font-style:normal;font-size:11px;font-weight:700;background:var(--tbr-ink);color:#fff;padding:1px 5px}
.tbr__s1{font:900 44px/.95 var(--tbr-display);letter-spacing:-.03em}.tbr__s2{font:800 24px/1.05 var(--tbr-display)}.tbr__s3{font-size:13px;line-height:1.6;color:var(--tbr-muted)}.tbr__s4{font-size:11px;font-weight:700;letter-spacing:.12em}
.tbr__btns{display:flex;flex-wrap:wrap;gap:12px}
.tbr__btn{font:700 13px/1 var(--tbr-mono);text-transform:uppercase;padding:12px 14px;border:var(--tbr-bw) solid var(--tbr-line);cursor:pointer;transition:transform .08s,box-shadow .08s,background .08s}
.tbr__btn--p{background:var(--tbr-accent);color:var(--tbr-ink);box-shadow:4px 4px 0 var(--tbr-ink)}
.tbr__btn--p:hover,.tbr__btn--p.is-hover{transform:translate(4px,4px);box-shadow:0 0 0 var(--tbr-ink)}
.tbr__btn--s{background:var(--tbr-bg);color:var(--tbr-ink);box-shadow:4px 4px 0 var(--tbr-ink)}.tbr__btn--s:hover{background:var(--tbr-ink);color:#fff}
.tbr__btn--g{background:transparent;border-color:transparent;text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:4px;padding-left:2px;padding-right:2px}.tbr__btn--g:hover{background:var(--tbr-accent)}
.tbr__form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.tbr__field span{display:block;font-size:11px;font-weight:700;margin-bottom:6px;letter-spacing:.08em}
.tbr__input,.tbr__sel{width:100%;font:400 13px var(--tbr-mono);color:var(--tbr-ink);background:var(--tbr-bg);border:var(--tbr-bw) solid var(--tbr-line);padding:9px 10px;outline:none}
.tbr__sel{appearance:none;background-image:linear-gradient(var(--tbr-ink),var(--tbr-ink));background-size:3px 100%;background-position:calc(100% - 34px) 0;background-repeat:no-repeat;padding-right:44px}
.tbr__field:last-child{position:relative}.tbr__field:last-child::after{content:"↓";position:absolute;right:12px;bottom:9px;font-weight:700;pointer-events:none}
.tbr__input:focus,.tbr__sel:focus{background:var(--tbr-accent)}
.tbr__badges{display:flex;flex-wrap:wrap;gap:8px}
.tbr__bdg{font-size:11px;font-weight:700;padding:4px 7px;border:2px solid var(--tbr-line);white-space:nowrap}
.tbr__bdg--y{background:var(--tbr-accent)}.tbr__bdg--b{background:var(--tbr-accent-2);color:#fff}.tbr__bdg--r{background:var(--tbr-signal);transform:rotate(-3deg)}
.tbr__case{border:var(--tbr-bw) solid var(--tbr-line);transition:transform .1s,box-shadow .1s}
.tbr__case:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--tbr-accent-2)}
.tbr__case-img{height:120px;background:repeating-linear-gradient(90deg,var(--tbr-accent-2) 0 22px,#fff 22px 26px);display:grid;place-items:center;border-bottom:var(--tbr-bw) solid var(--tbr-line)}
.tbr__case-img span{font:900 40px/1 var(--tbr-display);background:#fff;padding:4px 10px;border:var(--tbr-bw) solid var(--tbr-line)}
.tbr__case-body{padding:12px}
.tbr__case-meta{margin:0 0 6px;font-size:10px;font-weight:700;color:var(--tbr-muted)}
.tbr__case-t{margin:0;font:800 19px/1.1 var(--tbr-display)}
.tbr__site{margin-top:26px;border:var(--tbr-bw) solid var(--tbr-line)}
.tbr__nav{display:flex;align-items:stretch;border-bottom:var(--tbr-bw) solid var(--tbr-line);font-size:12px;font-weight:700;text-transform:uppercase}
.tbr__nav b{padding:12px 16px;background:var(--tbr-ink);color:#fff;font:900 16px/1 var(--tbr-display);display:flex;align-items:center}
.tbr__nav span{padding:12px 16px;border-left:var(--tbr-bw) solid var(--tbr-line);display:flex;align-items:center}
.tbr__nav span:nth-of-type(1){margin-left:auto}
.tbr__nav-cta{background:var(--tbr-accent)}
.tbr__row{display:grid;grid-template-columns:60px 1.4fr 1fr 80px;align-items:baseline;gap:16px;padding:12px 16px;border-top:2px solid var(--tbr-line);transition:background .08s,color .08s;cursor:default}
.tbr__row:first-child{border-top:0}
.tbr__row span:nth-child(2){font:800 26px/1.05 var(--tbr-display);letter-spacing:-.02em}
.tbr__row span:nth-child(3){font-size:12px;color:var(--tbr-muted)}
.tbr__row span:last-child{text-align:right;font-weight:700}
.tbr__row:hover{background:var(--tbr-ink);color:#fff}.tbr__row:hover span:nth-child(3){color:var(--tbr-accent)}
.tbr__fit{margin:18px 0 0;font-size:12px;line-height:1.6}.tbr__fit b{background:var(--tbr-ink);color:#fff;padding:2px 6px;margin-right:8px}
@container (max-width:1060px){.tbr__grid{grid-template-columns:1fr 1fr}.tbr__type{grid-column:1/-1}.tbr__pal{grid-template-columns:repeat(4,1fr)}.tbr__sw:nth-child(5){border-left:0}.tbr__sw:nth-child(n+5){border-top:var(--tbr-bw) solid var(--tbr-line)}.tbr__mast{grid-template-columns:auto 1fr}.tbr__stamp{display:none}}
@container (max-width:640px){.tbr__in{padding:20px 16px}.tbr__grid{grid-template-columns:1fr}.tbr__mast{grid-template-columns:1fr;gap:14px}.tbr__name{font-size:48px}.tbr__pal{grid-template-columns:repeat(2,1fr)}.tbr__sw:nth-child(odd){border-left:0}.tbr__sw:nth-child(n+3){border-top:var(--tbr-bw) solid var(--tbr-line)}.tbr__sw{min-height:84px}.tbr__spec{grid-template-columns:1fr}.tbr__aa{font-size:80px;justify-self:start}.tbr__s1{font-size:34px}.tbr__form{grid-template-columns:1fr}.tbr__box{box-shadow:4px 4px 0 var(--tbr-ink);margin-right:4px}
.tbr__nav span:not(.tbr__nav-cta){display:none}.tbr__nav-cta{margin-left:auto}.tbr__row{grid-template-columns:30px 1fr;gap:4px 10px}.tbr__row span:nth-child(2){font-size:20px}.tbr__row span:nth-child(3){grid-column:2}.tbr__row span:last-child{display:none}}
@media (prefers-reduced-motion:reduce){.tbr *{transition:none!important}}
More themes
Seen something you like?
Add it to your selection and send it over. We build your site around it, in your brand.
Get in touch →