You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vitepress/docs/ja/reference/default-theme-home-page.md

189 lines
5.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# ホームページ {#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
```