mdxui

Site Component Props

Complete props reference for all Site type components

Site Component Props

This page documents all props for Site type components based on the type definitions in packages/mdxui/src/types/site-types.ts.

Base Site Props

All site types extend from BaseSite with these common properties:

interface BaseSite {
  /** Site type identifier */
  type: string
  /** Site display name */
  name: string
  /** Primary domain (e.g., "example.com") */
  domain?: string
  /** Site description for SEO */
  description?: string
  /** Theme mode: light, dark, or system preference */
  theme?: 'light' | 'dark' | 'system'
  /** Array of navigation items for the site header */
  navigation?: NavItem[]
  /** Primary brand color in hex format */
  primaryColor?: string
  /** Logo image URL or React component */
  logo?: any
}

Marketing Site

Landing pages and conversion-focused sites.

interface MarketingSite extends BaseSite {
  type: 'marketing'
  /** Conversion and analytics tracking configuration */
  tracking?: {
    /** Analytics provider ID (e.g., Google Analytics tracking ID) */
    analytics?: string
    /** Conversion tracking pixel ID */
    conversion?: string
  }
  /** A/B testing configuration for experimentation */
  testing?: {
    /** Whether A/B testing is enabled */
    enabled?: boolean
    /** A/B testing provider (e.g., Optimizely, VWO) */
    provider?: string
  }
}

Sections: Hero (required), Features, Pricing, Testimonials, CTA (required), FAQ, LogoCloud

Docs Site

Technical documentation and knowledge bases.

interface DocsSite extends BaseSite {
  type: 'docs'
  /** Documentation-specific configuration */
  docs?: {
    /** GitHub repository URL or slug (e.g., "owner/repo") */
    repository?: string
    /** Default Git branch for edit links */
    branch?: string  // default: 'main'
    /** Enable documentation search functionality */
    search?: boolean  // default: true
    /** Enable version switching for documentation */
    versioning?: boolean  // default: false
  }
}

Sections: DocsHeader (required), DocsSidebar (required), DocsPage (required), TableOfContents, Breadcrumbs, PrevNext, EditPage, CodeBlock

Blog Site

Content publishing, articles, and blog posts.

interface BlogSite extends BaseSite {
  type: 'blog'
  /** Blog-specific configuration */
  blog?: {
    /** Number of blog posts to display per page */
    postsPerPage?: number  // default: 10
    /** Enable categorization of blog posts */
    categories?: boolean  // default: true
    /** Enable tagging of blog posts */
    tags?: boolean  // default: true
    /** Enable author profile pages */
    authors?: boolean  // default: true
    /** Generate RSS feed for blog posts */
    rss?: boolean  // default: true
  }
}

Sections: BlogHeader (required), BlogGrid (required), BlogPost (required), BlogSidebar, AuthorBio, RelatedPosts, Newsletter, Comments

Directory Site

Listings, catalogs, and searchable directories.

interface DirectorySite extends BaseSite {
  type: 'directory'
  /** Directory-specific configuration */
  directory?: {
    /** Number of directory listings per page */
    itemsPerPage?: number  // default: 20
    /** Enable filtering sidebar or panel */
    filters?: boolean  // default: true
    /** Enable sorting options for listings */
    sorting?: boolean  // default: true
    /** Enable map-based view of listings */
    map?: boolean  // default: false
    /** Search configuration for directory */
    search?: {
      /** Enable search functionality */
      enabled?: boolean  // default: true
      /** Search input placeholder text */
      placeholder?: string
    }
  }
}

Sections: DirectoryHeader (required), SearchBar (required), FilterPanel, ListingGrid (required), ListingCard (required), ListingDetail (required), MapView, Pagination

Marketplace Site

Multi-sided platforms with buyers and sellers.

interface MarketplaceSite extends BaseSite {
  type: 'marketplace'
  /** Marketplace-specific configuration */
  marketplace?: {
    /** Payment provider (e.g., "stripe", "paypal") */
    payment?: string
    /** Platform commission percentage (0-100) */
    commission?: number
    /** Enable seller management dashboards */
    sellerDashboards?: boolean  // default: true
    /** Enable buyer protection policies */
    buyerProtection?: boolean  // default: true
    /** Enable product/seller reviews and ratings */
    reviews?: boolean  // default: true
  }
}

Sections: MarketplaceHeader (required), ProductGrid (required), ProductCard (required), ProductDetail (required), SellerProfile, ShoppingCart, Checkout, Reviews, SellerDashboard

Community Site

Forums, discussions, and member communities.

interface CommunitySite extends BaseSite {
  type: 'community'
  /** Community-specific configuration */
  community?: {
    /** Enable discussion forums */
    forums?: boolean  // default: true
    /** Enable member profile pages */
    profiles?: boolean  // default: true
    /** Enable direct messaging between members */
    messaging?: boolean  // default: false
    /** Enable reputation/karma system */
    reputation?: boolean  // default: true
    /** Enable content moderation tools */
    moderation?: boolean  // default: true
  }
}

Sections: CommunityHeader (required), ForumList (required), ThreadList (required), Thread (required), MemberList, MemberProfile, ActivityFeed, Leaderboard

Portfolio Site

Work showcase and project portfolios.

interface PortfolioSite extends BaseSite {
  type: 'portfolio'
  /** Portfolio-specific configuration */
  portfolio?: {
    /** Project categories for filtering */
    categories?: string[]
    /** Enable filtering projects by category */
    filtering?: boolean  // default: true
    /** Project display layout style */
    style?: 'grid' | 'masonry' | 'slider'  // default: 'grid'
    /** Include contact form for inquiries */
    contact?: boolean  // default: true
  }
}

Sections: PortfolioHeader (required), PortfolioHero, ProjectGrid (required), ProjectCard (required), ProjectDetail (required), About, Skills, ContactForm

Personal Site

Personal branding and resume sites.

interface PersonalSite extends BaseSite {
  type: 'personal'
  /** Personal site-specific configuration */
  personal?: {
    /** Social media profile links */
    social?: Array<{
      /** Social media platform name (e.g., "twitter", "linkedin") */
      platform: string
      /** Profile URL for the platform */
      url: string
    }>
    /** Include resume/CV section */
    resume?: boolean  // default: false
    /** Include blog section */
    blog?: boolean  // default: false
  }
}

Sections: PersonalHeader (required), PersonalHero (required), About, Experience, Education, Skills, Portfolio, Contact

Event Site

Conferences, meetups, and event management.

interface EventSite extends BaseSite {
  type: 'event'
  /** Event-specific configuration */
  event?: {
    /** Event date (ISO string or formatted date) */
    date?: string
    /** Event location or venue name */
    location?: string
    /** Enable ticket sales and registration */
    ticketing?: boolean  // default: true
    /** Include event schedule/agenda */
    schedule?: boolean  // default: true
    /** Include speaker profiles and bios */
    speakers?: boolean  // default: true
    /** Include venue details and map */
    venue?: boolean  // default: true
  }
}

Sections: EventHeader (required), EventHero (required), Schedule, Speakers, Venue, Sponsors, Tickets, FAQ

Story Site

Storytelling, case studies, and narrative experiences.

interface StorySite extends BaseSite {
  type: 'story'
  /** Story-specific configuration */
  story?: {
    /** Story presentation format */
    format?: 'linear' | 'scrollytelling' | 'interactive'  // default: 'linear'
    /** Enable chapter navigation */
    chapters?: boolean  // default: true
    /** Show reading progress indicator */
    progress?: boolean  // default: true
    /** Enable rich media (images, video, audio) */
    multimedia?: boolean  // default: true
  }
}

Sections: StoryHeader, StoryCover (required), StoryChapter (required), StoryMedia, StoryQuote, StoryTimeline, StoryNavigation, ProgressIndicator

API Site

API documentation and developer portals.

interface APISite extends BaseSite {
  type: 'api'
  /** API documentation-specific configuration */
  api?: {
    /** URL to OpenAPI/Swagger specification file */
    specUrl?: string
    /** Enable interactive API playground */
    playground?: boolean  // default: true
    /** Include authentication documentation and examples */
    auth?: boolean  // default: true
    /** Include code samples for API endpoints */
    codeSamples?: boolean  // default: true
    /** Programming languages for code samples (e.g., ["javascript", "python", "curl"]) */
    languages?: string[]
  }
}

Sections: APIHeader (required), APISidebar (required), APIReference (required), APIPlayground, CodeSamples, Authentication, RateLimits, Changelog

Agent Site

AI agent interfaces and chat experiences.

interface AgentSite extends BaseSite {
  type: 'agent'
  /** AI agent-specific configuration */
  agent?: {
    /** AI model identifier (e.g., "gpt-4", "claude-3") */
    model?: string
    /** Enable persistent chat history */
    history?: boolean  // default: true
    /** Enable AI function/tool calling */
    functions?: boolean  // default: true
    /** Enable streaming responses for better UX */
    streaming?: boolean  // default: true
    /** Enable multimodal inputs (images, files) */
    multimodal?: boolean  // default: false
  }
}

Sections: AgentHeader (required), ChatInterface (required), MessageList (required), InputBar (required), AgentProfile, FunctionCalls, HistorySidebar, SettingsPanel

Agency Site

Agency services, team, and client showcase.

interface AgencySite extends BaseSite {
  type: 'agency'
  /** Agency-specific configuration */
  agency?: {
    /** Service categories offered by the agency */
    services?: string[]
    /** Include team member profiles */
    team?: boolean  // default: true
    /** Include client case studies */
    caseStudies?: boolean  // default: true
    /** Include client testimonials */
    testimonials?: boolean  // default: true
    /** Include contact/inquiry form */
    contact?: boolean  // default: true
  }
}

Sections: AgencyHeader (required), AgencyHero (required), Services (required), CaseStudies, Team, Clients, Process, ContactForm

Platform Site

Multi-tenant platforms and SaaS dashboards.

interface PlatformSite extends BaseSite {
  type: 'platform'
  /** Platform-specific configuration */
  platform?: {
    /** Enable multi-tenant architecture */
    multiTenant?: boolean  // default: true
    /** Enable organization/workspace management */
    organizations?: boolean  // default: true
    /** Enable role-based access control (RBAC) */
    rbac?: boolean  // default: true
    /** Enable billing and subscription management */
    billing?: boolean  // default: true
    /** Include platform admin panel */
    admin?: boolean  // default: true
  }
}

Sections: PlatformHeader (required), PlatformDashboard (required), WorkspaceSelector, OrganizationSettings, TeamManagement, BillingDashboard, AdminPanel, Analytics

Common Types

Navigation item structure used across all sites:

interface NavItem {
  label: string
  href: string
  icon?: string
  description?: string
  children?: NavItem[]
}

CTA

Call-to-action configuration:

interface CTA {
  text: string
  href: string
}

ThemeMode

type ThemeMode = 'light' | 'dark' | 'system'

On this page