The MotherDuck Brutalist design system embraces a bold, unapologetic aesthetic that prioritizes:
| Color Name | Hex Code | Tailwind Class | Usage | Instances |
|---|---|---|---|---|
| Yellow Primary | #FFE600 |
bg-[#FFE600] |
CTA backgrounds, highlights, badges, icon containers | 25+ |
| Blue Primary | #4DA6FF |
bg-[#4DA6FF] |
Primary buttons, hover states, accent sections | 20+ |
| Cream Background | #F5F1E8 |
bg-[#F5F1E8] |
Main page background, card backgrounds | 15+ |
| Black | #000000 |
border-black |
All borders, shadows, text emphasis | 100+ |
| White | #FFFFFF |
bg-white |
Card surfaces, navigation, content blocks | 30+ |
| Color Name | Hex Code | Tailwind Class | Usage |
|---|---|---|---|
| Gray 900 | #111827 |
bg-gray-900 |
Code editor background, footer |
| Gray 700 | #374151 |
text-gray-700 |
Body text, descriptions |
| Gray 400 | #9CA3AF |
text-gray-400 |
Footer links, secondary text |
| Gray 300 | #D1D5DB |
border-gray-300 |
Navigation border |
| Gray 200 | #E5E7EB |
bg-gray-200 |
Subtle card backgrounds |
| Gray 100 | #F3F4F6 |
hover:bg-gray-100 |
Hover states |
| Color Name | Hex Code | Tailwind Class | Usage |
|---|---|---|---|
| Red 500 | #EF4444 |
bg-red-500 |
Traffic light dot (decorative) |
| Yellow 400 | #FACC15 |
bg-yellow-400 |
Traffic light dot, stars |
| Yellow 300 | #FDE047 |
text-yellow-300 |
SQL function highlighting |
| Green 500 | #22C55E |
bg-green-500 |
Traffic light dot, success indicators |
| Green 400 | #4ADE80 |
text-green-400 |
Code text color |
| Blue 400 | #60A5FA |
text-blue-400 |
SQL keyword highlighting |
| Orange 400 | #FB923C |
text-orange-400 |
SQL string highlighting |
Level 1 (Page): #F5F1E8 (Cream) - Base layer
Level 2 (Sections): #FFFFFF (White) or #4DA6FF (Blue accent)
Level 3 (Cards): #F5F1E8 (Cream) or #FFFFFF (White)
Level 4 (Highlights): #FFE600 (Yellow) - Maximum emphasis
Level 5 (Code): #111827 (Gray 900) - Dark terminal
border-2 border-black)style="border-width: 3px;")All shadows are hard offset shadows with NO blur:
/* Small Element Shadow */
shadow-[4px_4px_0_0_rgba(0,0,0,1)]
/* Standard: 4px right, 4px down, no blur, full opacity black */
/* Medium Element Shadow */
shadow-[6px_6px_0_0_rgba(0,0,0,1)]
/* Standard cards and buttons: 6px offset */
/* Large Element Shadow */
shadow-[8px_8px_0_0_rgba(0,0,0,1)]
/* Hero elements and important cards: 8px offset */
Hover State: Shadows reduce by 50% and element translates:
/* Hover transformation */
shadow-[6px_6px_0_0_rgba(0,0,0,1)] → shadow-[3px_3px_0_0_rgba(0,0,0,1)]
translate-x-[3px] translate-y-[3px]
/* Element moves toward shadow, creating "press" effect */
Single Font Philosophy: The entire design uses Space Mono exclusively for:
body {
font-family: 'Space Mono', monospace;
}
| Weight | Value | Tailwind Class | Usage | Frequency |
|---|---|---|---|---|
| Regular | 400 | font-normal |
Body text, descriptions, paragraphs | Common |
| Bold | 700 | font-bold |
All headings, buttons, labels, nav links | Very Common |
Critical Rule: Space Mono only has 2 weights. Use bold for ALL emphasis.
| Element | Size | Line Height | Weight | Tailwind Classes | Usage |
|---|---|---|---|---|---|
| Mega Heading | 72px | 1.0 | Bold | text-7xl font-bold tracking-tight leading-none |
Hero main title |
| H1 | 60px | 1.1 | Bold | text-6xl font-bold tracking-tight |
Large section headers |
| H2 | 48px | 1.2 | Bold | text-5xl font-bold tracking-tight |
Section headings |
| H3 | 36px | 1.2 | Bold | text-4xl font-bold tracking-tight |
Subsection headings |
| H4 | 30px | 1.3 | Bold | text-3xl font-bold |
Card headings |
| H5 | 24px | 1.3 | Bold | text-2xl font-bold |
Use case titles |
| H6 | 20px | 1.4 | Bold | text-xl font-bold |
Component titles |
| Body Large | 20px | 1.5 | Regular | text-xl text-gray-700 |
Hero descriptions |
| Body | 18px | 1.6 | Regular | text-lg text-gray-700 |
Standard paragraphs |
| Body Small | 14px | 1.5 | Regular | text-sm |
Card descriptions |
| Label | 14px | 1.4 | Bold | text-sm font-bold |
Buttons, navigation |
| Micro | 12px | 1.4 | Bold | text-xs font-bold uppercase tracking-wider |
Badges, tags |
| Element | Mobile → Desktop | Tailwind Responsive |
|---|---|---|
| Mega Heading | 48px → 60px → 72px | text-5xl md:text-6xl lg:text-7xl |
| H1 | 36px → 48px → 60px | text-4xl md:text-5xl lg:text-6xl |
| H2 | 36px → 48px | text-4xl md:text-5xl |
| Body Large | 18px → 20px | text-lg md:text-xl |
<h1 class="text-5xl md:text-6xl lg:text-7xl font-bold tracking-tight leading-none">
MAKING<br/>
BIG DATA<br/>
<span class="inline-block px-3 bg-[#FFE600] border-2 border-black shadow-[6px_6px_0_0_rgba(0,0,0,1)]">
FEEL SMALL
</span>
</h1>
Specifications:
tracking-tight)leading-none)<div class="inline-block px-4 py-2 bg-[#4DA6FF] text-white border-2 border-black shadow-[4px_4px_0_0_rgba(0,0,0,1)]">
<span class="text-xs font-bold uppercase tracking-wider">Data Integration</span>
</div>
<h2 class="text-4xl md:text-5xl font-bold tracking-tight">
QUERY<br/>
ANYTHING,<br/>
ANYWHERE
</h2>
Pattern:
<p class="text-lg md:text-xl text-gray-700 max-w-xl">
The cloud analytics platform that brings DuckDB's speed...
</p>
Specifications:
text-gray-700 for body text (sufficient contrast)max-w-xl (36rem ≈ 576px) for readabilitymd: breakpoint| Size Range | Tracking Class | CSS Value | Usage |
|---|---|---|---|
| 72px+ | tracking-tight |
-0.025em |
Mega headings |
| 48-60px | tracking-tight |
-0.025em |
H1, H2 |
| 12px (uppercase) | tracking-wider |
0.05em |
Badges, labels |
| Default | (none) | 0em |
Body text, buttons |
Uppercase Usage:
MAKING BIG DATA FEEL SMALL)WHY IT'S BETTER)CLOUD ANALYTICS)START FOR FREE)BLAZING FAST)Sentence Case:
The design uses Tailwind’s default spacing scale based on 4px increments.
| Scale | Pixels | Rem | Tailwind Class | Usage |
|---|---|---|---|---|
| 0.5 | 2px | 0.125rem | p-0.5 |
Micro spacing |
| 1 | 4px | 0.25rem | p-1 |
Minimal spacing |
| 2 | 8px | 0.5rem | p-2, gap-2 |
Tight spacing |
| 3 | 12px | 0.75rem | p-3, space-x-3 |
Compact spacing |
| 4 | 16px | 1rem | p-4, gap-4 |
Standard spacing |
| 6 | 24px | 1.5rem | p-6, gap-6 |
Card padding |
| 8 | 32px | 2rem | p-8, gap-8 |
Large card padding |
| 12 | 48px | 3rem | gap-12 |
Section spacing |
| 16 | 64px | 4rem | py-16 |
Section padding (mobile) |
| 20 | 80px | 5rem | py-20 |
Section padding (desktop) |
| 24 | 96px | 6rem | py-24 |
Hero section padding |
<!-- Small Button -->
<button class="px-4 py-2"> <!-- 16px × 8px -->
<!-- Medium Button (Navigation) -->
<button class="px-6 py-2"> <!-- 24px × 8px -->
<!-- Large Button (Hero CTAs) -->
<button class="px-8 py-3"> <!-- 32px × 12px -->
<!-- Extra Large Button (Final CTA) -->
<button class="px-10 py-4"> <!-- 40px × 16px -->
<!-- Standard Feature Card -->
<div class="p-6"> <!-- 24px all sides -->
<!-- Large Card (Data Integration) -->
<div class="p-8"> <!-- 32px all sides -->
<!-- Mobile: 64px, Desktop: 96px -->
<section class="py-16 md:py-24">
<!-- Consistent Desktop: 80px -->
<section class="py-20">
<!-- Card Grid -->
<div class="grid gap-6"> <!-- 24px between items -->
<!-- Large Content Grid -->
<div class="grid gap-12"> <!-- 48px between columns -->
<!-- Use Case Grid -->
<div class="grid gap-8"> <!-- 32px between cards -->
<!-- Tight Stack (Hero Content) -->
<div class="space-y-6"> <!-- 24px vertical spacing -->
<!-- Icon List -->
<ul class="space-y-3"> <!-- 12px vertical spacing -->
<!-- Horizontal Icons -->
<div class="space-x-2"> <!-- 8px horizontal spacing -->
<!-- Standard Container -->
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<!-- Max width: 1280px, Padding: 16px → 24px → 32px -->
<!-- Narrow Container (CTA Section) -->
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<!-- Max width: 896px -->
<!-- Extra Wide Container (Stats) -->
<div class="max-w-5xl mx-auto">
<!-- Max width: 1024px -->
Top Banner: 8px vertical (py-2)
Navigation Height: 70px mobile, 90px desktop
Hero Section: 64px mobile → 96px desktop (py-16 md:py-24)
Standard Section: 80px (py-20)
Component Spacing: 48px (mb-12)
Card Internal: 24-32px (p-6, p-8)
Text Blocks: 24px (space-y-6)
Paragraphs: 16px (mb-4)
<button class="px-8 py-3 bg-[#4DA6FF] text-white font-bold border-2 border-black
shadow-[6px_6px_0_0_rgba(0,0,0,1)]
hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]
hover:translate-x-[3px] hover:translate-y-[3px]
transition-all">
Start for Free
</button>
Specifications:
#4DA6FF (blue primary)<button class="px-8 py-3 bg-white font-bold border-2 border-black
shadow-[6px_6px_0_0_rgba(0,0,0,1)]
hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]
hover:translate-x-[3px] hover:translate-y-[3px]
transition-all">
View Demo
</button>
Specifications:
<button class="px-10 py-4 bg-black text-white text-lg font-bold border-2 border-black
shadow-[8px_8px_0_0_rgba(0,0,0,1)]
hover:shadow-[4px_4px_0_0_rgba(0,0,0,1)]
hover:translate-x-[4px] hover:translate-y-[4px]
transition-all">
Start Free Trial
</button>
Specifications:
text-lg<button class="px-4 py-2 text-sm font-bold hover:bg-gray-100 transition-colors">
Sign In
</button>
Specifications:
<div class="bg-[#F5F1E8] border-2 border-black p-6
shadow-[6px_6px_0_0_rgba(0,0,0,1)]
hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]
hover:translate-x-[3px] hover:translate-y-[3px]
transition-all">
<!-- Icon Container -->
<div class="w-12 h-12 bg-[#FFE600] border-2 border-black
flex items-center justify-center mb-4">
<i data-lucide="zap" class="w-6 h-6" style="stroke-width: 2.5;"></i>
</div>
<!-- Title -->
<h3 class="text-xl font-bold mb-2">BLAZING FAST</h3>
<!-- Description -->
<p class="text-sm text-gray-700">
Query gigabytes in milliseconds with DuckDB's vectorized engine.
</p>
</div>
Specifications:
#F5F1E8)<div class="bg-white border-2 border-black shadow-[8px_8px_0_0_rgba(0,0,0,1)] p-6">
<!-- Content -->
</div>
Specifications:
<div class="flex items-center space-x-3 p-3
bg-[#FFE600] border-2 border-black">
<!-- Icon + Text + Status Indicator -->
</div>
Specifications:
<!-- White Background -->
<div class="inline-block px-4 py-2 bg-white border-2 border-black
shadow-[4px_4px_0_0_rgba(0,0,0,1)]">
<span class="text-xs font-bold uppercase tracking-wider">
Cloud Analytics
</span>
</div>
<!-- Blue Background -->
<div class="inline-block px-4 py-2 bg-[#4DA6FF] text-white border-2 border-black
shadow-[4px_4px_0_0_rgba(0,0,0,1)]">
<span class="text-xs font-bold uppercase tracking-wider">
Data Integration
</span>
</div>
Specifications:
inline-block<div class="mt-3 px-3 py-2 bg-[#FFE600] border-2 border-black inline-block">
<span class="text-xs font-bold">⚡ Executed in 0.03s • 1.2M rows</span>
</div>
Specifications:
<header class="sticky top-0 z-50 bg-white border-b border-gray-300"
style="border-width: 2px;">
<nav class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between h-[70px] md:h-[90px]">
<!-- Logo | Nav Links | CTAs -->
</div>
</nav>
</header>
Specifications:
<a href="#" class="text-sm font-bold hover:text-[#4DA6FF] transition-colors">
Product
</a>
Specifications:
<div class="bg-white border-2 border-black shadow-[8px_8px_0_0_rgba(0,0,0,1)] p-6">
<!-- Window Controls (Traffic Lights) -->
<div class="flex items-center space-x-2 mb-4 pb-3 border-b-2 border-gray-200">
<div class="flex space-x-2">
<div class="w-3 h-3 rounded-full bg-red-500 border border-black"></div>
<div class="w-3 h-3 rounded-full bg-yellow-400 border border-black"></div>
<div class="w-3 h-3 rounded-full bg-green-500 border border-black"></div>
</div>
<div class="flex-1 text-center">
<span class="text-xs font-bold">query.sql</span>
</div>
</div>
<!-- Code Block -->
<div class="bg-gray-900 p-4 border-2 border-black">
<pre class="text-sm text-green-400 font-mono leading-relaxed">
<span class="text-blue-400">SELECT</span>
product_name,
<span class="text-yellow-300">SUM</span>(revenue) ...
</pre>
</div>
<!-- Result Badge -->
<div class="mt-3 px-3 py-2 bg-[#FFE600] border-2 border-black inline-block">
<span class="text-xs font-bold">⚡ Executed in 0.03s • 1.2M rows</span>
</div>
</div>
Syntax Highlighting:
text-blue-400text-yellow-300text-orange-400text-green-400bg-gray-900 (dark terminal)<div class="bg-white border-2 border-black shadow-[6px_6px_0_0_rgba(0,0,0,1)] p-6">
<!-- Star Rating -->
<div class="mb-4">
<span class="text-[#FFE600] text-2xl">★★★★★</span>
</div>
<!-- Quote -->
<p class="text-sm mb-4 leading-relaxed">
"We migrated from Snowflake and saw 10x faster queries..."
</p>
<!-- Author -->
<div class="flex items-center space-x-3 pt-4 border-t-2 border-gray-200">
<div class="w-10 h-10 bg-gray-300 border-2 border-black rounded-full
flex items-center justify-center font-bold">
SC
</div>
<div>
<div class="font-bold text-sm">Sarah Chen</div>
<div class="text-xs text-gray-600">Lead Engineer, DataCo</div>
</div>
</div>
</div>
Specifications:
Core Principle: All shadows are hard-edged offsets with NO BLUR.
/* Shadow Format */
shadow-[Xpx_Ypx_BLUR_SPREAD_rgba(R,G,B,ALPHA)]
/* Our Usage: No blur, no spread, full opacity black */
shadow-[Xpx_Ypx_0_0_rgba(0,0,0,1)]
| Elevation | Shadow Class | Offset | Usage | Examples |
|---|---|---|---|---|
| Level 1 | shadow-[4px_4px_0_0_rgba(0,0,0,1)] |
4px | Small elements, badges, small buttons | Eyebrow badges, nav button |
| Level 2 | shadow-[6px_6px_0_0_rgba(0,0,0,1)] |
6px | Standard cards, main buttons | Feature cards, CTAs |
| Level 3 | shadow-[8px_8px_0_0_rgba(0,0,0,1)] |
8px | Hero elements, important cards | Code editor, large cards |
Rule: Shadows reduce by 50%, element translates by remaining shadow amount.
<!-- Resting State -->
shadow-[6px_6px_0_0_rgba(0,0,0,1)]
<!-- Hover State -->
hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]
hover:translate-x-[3px]
hover:translate-y-[3px]
Visual Effect: Element appears to “press down” toward the shadow.
/* Small Badge */
.badge {
box-shadow: 4px 4px 0 0 rgba(0, 0, 0, 1);
}
/* Standard Card */
.card {
box-shadow: 6px 6px 0 0 rgba(0, 0, 0, 1);
}
.card:hover {
box-shadow: 3px 3px 0 0 rgba(0, 0, 0, 1);
transform: translate(3px, 3px);
}
/* Hero Element */
.hero-card {
box-shadow: 8px 8px 0 0 rgba(0, 0, 0, 1);
}
Static Elements (No hover):
Interactive Elements (Hover effect):
Critical Design Principle: All rectangular components have sharp corners (0px radius).
/* Default for ALL components */
border-radius: 0;
Only Elements with rounded-full:
| Element | Tailwind Class | Border Radius | Usage |
|---|---|---|---|
| Logo Container | rounded-full |
9999px | Duck emoji container |
| Traffic Light Dots | rounded-full |
9999px | Red, yellow, green dots |
| Status Indicators | rounded-full |
9999px | Connection status dots |
| Avatar/Initials | rounded-full |
9999px | Testimonial avatars |
| Checkmark Containers | rounded-full |
9999px | Yellow check circles |
<!-- ❌ WRONG: Rounded corners -->
<div class="rounded-lg"> <!-- DO NOT USE -->
<!-- ✅ CORRECT: Sharp corners (default) -->
<div class="border-2 border-black"> <!-- No border-radius class -->
<!-- ✅ CORRECT: Circle -->
<div class="rounded-full"> <!-- Only for truly circular elements -->
❌ Soft, rounded design:
┌─────────────┐
│ │ ← Rounded corners (NOT our style)
└─────────────┘
✅ Sharp, brutalist design:
┌─────────────┐
│ │ ← 90° angles (OUR STYLE)
└─────────────┘
✅ Perfect circles:
● ← rounded-full (ONLY exception)
Tailwind Classes Used:
<!-- All Properties (Position, Shadow, Color) -->
transition-all
<!-- Color Only -->
transition-colors
<button class="shadow-[6px_6px_0_0_rgba(0,0,0,1)]
hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]
hover:translate-x-[3px] hover:translate-y-[3px]
transition-all">
Behavior:
Duration: Default Tailwind transition (~300ms)
<div class="shadow-[6px_6px_0_0_rgba(0,0,0,1)]
hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]
hover:translate-x-[3px] hover:translate-y-[3px]
transition-all">
Same as buttons - consistent interaction language.
<a class="hover:text-[#4DA6FF] transition-colors">Product</a>
<button class="hover:bg-gray-100 transition-colors">Sign In</button>
Behavior:
@keyframes float {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-10px); }
}
.float-animation {
animation: float 3s ease-in-out infinite;
}
Usage: Applied to duck emoji decorations
<div class="float-animation">🦆</div>
Behavior:
.illustration-shadow {
filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.1));
}
Usage: Soft shadow on floating duck emoji Exception: This is a SOFT shadow (blur) for decorative illustrations only
| Transition | Duration | Easing | Usage |
|---|---|---|---|
transition-all |
~300ms | ease | Button/card hover |
transition-colors |
~200ms | ease | Link/text color |
| Float animation | 3000ms | ease-in-out | Decorative motion |
All animations use pure CSS/Tailwind:
Minimal Transparency Philosophy: The design favors solid colors over transparency.
| Opacity | Usage | Example |
|---|---|---|
| 100% | All UI components | Standard (no opacity class) |
| 90% | Accent text on colored backgrounds | text-white/90 (blue section) |
| 10% | Soft shadows on decorations | rgba(0, 0, 0, 0.1) (illustration shadow) |
<!-- Black text on cream/white (Primary) -->
<div class="bg-[#F5F1E8] text-gray-900">
<!-- White text on blue (Section Headers) -->
<div class="bg-[#4DA6FF] text-white">
<!-- Gray text for descriptions -->
<p class="text-gray-700">
No Semi-Transparent Overlays: All backgrounds are solid colors.
All borders are 100% solid:
border-black <!-- rgba(0, 0, 0, 1) -->
border-gray-300 <!-- Solid gray -->
Hard shadows: rgba(0, 0, 0, 1) - Full opacity black
Soft decoration shadow: rgba(0, 0, 0, 0.1) - 10% opacity (decorative only)
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<!-- Max width 1280px, centered, responsive padding -->
</div>
Usage Count: 10+ sections Padding Breakdown:
<!-- Space Between (Navigation) -->
<div class="flex items-center justify-between">
<div>Logo</div>
<div>Navigation</div>
<div>CTAs</div>
</div>
<!-- Centered (Vertical + Horizontal) -->
<div class="flex items-center justify-center">
<!-- Start Aligned with Gap -->
<div class="flex items-center space-x-3">
<div>Icon</div>
<div>Text</div>
</div>
<!-- Two Column (Content + Visual) -->
<div class="grid md:grid-cols-2 gap-12 items-center">
<!-- Four Column (Features) -->
<div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6">
<!-- Three Column (Testimonials) -->
<div class="grid md:grid-cols-3 gap-8">
Pattern: Mobile stacks, desktop spreads horizontally.
<!-- Hero Content Stack (24px gaps) -->
<div class="space-y-6">
<div>Badge</div>
<h1>Heading</h1>
<p>Description</p>
<div>Buttons</div>
</div>
<!-- Tight List (12px gaps) -->
<ul class="space-y-3">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<!-- Button Group (16px gap) -->
<div class="flex flex-col sm:flex-row gap-4">
<button>Primary</button>
<button>Secondary</button>
</div>
<!-- Icon Row (8px gap) -->
<div class="flex space-x-2">
<div>●</div>
<div>●</div>
<div>●</div>
</div>
<h1 class="text-5xl md:text-6xl lg:text-7xl font-bold tracking-tight leading-none">
MAKING BIG DATA FEEL SMALL
</h1>
Pattern Breakdown:
font-bold (700 weight)tracking-tight (tighter letters)leading-none (no line height)<p class="text-lg md:text-xl text-gray-700 max-w-xl">
Description text with optimal reading width
</p>
Pattern:
<span class="text-xs font-bold uppercase tracking-wider">
CLOUD ANALYTICS
</span>
Pattern: 12px, bold, uppercase, wide tracking
<!-- Yellow Accent -->
<div class="bg-[#FFE600]">
<!-- Blue Primary -->
<div class="bg-[#4DA6FF]">
<!-- Cream Background -->
<div class="bg-[#F5F1E8]">
Why HEX?: Custom brand colors not in Tailwind default palette.
<!-- Text Colors -->
text-gray-900 <!-- Black text -->
text-gray-700 <!-- Body text -->
text-gray-600 <!-- Tertiary text -->
text-gray-400 <!-- Footer text -->
<!-- Borders -->
border-black <!-- All component borders -->
border-gray-300 <!-- Navigation border -->
border-gray-200 <!-- Subtle dividers -->
<button class="bg-[#4DA6FF] border-2 border-black
shadow-[6px_6px_0_0_rgba(0,0,0,1)]
hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]
hover:translate-x-[3px] hover:translate-y-[3px]
transition-all">
Always Together:
transition-all<a href="#" class="hover:text-[#4DA6FF] transition-colors">
Simple Pattern: Color change only.
<!-- Hidden on mobile, visible on desktop -->
<div class="hidden md:flex">
<!-- Visible on mobile, hidden on desktop -->
<div class="md:hidden">
<!-- Show inline on mobile, block on desktop -->
<div class="inline-block md:block">
<!-- Text: 48px → 60px → 72px -->
<h1 class="text-5xl md:text-6xl lg:text-7xl">
<!-- Padding: 64px → 96px -->
<section class="py-16 md:py-24">
<!-- Grid: 1 col → 2 cols → 4 cols -->
<div class="grid md:grid-cols-2 lg:grid-cols-4">
Library: https://lucide.dev/ Implementation: Via unpkg CDN
<script src="https://unpkg.com/lucide@latest"></script>
<script>lucide.createIcons();</script>
| Icon Size | Tailwind Class | Pixels | Stroke Width | Usage |
|---|---|---|---|---|
| Small | w-4 h-4 |
16px | 2 | Social icons |
| Medium | w-6 h-6 |
24px | 2-2.5 | Feature icons, navigation |
<!-- Feature Card Icon -->
<i data-lucide="zap" class="w-6 h-6" style="stroke-width: 2.5;"></i>
<!-- Navigation Icon -->
<i data-lucide="menu" class="w-6 h-6" style="stroke-width: 2;"></i>
<!-- Footer Social Icon -->
<i data-lucide="twitter" class="w-4 h-4" style="stroke-width: 2;"></i>
Stroke Weight: Heavier (2.5) for feature emphasis, standard (2) otherwise.
<!-- Yellow Square Container -->
<div class="w-12 h-12 bg-[#FFE600] border-2 border-black
flex items-center justify-center">
<i data-lucide="zap" class="w-6 h-6"></i>
</div>
<!-- Blue Square Container -->
<div class="w-12 h-12 bg-[#4DA6FF] border-2 border-black
flex items-center justify-center">
<i data-lucide="cloud" class="w-6 h-6 text-white"></i>
</div>
Specifications:
| Icon Name | Lucide Name | Usage |
|---|---|---|
| Lightning | zap |
Speed/performance |
| Cloud | cloud |
Serverless/cloud |
| Dollar | dollar-sign |
Pricing/cost |
| Database | database |
Data/SQL |
| Menu | menu |
Mobile navigation |
twitter |
Social link | |
| GitHub | github |
Social link |
linkedin |
Social link |
<section class="bg-[#F5F1E8] py-16 md:py-24 overflow-hidden">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid md:grid-cols-2 gap-12 items-center">
<!-- Left Content Column -->
<div class="space-y-6">
<!-- Eyebrow Badge -->
<div class="inline-block px-4 py-2 bg-white border-2 border-black
shadow-[4px_4px_0_0_rgba(0,0,0,1)]">
<span class="text-xs font-bold uppercase tracking-wider">
Cloud Analytics
</span>
</div>
<!-- Main Heading with Highlight -->
<h1 class="text-5xl md:text-6xl lg:text-7xl font-bold tracking-tight leading-none">
MAKING<br/>
BIG DATA<br/>
<span class="inline-block px-3 bg-[#FFE600] border-2 border-black
shadow-[6px_6px_0_0_rgba(0,0,0,1)]">
FEEL SMALL
</span>
</h1>
<!-- Description -->
<p class="text-lg md:text-xl text-gray-700 max-w-xl">
The cloud analytics platform that brings DuckDB's speed
to your data warehouse. Query billions of rows in seconds.
</p>
<!-- CTA Button Group -->
<div class="flex flex-col sm:flex-row gap-4 pt-4">
<button class="px-8 py-3 bg-[#4DA6FF] text-white font-bold
border-2 border-black
shadow-[6px_6px_0_0_rgba(0,0,0,1)]
hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]
hover:translate-x-[3px] hover:translate-y-[3px]
transition-all">
Start for Free
</button>
<button class="px-8 py-3 bg-white font-bold
border-2 border-black
shadow-[6px_6px_0_0_rgba(0,0,0,1)]
hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]
hover:translate-x-[3px] hover:translate-y-[3px]
transition-all">
View Demo
</button>
</div>
</div>
<!-- Right Visual Column -->
<div class="relative">
<!-- Code Editor Card -->
<div class="bg-white border-2 border-black
shadow-[8px_8px_0_0_rgba(0,0,0,1)] p-6">
<!-- Window Controls -->
<div class="flex items-center space-x-2 mb-4 pb-3
border-b-2 border-gray-200">
<div class="flex space-x-2">
<div class="w-3 h-3 rounded-full bg-red-500 border border-black"></div>
<div class="w-3 h-3 rounded-full bg-yellow-400 border border-black"></div>
<div class="w-3 h-3 rounded-full bg-green-500 border border-black"></div>
</div>
<div class="flex-1 text-center">
<span class="text-xs font-bold">query.sql</span>
</div>
</div>
<!-- Code Block -->
<div class="bg-gray-900 p-4 border-2 border-black">
<pre class="text-sm text-green-400 font-mono leading-relaxed"><span class="text-blue-400">SELECT</span>
product_name,
<span class="text-yellow-300">SUM</span>(revenue) <span class="text-blue-400">as</span> total_revenue
<span class="text-blue-400">FROM</span> sales_data
<span class="text-blue-400">WHERE</span> date >= <span class="text-orange-400">'2024-01-01'</span>
<span class="text-blue-400">GROUP BY</span> product_name
<span class="text-blue-400">ORDER BY</span> total_revenue <span class="text-blue-400">DESC</span>;</pre>
</div>
<!-- Result Badge -->
<div class="mt-3 px-3 py-2 bg-[#FFE600] border-2 border-black inline-block">
<span class="text-xs font-bold">⚡ Executed in 0.03s • 1.2M rows</span>
</div>
</div>
<!-- Floating Duck Decoration -->
<div class="absolute -bottom-6 -right-6 text-7xl
float-animation illustration-shadow">
🦆
</div>
</div>
</div>
</div>
</section>
Key Design Elements:
<div class="bg-[#F5F1E8] border-2 border-black p-6
shadow-[6px_6px_0_0_rgba(0,0,0,1)]
hover:shadow-[3px_3px_0_0_rgba(0,0,0,1)]
hover:translate-x-[3px] hover:translate-y-[3px]
transition-all">
<!-- Icon Container (Square, No Rounding) -->
<div class="w-12 h-12 bg-[#FFE600] border-2 border-black
flex items-center justify-center mb-4">
<i data-lucide="zap" class="w-6 h-6" style="stroke-width: 2.5;"></i>
</div>
<!-- Title (Uppercase, Bold) -->
<h3 class="text-xl font-bold mb-2">BLAZING FAST</h3>
<!-- Description (Small, Gray) -->
<p class="text-sm text-gray-700">
Query gigabytes in milliseconds with DuckDB's vectorized engine.
</p>
</div>
Specifications:
<div class="bg-white border-2 border-black
shadow-[6px_6px_0_0_rgba(0,0,0,1)] p-6 text-center">
<!-- Large Number -->
<div class="text-5xl font-bold text-[#4DA6FF] mb-2">10x</div>
<!-- Label -->
<div class="font-bold mb-1">FASTER QUERIES</div>
<!-- Subtitle -->
<div class="text-sm text-gray-700">vs. traditional warehouses</div>
</div>
Design Pattern:
<div class="flex items-center space-x-3 p-3
bg-[#FFE600] border-2 border-black">
<!-- Icon Badge -->
<div class="w-8 h-8 bg-white border-2 border-black
flex items-center justify-center text-sm font-bold">
S3
</div>
<!-- Connection String -->
<span class="text-sm font-bold flex-1">
s3://bucket/data.parquet
</span>
<!-- Status Indicator -->
<div class="w-5 h-5 bg-green-500 border border-black rounded-full"></div>
</div>
Pattern:
<div class="text-center mb-16">
<!-- Eyebrow Badge -->
<div class="inline-block px-4 py-2 bg-[#FFE600] border-2 border-black
shadow-[4px_4px_0_0_rgba(0,0,0,1)] mb-6">
<span class="text-xs font-bold uppercase tracking-wider">
Use Cases
</span>
</div>
<!-- Main Heading -->
<h2 class="text-4xl md:text-5xl font-bold tracking-tight mb-4">
BUILT FOR<br/>YOUR WORKFLOW
</h2>
<!-- Optional Description -->
<p class="text-xl text-gray-700 max-w-2xl mx-auto">
Supporting text that explains the section
</p>
</div>
Pattern Structure:
<div class="bg-[#FFE600] py-2 px-4 text-center border-b border-black"
style="border-width: 3px;">
<p class="text-sm font-bold">
🎉 Announcing MotherDuck Cloud -
<a href="#" class="underline hover:no-underline">Learn More</a>
</p>
</div>
Specifications:
| Breakpoint | Min Width | Tailwind Prefix | Usage |
|---|---|---|---|
| Mobile | 0px | (default) | Base mobile styles |
| Small | 640px | sm: |
Large phones |
| Medium | 768px | md: |
Tablets (MAIN breakpoint) |
| Large | 1024px | lg: |
Desktops |
| XL | 1280px | xl: |
Large desktops |
Primary Breakpoint: md: (768px) - Most responsive changes happen here.
<!-- Mobile: 1 col → Desktop: 2 cols → Large: 4 cols -->
<div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6">
<!-- Mobile: 1 col → Desktop: 2 cols -->
<div class="grid md:grid-cols-2 gap-12 items-center">
<!-- Mobile: 1 col → Desktop: 3 cols -->
<div class="grid md:grid-cols-3 gap-8">
<!-- Hero: 48px → 60px → 72px -->
<h1 class="text-5xl md:text-6xl lg:text-7xl font-bold">
<!-- Section: 36px → 48px -->
<h2 class="text-4xl md:text-5xl font-bold">
<!-- Body: 18px → 20px -->
<p class="text-lg md:text-xl text-gray-700">
<!-- Container: 16px → 24px → 32px -->
<div class="px-4 sm:px-6 lg:px-8">
<!-- Section: 64px → 96px -->
<section class="py-16 md:py-24">
<!-- Navigation: 70px → 90px -->
<div class="h-[70px] md:h-[90px]">
<!-- Hidden on mobile, visible on desktop -->
<div class="hidden md:flex">
<!-- Visible on mobile, hidden on desktop -->
<div class="md:hidden">
<!-- Desktop navigation -->
<nav class="hidden md:flex items-center space-x-8">
<!-- Mobile menu button -->
<button class="md:hidden">
<!-- Mobile: Stack vertical → Desktop: Horizontal -->
<div class="flex flex-col sm:flex-row gap-4">
<button>Primary</button>
<button>Secondary</button>
</div>
| Combination | Ratio | Level | Usage |
|---|---|---|---|
| Black on Cream (#000 on #F5F1E8) | 16.5:1 | AAA | Body text |
| Gray 700 on Cream (#374151 on #F5F1E8) | 11.2:1 | AAA | Descriptions |
| White on Blue (#FFF on #4DA6FF) | 3.1:1 | AA Large | Button text |
| Black on Yellow (#000 on #FFE600) | 1.8:1 | ⚠️ Decorative | Badges only |
Note: Yellow badges with black text are used decoratively, not for essential information.
<!-- Main Navigation -->
<header>
<nav>
<a href="/">Logo</a>
<ul>
<li><a href="#">Product</a></li>
</ul>
</nav>
</header>
<!-- Main Content -->
<main>
<section>
<h1>Page Title</h1>
</section>
</main>
<!-- Footer -->
<footer>
<nav>
<a href="#">Links</a>
</nav>
</footer>
All interactive elements should have visible focus (browser default):
:focus {
outline: 2px solid #4DA6FF;
outline-offset: 2px;
}
<!-- Underlined links in prose -->
<a href="#" class="underline hover:no-underline">Learn More</a>
For integration into other frameworks:
:root {
/* Brand Colors */
--color-yellow: #FFE600;
--color-blue: #4DA6FF;
--color-cream: #F5F1E8;
--color-black: #000000;
--color-white: #FFFFFF;
/* Text Colors */
--text-primary: #111827;
--text-secondary: #374151;
--text-tertiary: #6B7280;
/* Spacing */
--space-xs: 0.5rem; /* 8px */
--space-sm: 0.75rem; /* 12px */
--space-md: 1rem; /* 16px */
--space-lg: 1.5rem; /* 24px */
--space-xl: 2rem; /* 32px */
--space-2xl: 3rem; /* 48px */
/* Typography */
--font-mono: 'Space Mono', monospace;
--font-size-xs: 0.75rem; /* 12px */
--font-size-sm: 0.875rem; /* 14px */
--font-size-base: 1rem; /* 16px */
--font-size-lg: 1.125rem; /* 18px */
--font-size-xl: 1.25rem; /* 20px */
--font-size-2xl: 1.5rem; /* 24px */
--font-size-5xl: 3rem; /* 48px */
--font-size-7xl: 4.5rem; /* 72px */
/* Borders */
--border-width-thick: 2px;
--border-width-thicker: 3px;
--border-radius: 0px; /* Sharp corners */
--border-radius-full: 9999px; /* Circles */
/* Shadows (Brutalist) */
--shadow-sm: 4px 4px 0 0 rgba(0, 0, 0, 1);
--shadow-md: 6px 6px 0 0 rgba(0, 0, 0, 1);
--shadow-lg: 8px 8px 0 0 rgba(0, 0, 0, 1);
/* Transitions */
--transition-fast: 200ms ease;
--transition-base: 300ms ease;
}
| Component | Frequency | Reusability | Extract Priority |
|---|---|---|---|
| Feature Card | 12+ | Very High | ⭐⭐⭐ High |
| Button (Primary) | 15+ | Very High | ⭐⭐⭐ High |
| Button (Secondary) | 10+ | Very High | ⭐⭐⭐ High |
| Eyebrow Badge | 8+ | High | ⭐⭐⭐ High |
| Section Container | 10+ | Very High | ⭐⭐ Medium |
| Testimonial Card | 3 | Medium | ⭐⭐ Medium |
| Stats Card | 3 | Medium | ⭐⭐ Medium |
| Data Row | 3 | Medium | ⭐ Low |
| Code Editor | 1 | Low | ⭐ Low |
| Navigation | 1 | Low | ⭐ Low |
While not in current design, could add:
@media (prefers-color-scheme: dark) {
:root {
--color-cream: #1a1a1a;
--text-primary: #ffffff;
}
}
Port to:
rounded-lg and rounded classesThis brutalist style guide represents a bold departure from traditional web design, embracing:
Core Philosophy: “Make it loud, make it bold, make it unforgettable.”
All measurements, colors, and patterns documented here are extracted from the production codebase (motherduck_2.html) and verified for pixel-perfect accuracy.
For implementation questions or design updates, refer to the HTML source at:
repos/aliens-made-this/pixel-perfect/motherduck_2.html
Last Updated: 2025 Design System Version: 2.0.0 Brutalist Maintainer: MotherDuck Design Team