--- name: blueprint-ui description: Build landing pages and web UIs using a dark blueprint/wireframe aesthetic with sharp edges, connected sections, dashed outlines, measurement annotations, and technical typography. Use when creating marketing sites, landing pages, or product pages. --- # Blueprint / Wireframe UI Design System Build web pages using a technical blueprint aesthetic: dark background, sharp edges, connected sections with shared borders, dashed outlines, measurement annotations, and monospace labels. ## Core Principles 1. **No rounded corners.** Everything is sharp-edged. Never use `rounded-*` classes. 2. **Connected sections.** Sections share borders and flow into each other via `border-x border-border` on a shared max-width container. No floating cards with gaps. 3. **Dashed outlines** for content boundaries, illustration placeholders, and measurement guides. 4. **Section labels** — small monospace uppercase labels positioned over section borders (e.g., "Hero", "Features", "CLI"). 5. **Measurement annotations** — thin dashed lines with monospace dimension labels (e.g., "48px", "grid: 3 cols", "max-width: 672px") placed between sections or elements. 6. **Dot grid background** on the page body. 7. **Numbered elements** — cards and list items get small monospace counters like "01", "02", "03". ## Color Palette ``` Background: #0a0a0a Surface: #111111 Border: #1e1e1e Border bright: #333333 Text primary: #e8e8e8 Text muted: #666666 Text dim: #525252 (labels, annotations, counters) Accent: #f59e0b (amber — CTAs, highlights, output text) Accent alt: #ea580c (orange — hover states, secondary accent) ``` ## Typography - **Body**: Inter (sans-serif) - **Code / labels / annotations**: JetBrains Mono (monospace) - **Section headers**: Two-tone — first line white, second line muted - **Section labels**: 10px monospace, uppercase, letter-spacing 0.1em, `text-dim`, positioned over borders with background color punch-through - **Measurement text**: 9px monospace, `text-dim` ## Component Patterns ### Section container Sections are wrapped in `border-x border-border` on the shared `max-w-6xl` container. Internal content uses `border-b border-dashed border-border` as a bottom separator. Each section has a `.section-label` positioned at the top. ```html
Features
``` ### Feature cards (connected grid) Cards share borders in a grid. No gaps, no rounded corners. Each card gets a monospace counter. ```html
01

Title

Description

``` ### Terminal block Sharp corners, square traffic-light dots with borders, monospace content. ```html
terminal

$ command here

output here

``` ### Buttons Sharp-edged, monospace uppercase text, border-based. Two variants: ```html GET STARTED GITHUB ``` ### Measurement annotation Dashed lines with a centered dimension label between elements. ```html
48px
``` ### Illustration placeholder Dashed border box with monospace dimension label. ```html
[ 400 x 300 ]
``` ### Carousel (horizontal scroll) Connected cards with shared borders in a scrollable container. Square arrow buttons. ```html ``` ### Nav Fixed, sharp, blurred backdrop, monospace wordmark. ```html ``` ### Footer Single border box at the bottom, monospace text, minimal. ## Required CSS ```css @import "tailwindcss"; @theme { --color-bg: #0a0a0a; --color-surface: #111111; --color-border: #1e1e1e; --color-border-bright: #333333; --color-text: #e8e8e8; --color-muted: #666666; --color-dim: #525252; --color-amber: #f59e0b; --color-orange: #ea580c; --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif; --font-mono: "JetBrains Mono", ui-monospace, monospace; } html { background-color: var(--color-bg); color: var(--color-text); font-family: var(--font-sans); } .dot-grid { background-image: radial-gradient(circle, var(--color-border) 1px, transparent 1px); background-size: 24px 24px; } .section-label { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-dim); position: absolute; top: -8px; left: 12px; background: var(--color-bg); padding: 0 6px; } .measure { font-family: var(--font-mono); font-size: 9px; color: var(--color-dim); letter-spacing: 0.05em; } .carousel::-webkit-scrollbar { display: none; } .carousel { -ms-overflow-style: none; scrollbar-width: none; } ``` ## Tech Stack - **Astro** (static output) with `@tailwindcss/vite` plugin - **Tailwind CSS v4** — theme defined in CSS `@theme`, no `tailwind.config.js` - **Google Fonts**: Inter + JetBrains Mono - **No JS frameworks**. Pure Astro components. Vanilla JS only for interactions like carousels. - **bun** as package manager ## When building a page 1. Wrap everything in a `.dot-grid` container 2. Use a single `max-w-6xl` centered main with `border-x border-border` on each section 3. Add `.section-label` to every section 4. Use connected grids (shared borders, no gaps) for cards 5. Add 1-2 measurement annotations per page for the blueprint feel 6. Keep all corners sharp — zero border-radius 7. Use the two-tone heading pattern for section headers 8. Terminal blocks use square traffic-light dots 9. All small labels and counters in monospace