Neobrutalism Design System Bootstrapper
Objective Workflow
Phase 1: DETECT — Identify Project Tech Stack
Scan the project root to determine the web framework and styling approach:
# Check for package.json, framework config files, CSS preprocessors
ls package.json tsconfig.json vite.config.* next.config.* nuxt.config.* tailwind.config.* postcss.config.* 2>/dev/null
Identify:
- Framework: React, Vue, Svelte, Next.js, Nuxt, Astro, plain HTML
- Styling: Tailwind CSS, CSS Modules, styled-components, Sass/Less, plain CSS
- Component library: shadcn/ui, Radix, MUI, Vuetify, or none
- Entry points: main CSS file, layout files, global styles location
Phase 2: GENERATE — Create CSS Tokens and Base Styles
Based on detected stack, generate the appropriate token format:
- Tailwind: Extend
theme in tailwind config with neobrutalism tokens (borders, shadows, colors)
- CSS Variables: Generate
:root block with all design tokens
- styled-components/CSS-in-JS: Generate a theme object
- Plain CSS: Copy code/base.css directly
Always include the neobrutalism fonts:
<link href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,100..900;1,100..900&family=Bricolage+Grotesque:wght@200..800&display=swap" rel="stylesheet" />
Phase 3: APPLY — Transform Existing UI Components
- List all UI component files in the project (buttons, cards, inputs, modals, nav)
- For each component, apply the 6 Rules (see reference below):
- Add thick black borders (2-4px solid #000)
- Replace soft shadows with hard shadows (4px 4px 0 #000)
- Remove border-radius or reduce to 0px
- Replace gradients with solid vibrant colors
- Increase font weights to 700-900
- Add press-down or elevate-up interaction patterns
- Prioritize: buttons first, then cards, then inputs, then navigation
Phase 4: REVIEW — Show Before/After
For each transformed component:
- Show the before state (existing styles)
- Show the after state (neobrutalism styles)
- Flag any anti-patterns found (blurred shadows, gradients, excessive radius)
- Verify hover states and
cursor: pointer on all interactive elements
Reference Material
The 6 Rules
- Thick black borders: 2-4px solid #000
- Hard shadows:
4px 4px 0 #000 (NEVER blur)
- Sharp corners: 0px border-radius
- Vibrant colors: 2-3 accent colors max, high contrast
- Bold typography: weights 700-900
- No gradients: solid colors only
Core Tokens
/* Borders */
border: 2px solid #000; /* inputs */
border: 3px solid #000; /* cards, containers */
/* Shadows */
box-shadow: 4px 4px 0 #000; /* standard */
box-shadow: 8px 8px 0 #000; /* modals */
/* Timing */
transition: all 100ms cubic-bezier(0.4, 0, 0.2, 1);
Two Interaction Patterns
Press-Down (Buttons)
/* Default: elevated */
box-shadow: 4px 4px 0 #000;
/* Hover: lands where shadow was */
hover {
transform: translate(4px, 4px);
box-shadow: none;
background: #000;
color: #fff;
}
/* Active: tactile feedback */
active {
scale: 0.95;
}
Elevate-Up (Navigation)
/* Default: flat */
border: transparent;
box-shadow: none;
/* Hover: lifts up */
hover {
box-shadow: 4px 4px 0 #000;
transform: translate(-1px, -1px);
border-color: #000;
}
Anti-Patterns
- Blurred shadows
- Gradients
- Excessive border-radius (>30px)
- More than 3 accent colors
- Transitions >300ms
- Missing hover states on interactive elements
- Missing
cursor: pointer on clickable elements
Component References
Interactive
- Button - variants, sizes, states
- Input - form inputs, focus
- Select - dropdowns, menus
- Checkbox - checkboxes, switches
Containers
- Card - static vs clickable
- Dialog - modals
- Sheet - slide-over panels
- Tabs - tab navigation
Feedback
- Badge - tags, status
- Alert - inline notifications
- Toast - temporary notifications
Supporting
- Popover - floating content
- Table - data tables
- Label - typography
System
- Base CSS - complete stylesheet (copy to project)
- CSS Variables - complete tokens
- Colors - palette reference
- Interaction Patterns - detailed patterns
- Affordances - clickable vs static
- Decorations - sketchy effects
Resources
1---2name: aio-neobrutalism3description: Apply neobrutalism design to a web project — detects tech stack, generates CSS tokens, and transforms existing UI components.4---56# Neobrutalism Design System Bootstrapper78## Objective Workflow910### Phase 1: DETECT — Identify Project Tech Stack1112Scan the project root to determine the web framework and styling approach:1314```bash15# Check for package.json, framework config files, CSS preprocessors16ls package.json tsconfig.json vite.config.* next.config.* nuxt.config.* tailwind.config.* postcss.config.* 2>/dev/null17```1819Identify:20- **Framework**: React, Vue, Svelte, Next.js, Nuxt, Astro, plain HTML21- **Styling**: Tailwind CSS, CSS Modules, styled-components, Sass/Less, plain CSS22- **Component library**: shadcn/ui, Radix, MUI, Vuetify, or none23- **Entry points**: main CSS file, layout files, global styles location2425### Phase 2: GENERATE — Create CSS Tokens and Base Styles2627Based on detected stack, generate the appropriate token format:2829- **Tailwind**: Extend `theme` in tailwind config with neobrutalism tokens (borders, shadows, colors)30- **CSS Variables**: Generate `:root` block with all design tokens31- **styled-components/CSS-in-JS**: Generate a theme object32- **Plain CSS**: Copy [code/base.css](code/base.css) directly3334Always include the neobrutalism fonts:35```html36<link href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,100..900;1,100..900&family=Bricolage+Grotesque:wght@200..800&display=swap" rel="stylesheet" />37```3839### Phase 3: APPLY — Transform Existing UI Components40411. List all UI component files in the project (buttons, cards, inputs, modals, nav)422. For each component, apply the 6 Rules (see reference below):43 - Add thick black borders (2-4px solid #000)44 - Replace soft shadows with hard shadows (4px 4px 0 #000)45 - Remove border-radius or reduce to 0px46 - Replace gradients with solid vibrant colors47 - Increase font weights to 700-90048 - Add press-down or elevate-up interaction patterns493. Prioritize: buttons first, then cards, then inputs, then navigation5051### Phase 4: REVIEW — Show Before/After5253For each transformed component:54- Show the **before** state (existing styles)55- Show the **after** state (neobrutalism styles)56- Flag any anti-patterns found (blurred shadows, gradients, excessive radius)57- Verify hover states and `cursor: pointer` on all interactive elements5859---6061## Reference Material6263## The 6 Rules64651. **Thick black borders**: 2-4px solid #000662. **Hard shadows**: `4px 4px 0 #000` (NEVER blur)673. **Sharp corners**: 0px border-radius684. **Vibrant colors**: 2-3 accent colors max, high contrast695. **Bold typography**: weights 700-900706. **No gradients**: solid colors only7172## Core Tokens7374```css75/* Borders */76border: 2px solid #000; /* inputs */77border: 3px solid #000; /* cards, containers */7879/* Shadows */80box-shadow: 4px 4px 0 #000; /* standard */81box-shadow: 8px 8px 0 #000; /* modals */8283/* Timing */84transition: all 100ms cubic-bezier(0.4, 0, 0.2, 1);85```8687## Two Interaction Patterns8889### Press-Down (Buttons)9091```css92/* Default: elevated */93box-shadow: 4px 4px 0 #000;9495/* Hover: lands where shadow was */96hover {97 transform: translate(4px, 4px);98 box-shadow: none;99 background: #000;100 color: #fff;101}102103/* Active: tactile feedback */104active {105 scale: 0.95;106}107```108109### Elevate-Up (Navigation)110111```css112/* Default: flat */113border: transparent;114box-shadow: none;115116/* Hover: lifts up */117hover {118 box-shadow: 4px 4px 0 #000;119 transform: translate(-1px, -1px);120 border-color: #000;121}122```123124## Anti-Patterns125126- Blurred shadows127- Gradients128- Excessive border-radius (>30px)129- More than 3 accent colors130- Transitions >300ms131- Missing hover states on interactive elements132- Missing `cursor: pointer` on clickable elements133134## Component References135136### Interactive137138- [Button](references/button.md) - variants, sizes, states139- [Input](references/input.md) - form inputs, focus140- [Select](references/select.md) - dropdowns, menus141- [Checkbox](references/checkbox.md) - checkboxes, switches142143### Containers144145- [Card](references/card.md) - static vs clickable146- [Dialog](references/dialog.md) - modals147- [Sheet](references/sheet.md) - slide-over panels148- [Tabs](references/tabs.md) - tab navigation149150### Feedback151152- [Badge](references/badge.md) - tags, status153- [Alert](references/alert.md) - inline notifications154- [Toast](references/toast.md) - temporary notifications155156### Supporting157158- [Popover](references/popover.md) - floating content159- [Table](references/table.md) - data tables160- [Label](references/label.md) - typography161162### System163164- [Base CSS](code/base.css) - complete stylesheet (copy to project)165- [CSS Variables](references/css-variables.md) - complete tokens166- [Colors](references/colors.md) - palette reference167- [Interaction Patterns](references/interaction-patterns.md) - detailed patterns168- [Affordances](references/affordances.md) - clickable vs static169- [Decorations](references/decorations.md) - sketchy effects170171## Resources172173- [Research Report](neobrutalism-research-report.md) - comprehensive research174- [Neobrutalism.dev](https://www.neobrutalism.dev/) - ShadCN components175- [NN/G Article](https://www.nngroup.com/articles/neobrutalism/) - definition