# ホームページ {#home-page} VitePress のデフォルトテーマにはホームページ用レイアウトが用意されています([このサイトのトップページ](../) でも使われています)。[フロントマター](./frontmatter-config) に `layout: home` を指定すれば、任意のページで利用できます。 ```yaml --- layout: home --- ``` ただし、この指定だけでは多くのことは起きません。`hero` や `features` などの追加オプションを設定して、ホームページにあらかじめ用意された複数の「セクション」を配置できます。 ## ヒーローセクション {#hero-section} ヒーローセクションはホームページの最上部に表示されます。設定例は次のとおりです。 ```yaml --- layout: home hero: name: VitePress text: Vite & Vue powered static site generator. tagline: 概要テキスト... image: src: /logo.png alt: VitePress actions: - theme: brand text: はじめる link: /guide/what-is-vitepress - theme: alt text: GitHub で見る link: https://github.com/vuejs/vitepress --- ``` ```ts interface Hero { // `text` の上に表示される短い文字列。ブランドカラーで表示。 // 製品名のような短い文言を想定。 name?: string // ヒーローセクションのメインテキスト。`h1` として出力。 text: string // `text` の下に表示されるタグライン。 tagline?: string // テキストとタグラインの横に表示する画像。 image?: ThemeableImage // ヒーローに表示するアクションボタン。 actions?: HeroAction[] } type ThemeableImage = | string | { src: string; alt?: string } | { light: string; dark: string; alt?: string } interface HeroAction { // ボタンのカラーテーマ。既定は `brand`。 theme?: 'brand' | 'alt' // ボタンのラベル。 text: string // ボタンのリンク先。 link: string // a 要素の target 属性。 target?: string // a 要素の rel 属性。 rel?: string } ``` ### name の色をカスタマイズする {#customizing-the-name-color} `name` にはブランドカラー(`--vp-c-brand-1`)が使われますが、`--vp-home-hero-name-color` 変数を上書きして色を変更できます。 ```css :root { --vp-home-hero-name-color: blue; } ``` さらに、`--vp-home-hero-name-background` を組み合わせると、`name` にグラデーションを適用できます。 ```css :root { --vp-home-hero-name-color: transparent; --vp-home-hero-name-background: -webkit-linear-gradient(120deg, #bd34fe, #41d1ff); } ``` ## フィーチャーセクション {#features-section} フィーチャーセクションでは、ヒーロー直下に任意の数の機能説明を並べられます。フロントマターに `features` オプションを指定して設定します。 各フィーチャーにはアイコン(絵文字または画像)を指定できます。アイコンが画像(svg, png, jpeg など)の場合は、**適切な幅・高さ** を指定してください。必要に応じて説明テキストや実サイズ、ライト/ダーク用の差し替えも指定できます。 ```yaml --- layout: home features: - icon: 🛠️ title: いつでもシンプル&ミニマル details: 概要テキスト... - icon: src: /cool-feature-icon.svg title: もうひとつの便利機能 details: 概要テキスト... - icon: dark: /dark-feature-icon.svg light: /light-feature-icon.svg title: さらに別の機能 details: 概要テキスト... --- ``` ```ts interface Feature { // 各フィーチャーボックスに表示するアイコン。 icon?: FeatureIcon // フィーチャーのタイトル。 title: string // フィーチャーの詳細説明。 details: string // フィーチャーをクリックしたときのリンク(内部・外部どちらも可)。 // // 例: `guide/reference/default-theme-home-page` や `https://example.com` link?: string // フィーチャー内に表示するリンクテキスト。 // `link` と併用するのが最適。 // // 例: `Learn more`, `Visit page` など linkText?: string // `link` 用の rel 属性。 // // 例: `external` rel?: string // `link` 用の target 属性。 target?: string } type FeatureIcon = | string | { src: string; alt?: string; width?: string; height: string } | { light: string dark: string alt?: string width?: string height: string } ``` ## Markdown コンテンツ {#markdown-content} `---` で区切るフロントマターの下に Markdown を書くだけで、ホームページに追加コンテンツを表示できます。 ````md --- layout: home hero: name: VitePress text: Vite & Vue powered static site generator. --- ## はじめに `npx` を使えば、すぐに VitePress を始められます! ```sh npm init npx vitepress init ```