): Code appearance
+ * - overflow-x-auto: Handles long lines gracefully
+ *
+ * ## Usage Examples
+ *
+ * ```tsx
+ * // Success response with title
+ *
+ *
+ * // Error response without title
+ *
+ *
+ * // Custom status label
+ *
+ * ```
+ *
+ * ## Content Guidelines
+ *
+ * Response Content:
+ * - Use actual JSON/text from your API
+ * - Format with proper indentation (2 or 4 spaces)
+ * - Include realistic data (not just placeholders)
+ * - Show relevant fields (omit excessive detail)
+ * - Keep under 20-30 lines for readability
+ *
+ * Status Labels:
+ * - Include status code (200, 400, etc.)
+ * - Add descriptive text (Success, Error, Created)
+ * - Use checkmark (✓) for success
+ * - Use X (✗) for errors
+ * - Keep concise (2-3 words max)
+ *
+ * ## Accessibility
+ *
+ * - Semantic HTML structure ()
+ * - Color is supplementary (text + symbols)
+ * - High contrast text colors
+ * - StatusBadge includes aria-label
+ * - Proper heading hierarchy if title used
+ * - Scrollable overflow for long content
+ *
+ * ## Visual Language
+ *
+ * The ResponseBlock creates:
+ * - Immediate status recognition through color
+ * - Professional code presentation
+ * - Clear example/documentation relationship
+ * - Consistent pattern across all API docs
+ * - Supports learn-by-example documentation style
+ *
+ * @component
+ * @example
+ *
+ */
+
+import { StatusBadge, StatusType } from './StatusBadge';
+
+/**
+ * Props for the ResponseBlock component
+ */
+export interface ResponseBlockProps {
+ /** Status type determining color scheme */
+ status: Extract;
+ /** HTTP status code (e.g., 200, 400, 500) */
+ statusCode: number;
+ /** The response content to display (typically JSON) */
+ content: string;
+ /** Optional title above the response */
+ title?: string;
+ /** Optional custom status label (default: auto-generated from statusCode) */
+ statusLabel?: string;
+ /** Optional CSS class name for additional styling */
+ className?: string;
+}
+
+/**
+ * Status styles mapping status type to background, border, and shadow colors
+ */
+const statusStyles = {
+ success: 'bg-green-500/5 border-green-500/30 shadow-lg shadow-green-500/10',
+ error: 'bg-red-500/5 border-red-500/30 shadow-lg shadow-red-500/10',
+};
+
+/**
+ * Generate default status label from code and status
+ */
+const getDefaultStatusLabel = (code: number, status: 'success' | 'error'): string => {
+ const symbol = status === 'success' ? '✓' : '✗';
+ const text = status === 'success' ? 'Success' : 'Error';
+ return `${symbol} ${code} ${text}`;
+};
+
+export const ResponseBlock = ({
+ status,
+ statusCode,
+ content,
+ title,
+ statusLabel,
+ className = '',
+}: ResponseBlockProps) => {
+ const label = statusLabel || getDefaultStatusLabel(statusCode, status);
+
+ return (
+
+ {/* Status Badge - Floating Top Right */}
+
+
+ {label}
+
+
+
+ {/* Optional Title */}
+ {title && (
+
{title}
+ )}
+
+ {/* Response Content */}
+
+ {content}
+
+
+ );
+};
diff --git a/apps/landing/src/components/docs/blocks/SectionHeader.tsx b/apps/landing/src/components/docs/blocks/SectionHeader.tsx
new file mode 100644
index 0000000..3398181
--- /dev/null
+++ b/apps/landing/src/components/docs/blocks/SectionHeader.tsx
@@ -0,0 +1,199 @@
+'use client';
+
+/**
+ * SectionHeader Component
+ *
+ * Consistent heading elements for organizing documentation content into hierarchical sections.
+ * Provides visual rhythm and structure throughout documentation pages.
+ *
+ * ## Design Principles
+ *
+ * 1. **Visual Hierarchy**: Size and weight indicate content importance
+ * - Level 2 (h2): Major sections, primary content divisions
+ * - Level 3 (h3): Subsections, supporting details
+ * - Consistent styling creates predictable structure
+ *
+ * 2. **Semantic HTML**: Proper heading levels for accessibility
+ * - Uses correct HTML heading tags (h2, h3)
+ * - Supports screen readers and document outline
+ * - Enables Table of Contents generation
+ * - Critical for SEO and document structure
+ *
+ * 3. **Spacing System**: Establishes vertical rhythm
+ * - Top margin separates from previous content
+ * - Bottom margin creates breathing room before content
+ * - Consistent spacing improves scannability
+ *
+ * ## Heading Level Semantics
+ *
+ * @param {2} level2 - Major section headings (h2)
+ * - Visual: text-3xl (30px), font-bold, text-white
+ * - Spacing: mb-4 (16px) below, mb-6 (24px) for sections with mb-12
+ * - Psychology: Primary divisions, main topics
+ * - Use cases: "Overview", "Parameters", "Response", "Error Codes"
+ * - Hierarchy: Second level (after page h1/Hero)
+ * - SEO: Key topic signals for search engines
+ *
+ * @param {3} level3 - Subsection headings (h3)
+ * - Visual: text-xl (20px), font-semibold, text-white
+ * - Spacing: mb-3 (12px) below, mb-4 (16px) for subsections with mb-8
+ * - Psychology: Supporting topics, detailed breakdowns
+ * - Use cases: "Key Types", "Creating Keys", "Rate Limits"
+ * - Hierarchy: Third level (under h2 sections)
+ * - SEO: Supporting detail signals
+ *
+ * ## Typography Scale Reasoning
+ *
+ * Level 2 (text-3xl / 30px):
+ * - Large enough to clearly mark major sections
+ * - Smaller than Hero (36-48px) to maintain hierarchy
+ * - Bold weight adds emphasis and structure
+ * - White color ensures readability and prominence
+ *
+ * Level 3 (text-xl / 20px):
+ * - Noticeably smaller than h2, maintaining hierarchy
+ * - Semibold (600) instead of bold provides subtle distinction
+ * - Large enough to serve as clear subsection marker
+ * - Balances prominence with subordinate role
+ *
+ * ## Spacing Philosophy
+ *
+ * Bottom Margin Strategy:
+ * - h2: mb-4 or mb-6 depending on section context
+ * - mb-4 for tighter sections with nearby content
+ * - mb-6 for major sections introducing substantial content
+ * - h3: mb-3 or mb-4 depending on subsection context
+ * - Smaller margins reflect subordinate hierarchy
+ * - Still provides clear separation from content
+ *
+ * ## Anchor Link Support
+ *
+ * The `id` prop enables:
+ * - Direct linking to specific sections (#section-name)
+ * - Table of Contents navigation
+ * - Deep linking from external sources
+ * - Browser history for scrolled positions
+ *
+ * ID Naming Convention:
+ * - Use kebab-case (lowercase with hyphens)
+ * - Descriptive and unique per page
+ * - Example: "api-keys", "rate-limits", "error-handling"
+ *
+ * ## Accessibility Features
+ *
+ * - Semantic HTML heading levels (h2, h3)
+ * - Proper document outline structure
+ * - Sufficient color contrast (white on dark)
+ * - Clear visual distinction between levels
+ * - Screen reader friendly navigation
+ * - Keyboard accessible anchor links
+ *
+ * ## Usage Examples
+ *
+ * ```tsx
+ * // Major section heading (h2)
+ *
+ * Overview
+ *
+ *
+ * // Subsection heading (h3)
+ *
+ * Key Types
+ *
+ *
+ * // Custom spacing with className
+ *
+ * Parameters
+ *
+ * ```
+ *
+ * ## Content Guidelines
+ *
+ * Level 2 Headings:
+ * - 1-3 words ideal (concise and scannable)
+ * - Sentence case (capitalize first word)
+ * - Action-oriented or descriptive nouns
+ * - Examples: "Quick Start", "Authentication", "Rate Limits"
+ *
+ * Level 3 Headings:
+ * - 1-4 words, slightly more descriptive
+ * - Sentence case
+ * - Specific subtopics or steps
+ * - Examples: "Creating Keys", "Using API Keys", "Security Best Practices"
+ *
+ * ## Visual Language
+ *
+ * The header system creates a visual rhythm that:
+ * - Guides the eye through content naturally
+ * - Breaks long pages into digestible chunks
+ * - Signals importance through size and weight
+ * - Maintains consistency across all documentation
+ * - Supports quick scanning and navigation
+ *
+ * @component
+ * @example
+ *
+ * Getting Started
+ *
+ */
+
+import { ReactNode } from 'react';
+
+/**
+ * Heading level determining HTML tag and visual styling
+ */
+export type SectionHeaderLevel = 2 | 3;
+
+/**
+ * Props for the SectionHeader component
+ */
+export interface SectionHeaderProps {
+ /** Heading level (h2 or h3) for semantic structure */
+ level: SectionHeaderLevel;
+ /** The heading text content */
+ children: ReactNode;
+ /** Optional ID for anchor linking and table of contents */
+ id?: string;
+ /** Optional CSS class name for additional styling (e.g., custom margins) */
+ className?: string;
+}
+
+/**
+ * Typography styles mapping heading level to text size and weight
+ */
+const levelStyles: Record = {
+ 2: 'text-3xl font-bold',
+ 3: 'text-xl font-semibold',
+};
+
+/**
+ * Default spacing system for bottom margins
+ */
+const defaultSpacing: Record = {
+ 2: 'mb-4',
+ 3: 'mb-3',
+};
+
+export const SectionHeader = ({
+ level,
+ children,
+ id,
+ className,
+}: SectionHeaderProps) => {
+ const Tag = `h${level}` as 'h2' | 'h3';
+ const spacing = className?.includes('mb-') ? '' : defaultSpacing[level];
+
+ return (
+
+ {children}
+
+ );
+};
diff --git a/apps/landing/src/components/docs/blocks/StatusBadge.tsx b/apps/landing/src/components/docs/blocks/StatusBadge.tsx
new file mode 100644
index 0000000..169ac41
--- /dev/null
+++ b/apps/landing/src/components/docs/blocks/StatusBadge.tsx
@@ -0,0 +1,176 @@
+'use client';
+
+/**
+ * StatusBadge Component
+ *
+ * A semantic status indicator that uses color psychology and consistent styling
+ * to communicate state, result, or severity across documentation.
+ *
+ * ## Design Principles
+ *
+ * 1. **Semantic Color System**: Colors convey meaning, not just decoration
+ * - Uses consistent color mapping across all documentation
+ * - Follows industry standards (green = success, red = error, etc.)
+ *
+ * 2. **Visual Hierarchy**: Small, unobtrusive elements that enhance readability
+ * - Pill-shaped design for friendly, modern appearance
+ * - Subtle backgrounds with semi-transparent colors
+ * - Border emphasis for definition without heaviness
+ *
+ * 3. **Accessibility**: Meets WCAG 2.1 AA standards
+ * - Sufficient color contrast ratios
+ * - Semantic HTML with aria-label
+ * - Text labels (never color-only communication)
+ *
+ * ## Semantic Status Values
+ *
+ * @param {'success'} success - Positive outcomes, completed actions, 2xx HTTP responses
+ * - Visual: Green color palette
+ * - Psychology: Achievement, correctness, go-ahead signal
+ * - Use cases: "200 Success", "Completed", "Active", "✓ Passed"
+ *
+ * @param {'info'} info - Neutral information, documentation, helpful tips
+ * - Visual: Blue/Cyan color palette
+ * - Psychology: Calm, trustworthy, educational
+ * - Use cases: "Beta", "New", "Info", "Note"
+ *
+ * @param {'warning'} warning - Caution, deprecation, rate limits, 4xx client errors
+ * - Visual: Amber/Orange color palette
+ * - Psychology: Attention needed, proceed with caution
+ * - Use cases: "429 Rate Limit", "Deprecated", "Warning", "Limited"
+ *
+ * @param {'error'} error - Failures, critical issues, 5xx server errors, security alerts
+ * - Visual: Red color palette
+ * - Psychology: Stop, danger, requires immediate attention
+ * - Use cases: "500 Error", "Failed", "Critical", "Blocked"
+ *
+ * @param {'neutral'} neutral - Default state, placeholder, unspecified
+ * - Visual: Slate/Gray color palette
+ * - Psychology: Neutral, balanced, inactive
+ * - Use cases: "Pending", "Unknown", "Draft", "Inactive"
+ *
+ * ## Size Variants
+ *
+ * @param {'sm'} sm - Small size for inline usage, tight spaces
+ * - Font: text-xs
+ * - Padding: px-2 py-0.5
+ * - Use: Inline with text, table cells, compact layouts
+ *
+ * @param {'md'} md - Medium size (default) for standard usage
+ * - Font: text-xs
+ * - Padding: px-3 py-1
+ * - Use: General purpose, code examples, section markers
+ *
+ * ## Visual Language
+ *
+ * The badge uses a rounded-full design (pill shape) which:
+ * - Creates visual consistency with other UI elements (buttons, tags)
+ * - Feels modern and friendly (vs. harsh rectangular badges)
+ * - Groups related information visually
+ * - Works well at small sizes without appearing cramped
+ *
+ * Color opacity levels (X/20 bg, X/40 border):
+ * - Background: 20% opacity for subtle presence
+ * - Border: 40% opacity for definition
+ * - Text: 100% for maximum readability
+ *
+ * ## Usage Examples
+ *
+ * ```tsx
+ * // HTTP Status Codes
+ * 200 OK
+ * 500 Error
+ *
+ * // API States
+ * Beta
+ * Deprecated
+ *
+ * // System Status
+ * ✓ Active
+ * Pending
+ * ```
+ *
+ * @component
+ * @example
+ * 200 Success
+ */
+
+import { ReactNode } from 'react';
+
+/**
+ * Semantic status type representing the meaning/severity of the badge
+ */
+export type StatusType = 'success' | 'info' | 'warning' | 'error' | 'neutral';
+
+/**
+ * Size variant for the badge
+ */
+export type StatusSize = 'sm' | 'md';
+
+/**
+ * Props for the StatusBadge component
+ */
+export interface StatusBadgeProps {
+ /** The semantic status that determines color and meaning */
+ status: StatusType;
+ /** The content to display inside the badge */
+ children: ReactNode;
+ /** Size variant (default: 'md') */
+ size?: StatusSize;
+ /** Optional CSS class name for additional styling */
+ className?: string;
+}
+
+/**
+ * Color system mapping semantic status to Tailwind color utilities
+ * Follows the established design system color palette
+ */
+const statusStyles: Record = {
+ success: 'bg-green-500/20 text-green-400 border border-green-500/40',
+ info: 'bg-cyan-500/20 text-cyan-400 border border-cyan-500/40',
+ warning: 'bg-amber-500/20 text-amber-400 border border-amber-500/40',
+ error: 'bg-red-500/20 text-red-400 border border-red-500/40',
+ neutral: 'bg-slate-500/20 text-slate-400 border border-slate-500/40',
+};
+
+/**
+ * Size system mapping size variant to padding and font size
+ */
+const sizeStyles: Record = {
+ sm: 'px-2 py-0.5 text-xs',
+ md: 'px-3 py-1 text-xs',
+};
+
+/**
+ * Human-readable labels for screen readers
+ */
+const statusLabels: Record = {
+ success: 'Success status',
+ info: 'Information status',
+ warning: 'Warning status',
+ error: 'Error status',
+ neutral: 'Neutral status',
+};
+
+export const StatusBadge = ({
+ status,
+ children,
+ size = 'md',
+ className = '',
+}: StatusBadgeProps) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/apps/landing/src/components/docs/blocks/index.ts b/apps/landing/src/components/docs/blocks/index.ts
new file mode 100644
index 0000000..1f5de28
--- /dev/null
+++ b/apps/landing/src/components/docs/blocks/index.ts
@@ -0,0 +1,176 @@
+/**
+ * Documentation Block Components
+ *
+ * A comprehensive library of reusable, semantic components for building
+ * consistent, professional API documentation.
+ *
+ * ## Design System Overview
+ *
+ * This collection establishes a visual language for documentation through:
+ * - **Semantic Color System**: Enum-based color values with clear meanings
+ * - **Consistent Typography**: Hierarchical text sizing and weights
+ * - **Responsive Layouts**: Mobile-first, adaptive components
+ * - **Accessibility First**: WCAG 2.1 AA compliance throughout
+ * - **Comprehensive Documentation**: Every component fully documented
+ *
+ * ## Component Categories
+ *
+ * ### Status & Indicators
+ * - **StatusBadge**: Semantic status indicators (success, info, warning, error, neutral)
+ * - **MethodBadge**: HTTP method badges (GET, POST, PUT, PATCH, DELETE)
+ *
+ * ### Typography & Content
+ * - **Hero**: Page-level headings with title and subtitle
+ * - **SectionHeader**: Hierarchical section headings (h2, h3)
+ * - **InlineCode**: Semantic inline code elements
+ *
+ * ### API Documentation
+ * - **EndpointCard**: Structured API endpoint display
+ * - **ResponseBlock**: API response examples with status visualization
+ *
+ * ### Navigation
+ * - **LinkCard**: Interactive navigation cards with accent colors
+ * - **LinkCardGrid**: Responsive grid layout for link cards
+ *
+ * ## Usage Philosophy
+ *
+ * These components follow key principles:
+ *
+ * 1. **Composition over Configuration**
+ * - Small, focused components combine to create pages
+ * - Each component does one thing well
+ * - Easy to understand and maintain
+ *
+ * 2. **Semantic Props**
+ * - Enum values over raw values (accent='primary' not color='#8b5cf6')
+ * - Meaning-based names (status='success' not color='green')
+ * - Self-documenting API
+ *
+ * 3. **Consistent Patterns**
+ * - Similar props across components (className, children)
+ * - Predictable behavior and styling
+ * - Easy to learn and use
+ *
+ * 4. **Accessibility Built-in**
+ * - Semantic HTML throughout
+ * - ARIA labels where appropriate
+ * - Keyboard navigation support
+ * - Sufficient color contrast
+ *
+ * ## Example: Building a Documentation Page
+ *
+ * ```tsx
+ * import {
+ * Hero,
+ * SectionHeader,
+ * InlineCode,
+ * EndpointCard,
+ * ResponseBlock,
+ * LinkCard,
+ * LinkCardGrid,
+ * } from '@/components/docs/blocks';
+ *
+ * export default function APIPage() {
+ * return (
+ * <>
+ *
+ *
+ *
+ * Endpoint
+ *
+ *
+ *
+ *
+ *
+ * Response
+ *
+ *
+ *
+ *
+ *
+ * Next Steps
+ *
+ *
+ *
+ *
+ *
+ *
+ * >
+ * );
+ * }
+ * ```
+ *
+ * ## Color System Reference
+ *
+ * ### Semantic Colors
+ * - **primary**: Purple - Brand primary, main content
+ * - **secondary**: Cyan - Complementary, supporting content
+ * - **success**: Green - Positive outcomes, achievements
+ * - **info**: Blue/Cyan - Informational, neutral
+ * - **warning**: Amber - Caution, important notices
+ * - **error**: Red - Errors, problems, danger
+ * - **neutral**: Slate/Gray - Default, inactive
+ *
+ * ### HTTP Method Colors
+ * - **GET**: Cyan - Read operations
+ * - **POST**: Green - Create operations
+ * - **PUT**: Amber - Update operations
+ * - **PATCH**: Purple - Partial update
+ * - **DELETE**: Red - Delete operations
+ *
+ * ## Spacing System
+ *
+ * Consistent spacing creates visual rhythm:
+ * - **sm**: Tight spacing for compact layouts
+ * - **md**: Standard spacing (default for most components)
+ * - **lg**: Generous spacing for major sections
+ *
+ * ## Typography Scale
+ *
+ * Hierarchical text sizing:
+ * - **Hero**: text-4xl → text-6xl (large, page-level)
+ * - **H2**: text-3xl (section headings)
+ * - **H3**: text-xl (subsection headings)
+ * - **Body**: text-base (paragraph text)
+ * - **Small**: text-sm (supporting text)
+ * - **Code**: text-xs (code samples)
+ *
+ * @module blocks
+ */
+
+// Status & Indicators
+export { StatusBadge, type StatusBadgeProps, type StatusType, type StatusSize } from './StatusBadge';
+export { MethodBadge, type MethodBadgeProps, type HttpMethod, type MethodBadgeSize } from './MethodBadge';
+
+// Typography & Content
+export { Hero, type HeroProps, type HeroSize } from './Hero';
+export { SectionHeader, type SectionHeaderProps, type SectionHeaderLevel } from './SectionHeader';
+export { InlineCode, type InlineCodeProps, type InlineCodeColor } from './InlineCode';
+
+// API Documentation
+export { EndpointCard, type EndpointCardProps } from './EndpointCard';
+export { ResponseBlock, type ResponseBlockProps } from './ResponseBlock';
+
+// Navigation
+export { LinkCard, type LinkCardProps, type LinkCardAccent } from './LinkCard';
+export { LinkCardGrid, type LinkCardGridProps, type GridColumns } from './LinkCardGrid';