Skip to content

Brutalist

brutalist

Raw grids, thick ink strokes, hard shadows, loud primaries.

Neo-brutalist web: paper background, 3px black strokes, zero radius, offset shadows that never blur, heavy grotesk headlines and mono labels. Interactions are mechanical — elements press into their shadow.

Fonts
Archivo Black · displaySpace Grotesk · bodySpace Mono · mono
Demo product
Shipyard — Changelogs, release notes and in-app announcements generated from your Git history.
Palette

Use Brutalist in your project

Installing any Brutalist module brings its tokens. Then follow the one-time setup.

Setup guide

Sections 32

UI components 24

App layouts 12

Effects 16

Set up Brutalist in your project

Once per project. Installing any Brutalist module copies its tokens for you — or install them alone first. New to Artmode? Start with the getting started guide.

npx shadcn@latest add https://artmode.alpvisionweb.online/r/brutalist-theme.json

1. Import the tokens

app/globals.css
@import "tailwindcss";
@import "../components/modules/_core/da-theme.css";
@import "../components/modules/brutalist/tokens.css";

3. Scope the area

any page or layout
<div data-da="brutalist">
  {/* Brutalist modules */}
</div>

2. Load the fonts

app/layout.tsx
import { Archivo_Black, Space_Grotesk, Space_Mono } from "next/font/google";

const brutalistDisplay = Archivo_Black({ subsets: ["latin"], variable: "--font-brutalist-display", weight: ["400"] });
const brutalistBody = Space_Grotesk({ subsets: ["latin"], variable: "--font-brutalist-body" });
const brutalistMono = Space_Mono({ subsets: ["latin"], variable: "--font-brutalist-mono", weight: ["400","700"] });

// <html className={`${brutalistDisplay.variable} ${brutalistBody.variable} ${brutalistMono.variable}`}>