Brutalist Web Design: Examples You Can Edit

Brutalist web design strips a page back to raw structure: default or system fonts, visible borders, plain links and little decoration. Neo-brutalism, its friendlier relative, keeps the thick black outlines but adds flat bright colours and hard offset shadows. Both are mostly CSS choices, so the examples below are editable and every rule can be copied.

Brutalist versus neo-brutalist
TraitBrutalistNeo-brutalist
TypeSystem or monospace, often default sizesBold grotesk or system sans, large
ColourBlack, white, maybe one link blueFlat saturated fills: yellow, pink, mint
Borders1px rules, tables, visible boxes2 to 4px solid black outlines
ShadowsNoneHard offset, no blur
FeelRaw, document-likePlayful, sticker-like

Updated

Galleries of brutalist sites show screenshots you cannot inspect. Every example here is an original design written in plain HTML and CSS, rendered live, editable in place and free to copy, plus a builder for the neo-brutalist button that most people come looking for.

Neo-brutalist button builder

Adjust the border, shadow offset, fill and radius. Starting values produce this CSS:

.neo {
  background: #facc15;
  color: #000;
  border: 3px solid #000;
  border-radius: 0px;
  box-shadow: 6px 6px 0 #000;
  padding: 12px 20px;
  font-weight: 700;
  transition: transform .1s, box-shadow .1s;
}
.neo:hover {
  transform: translate(3px, 3px);
  box-shadow: 3px 3px 0 #000;
}

Four original examples

Raw document homepage

System monospace, default blue links and a plain table. The whole look is a handful of rules.

<style>
  body { font-family: ui-monospace, Menlo, Consolas, monospace; background: #fff; color: #000; }
  h1 { font-size: 28px; border-bottom: 2px solid #000; margin: 0 0 8px; }
  table { border-collapse: collapse; } td { border: 1px solid #000; padding: 4px 8px; }
</style>
<h1>MARA OKAFOR / TYPE + PRINT</h1>
<p>Index of work. <a href="#">Contact</a> <a href="#">CV</a></p>
<table><tr><td>2026</td><td><a href="#">Zine no. 4</a></td></tr><tr><td>2025</td><td><a href="#">Poster series</a></td></tr></table>

Neo-brutalist pricing card

Thick outline, flat fill and a hard shadow on both the card and the button.

<style>
  .card { max-width: 240px; padding: 16px; background: #a7f3d0; border: 3px solid #000; box-shadow: 8px 8px 0 #000;
          font-family: system-ui, sans-serif; }
  .card h2 { margin: 0; font-size: 22px; } .price { font-size: 36px; font-weight: 900; margin: 8px 0; }
  .card a { display: inline-block; padding: 10px 16px; background: #facc15; color: #000; font-weight: 800;
            border: 3px solid #000; box-shadow: 4px 4px 0 #000; text-decoration: none; }
</style>
<div class="card"><h2>Studio plan</h2><p class="price">$12</p><a href="#">Start now</a></div>

Visible grid gallery

Borders double as the grid lines, so the structure is the decoration.

<style>
  .grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid #000; border-left: 2px solid #000;
          font: 700 14px system-ui, sans-serif; }
  .grid div { border-right: 2px solid #000; border-bottom: 2px solid #000; padding: 20px 8px; }
  .grid div:nth-child(2) { background: #f472b6; } .grid div:nth-child(6) { background: #60a5fa; }
</style>
<div class="grid"><div>01 Logo</div><div>02 Poster</div><div>03 Menu</div><div>04 Signage</div><div>05 Web</div><div>06 Book</div></div>

Brutalist newsletter form

A labelled field and button with heavy outlines and a thick focus ring that fits the style.

<style>
  form { font-family: system-ui, sans-serif; } label { display: block; font-weight: 800; margin-bottom: 4px; }
  input, button { font: inherit; padding: 10px; border: 3px solid #000; }
  button { background: #000; color: #fff; font-weight: 800; }
  input:focus, button:focus { outline: 4px solid #facc15; outline-offset: 2px; }
</style>
<form><label for="em">GET THE ISSUE</label><input id="em" type="email" placeholder="[email protected]"> <button>JOIN</button></form>

Where the style works

Brutalism suits sites that want to signal personality or a do-it-yourself attitude: personal pages, studios, publications, music and event sites. Its plainness also makes pages light, because there is little imagery and few web fonts to download.

It is a harder fit where visitors need reassurance, such as healthcare, finance or checkout flows. There, a calmer layout with a single brutalist accent, like a bordered call to action, can be a better compromise.

Making it yours without copying

Most brutalist pages share a vocabulary rather than a template, so you rarely need to borrow from anyone. Decide on one structural motif, such as a visible grid, numbered sections or a ticker, and repeat it consistently.

Choose a palette of black, white and at most two flat accents. Then let spacing, borders and type size do the remaining work instead of gradients, photos or soft shadows.

How it works

  1. Tune the button builder: border width, shadow offset, fill colour and corner radius.
  2. Hover the preview to feel the press effect, then copy the CSS.
  3. Scroll to the four examples and edit their code to see the result change.
  4. Keep the accessibility notes in mind before shipping a loud palette.

Tips

Frequently asked questions

What is brutalist web design?

It is a style that shows the bones of a web page instead of polishing them: default fonts, hard edges, visible grids or tables, underlined links and few images. The aim is honesty and speed rather than prettiness.

What is neo-brutalism?

Neo-brutalism borrows the heavy outlines and blunt layout of brutalism and pairs them with flat, bright colours, chunky type and solid offset shadows. It is common in product landing pages and app interfaces that want to look bold and informal.

How do I make a neo-brutalist shadow in CSS?

Use box-shadow with an x and y offset, zero blur and a solid colour, for example box-shadow: 6px 6px 0 #000. Pair it with border: 3px solid #000. On hover, move the element toward the shadow and shrink the offset for a pressed feel.

Is brutalist design bad for accessibility?

Not by nature. Plain HTML, real links and strong outlines are often very accessible. Problems come from low-contrast colour pairs, tiny default text and removing focus styles, so check those as you would on any site.

Related: CSS button generator, CSS shadow generator, Web design principles, Colour contrast checker, CSS box model.

Start for free or see all free tools. We.Inc is free to start, with no card needed. AI building is on paid plans from $20 a month.

More in Guides

We.Inc is an AI-powered website builder you can resell under your own brand. Launch a branded client dashboard, bill on Stripe Connect, and deliver AI-generated websites in minutes. White-label plans start at $99 a month for 25 client sites, with a 7-day free trial and no per-site fees.

Product

Who It's For

Features

Resources

Company

View Sitemap