


Searchable.com โ Design System Overview
Source:
Analyzed: 2026-07-15
Stack: Next.js ยท Tailwind CSS ยท Mintlify (docs)
Note: Site is fully client-rendered; CSS extracted via proxy signals, Tailwind class inspection in docs, and category/brand context.
Typography
Color Philosophy
Dark-primary AI SaaS product with a neutral near-black canvas and a single cool-violet/indigo accent. Light mode available. Brand communicates authority, technical depth, and modern AI tooling.
Spacing System
Tailwind 4px base grid: 4 ยท 8 ยท 12 ยท 16 ยท 24 ยท 32 ยท 48 ยท 64px
Component Defaults
Layout
:root { / ===================== TYPOGRAPHY ===================== / --font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --font-family-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, 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-3xl: 1.875rem; / 30px / --font-size-4xl: 2.25rem; / 36px / --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --line-height-tight: 1.25; --line-height-snug: 1.375; --line-height-normal: 1.5; --line-height-relaxed: 1.625;
/ ===================== SPACING (4px base grid) ===================== / --space-1: 0.25rem; / 4px / --space-2: 0.5rem; / 8px / --space-3: 0.75rem; / 12px / --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 / --space-3xl: 4rem; / 64px /
/ ===================== COLORS โ LIGHT MODE ===================== / --color-background: #ffffff; --color-background-subtle: #f4f4f5; --color-surface: #ffffff; --color-surface-raised: #fafafa; --color-foreground: #09090b; --color-foreground-muted: #71717a; --color-foreground-subtle: #a1a1aa; --color-border: #e4e4e7; --color-border-subtle: #f4f4f5;
/ Accent โ Indigo/Violet / --color-accent: #6366f1; --color-accent-hover: #4f46e5; --color-accent-subtle: #eef2ff; --color-accent-foreground: #ffffff;
/ Semantic / --color-success: #22c55e; --color-success-subtle: #f0fdf4; --color-warning: #f59e0b; --color-warning-subtle: #fffbeb; --color-destructive: #ef4444; --color-destructive-subtle: #fef2f2;
/ ===================== BORDER RADIUS ===================== / --radius-xs: 0.125rem; / 2px / --radius-sm: 0.375rem; / 6px โ inputs, small buttons / --radius-md: 0.5rem; / 8px โ cards, modals / --radius-lg: 0.75rem; / 12px โ large cards / --radius-xl: 1rem; / 16px โ panels / --radius-full: 9999px; / pills, badges /
/ ===================== SHADOWS ===================== / --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --shadow-accent: 0 0 0 3px rgb(99 102 241 / 0.25);
/ ===================== TRANSITIONS ===================== / --transition-fast: 100ms ease; --transition-default: 150ms ease; --transition-slow: 300ms ease;
/ ===================== LAYOUT ===================== / --max-width-content: 80rem; / 1280px โ max-w-7xl / --max-width-prose: 65ch; --sidebar-width: 16rem; / 256px / --header-height: 3.5rem; / 56px / }
/ ===================== DARK MODE ===================== / [data-theme="dark"], .dark { --color-background: #09090b; --color-background-subtle: #111118; --color-surface: #18181b; --color-surface-raised: #27272a; --color-foreground: #fafafa; --color-foreground-muted: #a1a1aa; --color-foreground-subtle: #71717a; --color-border: #27272a; --color-border-subtle: #3f3f46;
--color-accent: #818cf8; --color-accent-hover: #6366f1; --color-accent-subtle: #1e1b4b; --color-accent-foreground: #ffffff;
--color-success: #4ade80; --color-success-subtle: #052e16; --color-warning: #fbbf24; --color-warning-subtle: #1c1702; --color-destructive: #f87171; --color-destructive-subtle: #1c0505;
--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.4), 0 1px 2px -1px rgb(0 0 0 / 0.4); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.4); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.5), 0 4px 6px -4px rgb(0 0 0 / 0.4); }
Searchable.com โ Design Tokens Reference
Values are approximate โ derived from stack fingerprint (Next.js + Tailwind CSS), Mintlify docs class inspection, and AI SaaS design category conventions. See designNotes.
Color Tokens
Light Mode
| Token | Value | Usage |
|---|---|---|
| --color-background | #ffffff | Page background |
| --color-background-subtle | #f4f4f5 | Zinc-100 |
| --color-surface | #ffffff | Card/panel base |
| --color-surface-raised | #fafafa | Elevated card |
| --color-foreground | #09090b | Primary text |
| --color-foreground-muted | #71717a | Secondary text |
| --color-foreground-subtle | #a1a1aa | Placeholder/disabled |
| --color-border | #e4e4e7 | Dividers, inputs |
| --color-accent | #6366f1 | Indigo-500 โ CTA, links |
| --color-accent-hover | #4f46e5 | Indigo-600 |
| --color-accent-subtle | #eef2ff | Indigo-50 โ highlight bg |
| --color-success | #22c55e | Positive metrics |
| --color-warning | #f59e0b | Caution states |
| --color-destructive | #ef4444 | Errors, delete |
Dark Mode
| Token | Value | Usage |
|---|---|---|
| --color-background | #09090b | Zinc-950 โ page bg |
| --color-background-subtle | #111118 | Slightly lighter bg |
| --color-surface | #18181b | Zinc-900 โ cards |
| --color-surface-raised | #27272a | Zinc-800 โ elevated |
| --color-foreground | #fafafa | Zinc-50 โ primary text |
| --color-foreground-muted | #a1a1aa | Zinc-400 |
| --color-foreground-subtle | #71717a | Zinc-500 |
| --color-border | #27272a | Zinc-800 |
| --color-accent | #818cf8 | Indigo-400 (dark-mode accent) |
| --color-accent-hover | #6366f1 | Indigo-500 |
| --color-accent-subtle | #1e1b4b | Indigo-950 |
| --color-success | #4ade80 | Green-400 |
| --color-warning | #fbbf24 | Amber-400 |
| --color-destructive | #f87171 | Red-400 |
Spacing Tokens
| Token | Value | px equiv |
|---|---|---|
| --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 |
| --space-3xl | 4rem | 64px |
Base grid: 4px (Tailwind default)
Typography Tokens
| Token | Value |
|---|---|
| --font-family-base | 'Inter', system-ui, sans-serif |
| --font-family-mono | 'JetBrains Mono', ui-monospace |
| --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-3xl | 1.875rem / 30px |
| --font-size-4xl | 2.25rem / 36px |
| --font-weight-medium | 500 |
| --font-weight-semibold | 600 |
| --font-weight-bold | 700 |
| --line-height-normal | 1.5 |
Border Radius Tokens
| Token | Value | Usage |
|---|---|---|
| --radius-sm | 0.375rem / 6px | Inputs, small buttons |
| --radius-md | 0.5rem / 8px | Cards, modals |
| --radius-lg | 0.75rem / 12px | Large panels |
| --radius-xl | 1rem / 16px | Feature cards |
| --radius-full | 9999px | Badges, pills, avatars |
Shadow Tokens
| Token | Value |
|---|---|
| --shadow-xs | 0 1px 2px 0 rgb(0 0 0 / 0.05) |
| --shadow-sm | 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1) |
| --shadow-md | 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) |
| --shadow-lg | 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1) |
| --shadow-accent | 0 0 0 3px rgb(99 102 241 / 0.25) |
Transition Tokens
| Token | Value | Usage |
|---|---|---|
| --transition-fast | 100ms ease | Hover micro-interactions |
| --transition-default | 150ms ease | Standard UI transitions |
| --transition-slow | 300ms ease | Modal open/close, page transitions |
Implementation Notes โ Searchable.com
UI Framework \- Framework: Next.js (App Router / Pages Router โ Next.js \_next/ static paths confirmed) \- CSS: Tailwind CSS (confirmed via Mintlify docs inspection: dark:hidden, dark:block, className JSX patterns in rendered markdown) \- Docs platform: Mintlify (docs.searchable.com) โ uses Tailwind + MDX \- Analytics: Google Tag Manager (GTM-PWWF8S78) \- Hosting: Likely Vercel (Next.js + setup docs reference Vercel Log Drain integration)
Theme / Dark Mode Support \- Dark + light mode: Confirmed โ docs explicitly render two hero images with dark:hidden / dark:block Tailwind classes \- Default mode: Likely dark (AI analytics SaaS convention; dark mode referenced first in docs) \- Toggle mechanism: Tailwind dark: prefix, likely class-based (not media query) via next-themes or similar
Source Confidence \- Stack (Next.js + Tailwind): High confidence โ confirmed from \_next/ URL structure, JSX patterns in blog markdown, Mintlify docs Tailwind classes \- Color values: Low-medium confidence โ values are approximate. Site is fully client-rendered (SPA shell only returned by fetch proxy). Colors derived from: (1) Zinc-family neutral palette standard for dark Next.js + Tailwind SaaS, (2) Indigo-500/Violet accent common for AI/analytics brands on this stack, (3) Mintlify docs default accent (indigo) matching brand category \- Typography: Medium confidence โ Inter is by far the most common font on Next.js + Tailwind SaaS products; not directly observed in CSS \- Spacing / radius / shadows: Medium confidence โ Tailwind defaults with minor customizations; typical for this category
Notable Patterns \- Product type: AI SEO/AEO analytics dashboard with sidebar layout (app.searchable.com) + marketing site ([www.searchable.com](http://www.searchable.com)) \- Brand accent: Indigo/violet family โ consistent with AI-tech positioning (cf. Linear, Vercel, Supabase) \- OG image: searchable-og.png / searchable-logo.png โ dark wordmark brand \- Middleware SDK: @searchablehq/middleware npm package โ suggests modern Node.js engineering culture aligning with clean, utility-first CSS \- Dashboard layout: Sidebar-left navigation + main content area, standard analytics SaaS pattern \- Marketing pages: Full-width sections, hero โ features โ pricing โ CTA structure
To Verify To confirm exact values, render the site in a browser and run: getComputedStyle(document.documentElement).getPropertyValue('--your-token') or inspect the Tailwind config via window.NEXT\_DATA or the Network tab CSS chunks.