Skip to content

Default Theme: Home Page ​

Learn how to configure and customize the home page layout in the VitePress default theme.

Basic Home Page Setup ​

Enable Home Layout ​

Set the layout to home in your frontmatter:

markdown
---
layout: home
---

Complete Home Page Example ​

markdown
---
layout: home

hero:
  name: "VitePress"
  text: "Vite & Vue powered static site generator"
  tagline: Simple, powerful, and performant. Meet the modern SSG framework you've been waiting for.
  image:
    src: /logo-with-shadow.png
    alt: VitePress
  actions:
    - theme: brand
      text: Get Started
      link: /guide/getting-started
    - theme: alt
      text: View on GitHub
      link: https://github.com/vuejs/vitepress

features:
  - icon: ⚡️
    title: Vite, The DX that can't be beat
    details: Feel the speed of Vite. Instant server start and lightning fast HMR that stays fast regardless of the app size.
  - icon: 💡
    title: Designed to be simplicity first
    details: With Markdown-centered content, it's built to help you focus on writing and deployed with minimum configuration.
  - icon: 🛠️
    title: Power of Vue meets Markdown
    details: Enhance your content with all the features of Vue in Markdown, while being able to customize your site with Vue.
---

Hero Section Configuration ​

Basic Hero ​

markdown
---
layout: home

hero:
  name: "My Project"
  text: "Amazing documentation site"
  tagline: "Build beautiful docs with ease"
---

Hero with Image ​

markdown
---
layout: home

hero:
  name: "My Project"
  text: "Amazing documentation site"
  tagline: "Build beautiful docs with ease"
  image:
    src: /hero-image.png
    alt: My Project Logo
---

Hero with Background Image ​

markdown
---
layout: home

hero:
  name: "My Project"
  text: "Amazing documentation site"
  tagline: "Build beautiful docs with ease"
  image:
    src: /hero-bg.jpg
    alt: Background
  style: |
    .VPHero .image {
      background: linear-gradient(45deg, #42b883, #35495e);
    }
---

Hero Actions ​

markdown
---
layout: home

hero:
  name: "My Project"
  text: "Amazing documentation site"
  actions:
    - theme: brand
      text: Get Started
      link: /guide/
    - theme: alt
      text: View on GitHub
      link: https://github.com/username/repo
    - theme: sponsor
      text: Sponsor
      link: https://github.com/sponsors/username
---

Features Section ​

Basic Features ​

markdown
---
layout: home

features:
  - title: Fast
    details: Lightning fast hot reload and build times
  - title: Simple
    details: Minimal configuration required
  - title: Powerful
    details: Full Vue.js support in Markdown
---

Features with Icons ​

markdown
---
layout: home

features:
  - icon: 🚀
    title: Fast Performance
    details: Built on Vite for lightning-fast development and optimized production builds
  - icon: 📝
    title: Markdown-Centered
    details: Focus on your content with Markdown, enhanced with Vue components
  - icon: 🎨
    title: Customizable
    details: Flexible theming system with full Vue.js component support
---

Features with Custom Icons ​

markdown
---
layout: home

features:
  - icon:
      src: /icons/performance.svg
      alt: Performance
    title: Optimized Performance
    details: Fast loading times and excellent Core Web Vitals scores
  - icon:
      src: /icons/developer.svg
      alt: Developer Experience
    title: Great DX
    details: Hot module replacement, TypeScript support, and modern tooling
---
markdown
---
layout: home

features:
  - title: Getting Started
    details: Learn the basics and get up and running quickly
    link: /guide/getting-started
    linkText: Start Learning
  - title: API Reference
    details: Complete API documentation with examples
    link: /api/
    linkText: View API
  - title: Examples
    details: Real-world examples and use cases
    link: /examples/
    linkText: Browse Examples
---

Advanced Hero Configuration ​

Multi-line Hero Text ​

markdown
---
layout: home

hero:
  name: "VitePress"
  text: |
    Vite & Vue powered
    static site generator
  tagline: Simple, powerful, and performant
---

Hero with Gradient Text ​

markdown
---
layout: home

hero:
  name: "VitePress"
  text: "Next Generation SSG"
  tagline: "The future of documentation"

style: |
  .VPHero .name {
    background: linear-gradient(135deg, #42b883 0%, #35495e 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
---

Animated Hero ​

markdown
---
layout: home

hero:
  name: "VitePress"
  text: "Static Site Generator"
  tagline: "Build amazing documentation sites"

style: |
  .VPHero .name {
    animation: fadeInUp 1s ease-out;
  }
  
  .VPHero .text {
    animation: fadeInUp 1s ease-out 0.2s both;
  }
  
  .VPHero .tagline {
    animation: fadeInUp 1s ease-out 0.4s both;
  }
  
  @keyframes fadeInUp {
    from {
      opacity: 0;
      transform: translateY(30px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
---

Custom Home Page Sections ​

Adding Custom Sections ​

markdown
---
layout: home

hero:
  name: "My Project"
  text: "Amazing documentation"

features:
  - title: Feature 1
    details: Description of feature 1
---

## Why Choose Our Solution?

<div class="custom-section">
  <div class="section-content">
    <h3>Built for Developers</h3>
    <p>Our solution is designed with developers in mind, providing the tools and flexibility you need.</p>
  </div>
</div>

## Testimonials

<div class="testimonials">
  <div class="testimonial">
    <blockquote>
      "This tool has revolutionized our documentation workflow."
    </blockquote>
    <cite>— John Doe, Senior Developer</cite>
  </div>
</div>

<style>
.custom-section {
  padding: 48px 24px;
  background: var(--vp-c-bg-soft);
  border-radius: 12px;
  margin: 48px 0;
}

.testimonials {
  display: grid;
  gap: 24px;
  margin: 48px 0;
}

.testimonial {
  padding: 24px;
  border-left: 4px solid var(--vp-c-brand-1);
  background: var(--vp-c-bg-soft);
}

.testimonial blockquote {
  margin: 0 0 16px 0;
  font-style: italic;
  font-size: 18px;
}

.testimonial cite {
  color: var(--vp-c-text-2);
  font-size: 14px;
}
</style>

Styling the Home Page ​

Custom Hero Styling ​

css
/* Custom hero styles */
.VPHero {
  padding-top: 120px;
  padding-bottom: 80px;
}

.VPHero .container {
  max-width: 1200px;
}

.VPHero .name {
  font-size: 64px;
  font-weight: 900;
  line-height: 1.1;
  background: linear-gradient(135deg, #42b883 0%, #35495e 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.VPHero .text {
  font-size: 32px;
  font-weight: 600;
  color: var(--vp-c-text-1);
  margin: 24px 0;
}

.VPHero .tagline {
  font-size: 20px;
  color: var(--vp-c-text-2);
  margin-bottom: 48px;
}

.VPHero .image {
  max-width: 400px;
  margin: 0 auto;
}

.VPHero .actions {
  gap: 16px;
  margin-top: 48px;
}

Custom Features Styling ​

css
/* Custom features styles */
.VPFeatures {
  padding: 80px 24px;
  background: var(--vp-c-bg-soft);
}

.VPFeatures .container {
  max-width: 1200px;
  margin: 0 auto;
}

.VPFeatures .items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 32px;
}

.VPFeature {
  padding: 32px;
  background: var(--vp-c-bg);
  border-radius: 12px;
  border: 1px solid var(--vp-c-border);
  transition: all 0.3s ease;
}

.VPFeature:hover {
  border-color: var(--vp-c-brand-1);
  transform: translateY(-4px);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.VPFeature .icon {
  font-size: 48px;
  margin-bottom: 16px;
  display: block;
}

.VPFeature .title {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 12px;
  color: var(--vp-c-text-1);
}

.VPFeature .details {
  font-size: 16px;
  line-height: 1.6;
  color: var(--vp-c-text-2);
}

Responsive Design ​

Mobile-First Hero ​

css
/* Mobile-first hero design */
.VPHero .name {
  font-size: 32px;
}

.VPHero .text {
  font-size: 20px;
}

.VPHero .tagline {
  font-size: 16px;
}

@media (min-width: 640px) {
  .VPHero .name {
    font-size: 48px;
  }
  
  .VPHero .text {
    font-size: 24px;
  }
  
  .VPHero .tagline {
    font-size: 18px;
  }
}

@media (min-width: 960px) {
  .VPHero .name {
    font-size: 64px;
  }
  
  .VPHero .text {
    font-size: 32px;
  }
  
  .VPHero .tagline {
    font-size: 20px;
  }
}

Responsive Features Grid ​

css
/* Responsive features grid */
.VPFeatures .items {
  grid-template-columns: 1fr;
  gap: 24px;
}

@media (min-width: 640px) {
  .VPFeatures .items {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px;
  }
}

@media (min-width: 960px) {
  .VPFeatures .items {
    grid-template-columns: repeat(3, 1fr);
  }
}

SEO Optimization ​

Meta Tags for Home Page ​

markdown
---
layout: home
title: My Project - The Best Documentation Tool
description: Build amazing documentation sites with My Project. Fast, simple, and powerful static site generator.
head:
  - - meta
    - name: keywords
      content: documentation, static site generator, vue, vite
  - - meta
    - property: og:title
      content: My Project - The Best Documentation Tool
  - - meta
    - property: og:description
      content: Build amazing documentation sites with My Project
  - - meta
    - property: og:image
      content: https://example.com/og-image.jpg
  - - meta
    - property: og:url
      content: https://example.com
  - - meta
    - name: twitter:card
      content: summary_large_image

hero:
  name: "My Project"
  text: "The Best Documentation Tool"
  tagline: "Build amazing documentation sites with ease"
---

Structured Data ​

markdown
---
layout: home

hero:
  name: "My Project"
  text: "Documentation Tool"

head:
  - - script
    - type: application/ld+json
    - |
      {
        "@context": "https://schema.org",
        "@type": "SoftwareApplication",
        "name": "My Project",
        "description": "Build amazing documentation sites",
        "url": "https://example.com",
        "applicationCategory": "DeveloperApplication",
        "operatingSystem": "Any",
        "offers": {
          "@type": "Offer",
          "price": "0",
          "priceCurrency": "USD"
        }
      }
---

Performance Optimization ​

Lazy Loading Images ​

markdown
---
layout: home

hero:
  name: "My Project"
  image:
    src: /hero-image.png
    alt: My Project
    loading: lazy

features:
  - icon:
      src: /icons/feature1.svg
      alt: Feature 1
      loading: lazy
    title: Feature 1
    details: Description
---

Optimized Images ​

markdown
---
layout: home

hero:
  image:
    src: /hero-image.webp
    alt: My Project
    srcset: |
      /hero-image-320w.webp 320w,
      /hero-image-640w.webp 640w,
      /hero-image-1280w.webp 1280w
    sizes: |
      (max-width: 320px) 280px,
      (max-width: 640px) 600px,
      1200px
---

Accessibility ​

Screen Reader Support ​

markdown
---
layout: home

hero:
  name: "My Project"
  text: "Documentation Tool"
  tagline: "Build amazing documentation sites"
  image:
    src: /hero-image.png
    alt: "My Project logo featuring a modern design with blue and green gradients"
  actions:
    - theme: brand
      text: Get Started
      link: /guide/
      ariaLabel: "Get started with My Project documentation"
    - theme: alt
      text: View on GitHub
      link: https://github.com/username/repo
      ariaLabel: "View My Project source code on GitHub"

features:
  - icon: 🚀
    title: Fast Performance
    details: Lightning fast development and build times
    ariaLabel: "Learn about fast performance features"
  - icon: 📝
    title: Markdown-Centered
    details: Focus on content with enhanced Markdown
    ariaLabel: "Learn about Markdown-centered approach"
---

Keyboard Navigation ​

css
/* Keyboard navigation styles */
.VPHero .action:focus,
.VPFeature .link:focus {
  outline: 2px solid var(--vp-c-brand-1);
  outline-offset: 2px;
  border-radius: 4px;
}

.VPHero .action:focus:not(:focus-visible),
.VPFeature .link:focus:not(:focus-visible) {
  outline: none;
}

/* Skip to content link */
.skip-to-content {
  position: absolute;
  top: -40px;
  left: 6px;
  background: var(--vp-c-brand-1);
  color: white;
  padding: 8px;
  text-decoration: none;
  border-radius: 4px;
  z-index: 1000;
}

.skip-to-content:focus {
  top: 6px;
}

Best Practices ​

Content Guidelines ​

  1. Clear value proposition - Make it obvious what your project does
  2. Compelling hero text - Use action-oriented language
  3. Benefit-focused features - Focus on user benefits, not just features
  4. Social proof - Include testimonials, stats, or logos

Design Guidelines ​

  1. Visual hierarchy - Use size, color, and spacing effectively
  2. Consistent branding - Maintain brand consistency throughout
  3. Mobile-first - Design for mobile devices first
  4. Performance - Optimize images and minimize JavaScript

SEO Guidelines ​

  1. Descriptive titles - Use clear, keyword-rich titles
  2. Meta descriptions - Write compelling meta descriptions
  3. Structured data - Include relevant schema markup
  4. Internal linking - Link to important internal pages

Accessibility Guidelines ​

  1. Alt text - Provide descriptive alt text for images
  2. Color contrast - Ensure sufficient color contrast
  3. Keyboard navigation - Support keyboard-only users
  4. Screen readers - Use semantic HTML and ARIA labels

VitePress Development Guide