# デフォルトテーマの設定 {#default-theme-config}
テーマ設定では、テーマのカスタマイズができます。設定ファイルの `themeConfig` オプションで定義します。
```ts
export default {
lang: 'en-US',
title: 'VitePress',
description: 'Vite & Vue powered static site generator.',
// テーマ関連の設定
themeConfig: {
logo: '/logo.svg',
nav: [...],
sidebar: { ... }
}
}
```
**このページで説明するオプションは、デフォルトテーマにのみ適用されます。** テーマによって期待する設定は異なります。カスタムテーマを使用する場合、ここで定義したテーマ設定オブジェクトはテーマへ渡され、テーマ側がそれに基づいて条件付きの挙動を定義できます。
## i18nRouting
- 型: `boolean`
ロケールを `zh` のように切り替えると、URL は `/foo`(または `/en/foo/`)から `/zh/foo` に変わります。`themeConfig.i18nRouting` を `false` に設定すると、この挙動を無効化できます。
## logo
- 型: `ThemeableImage`
サイトタイトルの直前に、ナビゲーションバーに表示されるロゴ。パス文字列、またはライト/ダークモードで異なるロゴを設定するオブジェクトを受け取ります。
```ts
export default {
themeConfig: {
logo: '/logo.svg'
}
}
```
```ts
type ThemeableImage =
| string
| { src: string; alt?: string }
| { light: string; dark: string; alt?: string }
```
## siteTitle
- 型: `string | false`
ナビゲーション内の既定サイトタイトル(アプリ設定の `title`)を置き換えます。`false` の場合、ナビのタイトルを非表示にします。ロゴ自体にサイト名が含まれている場合に便利です。
```ts
export default {
themeConfig: {
siteTitle: 'Hello World'
}
}
```
## nav
- 型: `NavItem`
ナビゲーションメニューの設定。[デフォルトテーマ: ナビ](./default-theme-nav#navigation-links) を参照してください。
```ts
export default {
themeConfig: {
nav: [
{ text: 'Guide', link: '/guide' },
{
text: 'Dropdown Menu',
items: [
{ text: 'Item A', link: '/item-1' },
{ text: 'Item B', link: '/item-2' },
{ text: 'Item C', link: '/item-3' }
]
}
]
}
}
```
```ts
type NavItem = NavItemWithLink | NavItemWithChildren
interface NavItemWithLink {
text: string
link: string | ((payload: PageData) => string)
activeMatch?: string
target?: string
rel?: string
noIcon?: boolean
}
interface NavItemChildren {
text?: string
items: NavItemWithLink[]
}
interface NavItemWithChildren {
text?: string
items: (NavItemChildren | NavItemWithLink)[]
activeMatch?: string
}
```
## sidebar
- 型: `Sidebar`
サイドバーメニューの設定。[デフォルトテーマ: サイドバー](./default-theme-sidebar) を参照してください。
```ts
export default {
themeConfig: {
sidebar: [
{
text: 'Guide',
items: [
{ text: 'Introduction', link: '/introduction' },
{ text: 'Getting Started', link: '/getting-started' },
...
]
}
]
}
}
```
```ts
export type Sidebar = SidebarItem[] | SidebarMulti
export interface SidebarMulti {
[path: string]: SidebarItem[] | { items: SidebarItem[]; base: string }
}
export type SidebarItem = {
/**
* 項目のテキストラベル
*/
text?: string
/**
* 項目のリンク
*/
link?: string
/**
* 子項目
*/
items?: SidebarItem[]
/**
* 指定しない場合、グループは折りたたみ不可。
*
* `true` なら折りたたみ可能でデフォルト折りたたみ
*
* `false` なら折りたたみ可能だがデフォルト展開
*/
collapsed?: boolean
/**
* 子項目のベースパス
*/
base?: string
/**
* 前/次リンクのフッターに表示するテキストをカスタマイズ
*/
docFooterText?: string
rel?: string
target?: string
}
```
## aside
- 型: `boolean | 'left'`
- 既定値: `true`
- ページごとに [frontmatter](./frontmatter-config#aside) で上書き可能
`false` でサイドコンテナの描画を無効化。\
`true` で右側に表示。\
`left` で左側に表示。
すべてのビューポートで無効にしたい場合は、代わりに `outline: false` を使用してください。
## outline
- 型: `Outline | Outline['level'] | false`
- レベルはページごとに [frontmatter](./frontmatter-config#outline) で上書き可能
`false` でアウトラインコンテナの描画を無効化。詳細は以下を参照:
```ts
interface Outline {
/**
* アウトラインに表示する見出しレベル
* 単一の数値なら、そのレベルのみ表示
* タプルなら最小レベルと最大レベル
* `'deep'` は `[2, 6]` と同じ(`
` 〜 `` を表示)
*
* @default 2
*/
level?: number | [number, number] | 'deep'
/**
* アウトラインに表示するタイトル
*
* @default 'On this page'
*/
label?: string
}
```
## socialLinks
- 型: `SocialLink[]`
ナビゲーションにアイコン付きのソーシャルリンクを表示します。
```ts
export default {
themeConfig: {
socialLinks: [
// simple-icons (https://simpleicons.org/) の任意のアイコンを指定可能
{ icon: 'github', link: 'https://github.com/vuejs/vitepress' },
{ icon: 'twitter', link: '...' },
// SVG 文字列を渡してカスタムアイコンも可
{
icon: {
svg: ''
},
link: '...',
// アクセシビリティ向けにカスタムラベルも指定可(推奨)
ariaLabel: 'cool link'
}
]
}
}
```
```ts
interface SocialLink {
icon: string | { svg: string }
link: string
ariaLabel?: string
}
```
## footer
- 型: `Footer`
- ページごとに [frontmatter](./frontmatter-config#footer) で上書き可能
フッター設定。メッセージや著作権表示を追加できますが、ページにサイドバーがある場合はデザイン上表示されません。
```ts
export default {
themeConfig: {
footer: {
message: 'Released under the MIT License.',
copyright: 'Copyright © 2019-present Evan You'
}
}
}
```
```ts
export interface Footer {
message?: string
copyright?: string
}
```
## editLink
- 型: `EditLink`
- ページごとに [frontmatter](./frontmatter-config#editlink) で上書き可能
「このページを編集」リンクを表示します(GitHub/GitLab など)。詳細は [デフォルトテーマ: 編集リンク](./default-theme-edit-link) を参照。
```ts
export default {
themeConfig: {
editLink: {
pattern: 'https://github.com/vuejs/vitepress/edit/main/docs/:path',
text: 'Edit this page on GitHub'
}
}
}
```
```ts
export interface EditLink {
pattern: string
text?: string
}
```
## lastUpdated
- 型: `LastUpdatedOptions`
最終更新の文言と日付フォーマットをカスタマイズします。
```ts
export default {
themeConfig: {
lastUpdated: {
text: 'Updated at',
formatOptions: {
dateStyle: 'full',
timeStyle: 'medium'
}
}
}
}
```
```ts
export interface LastUpdatedOptions {
/**
* @default 'Last updated'
*/
text?: string
/**
* @default
* { dateStyle: 'short', timeStyle: 'short' }
*/
formatOptions?: Intl.DateTimeFormatOptions & { forceLocale?: boolean }
}
```
## algolia
- 型: `AlgoliaSearch`
[Algolia DocSearch](https://docsearch.algolia.com/docs/what-is-docsearch) によるサイト内検索の設定。[デフォルトテーマ: 検索](./default-theme-search) を参照。
```ts
export interface AlgoliaSearchOptions extends DocSearchProps {
locales?: Record>
}
```
完全なオプションは[こちら](https://github.com/vuejs/vitepress/blob/main/types/docsearch.d.ts)。
## carbonAds {#carbon-ads}
- 型: `CarbonAdsOptions`
[Carbon Ads](https://www.carbonads.net/) を表示します。
```ts
export default {
themeConfig: {
carbonAds: {
code: 'your-carbon-code',
placement: 'your-carbon-placement'
}
}
}
```
```ts
export interface CarbonAdsOptions {
code: string
placement: string
}
```
詳細は [デフォルトテーマ: Carbon Ads](./default-theme-carbon-ads) を参照。
## docFooter
- 型: `DocFooter`
前/次リンクの上に表示される文言をカスタマイズします。英語以外のドキュメントで便利。前/次リンク自体をグローバルに無効化することも可能。ページごとに切り替えたい場合は [frontmatter](./default-theme-prev-next-links) を使用します。
```ts
export default {
themeConfig: {
docFooter: {
prev: 'Pagina prior',
next: 'Proxima pagina'
}
}
}
```
```ts
export interface DocFooter {
prev?: string | false
next?: string | false
}
```
## darkModeSwitchLabel
- 型: `string`
- 既定値: `Appearance`
ダークモード切替スイッチのラベル(モバイル表示のみ)をカスタマイズします。
## lightModeSwitchTitle
- 型: `string`
- 既定値: `Switch to light theme`
ホバー時に表示されるライトモード切替のタイトルをカスタマイズします。
## darkModeSwitchTitle
- 型: `string`
- 既定値: `Switch to dark theme`
ホバー時に表示されるダークモード切替のタイトルをカスタマイズします。
## sidebarMenuLabel
- 型: `string`
- 既定値: `Menu`
サイドバーメニューのラベル(モバイル表示のみ)をカスタマイズします。
## returnToTopLabel
- 型: `string`
- 既定値: `Return to top`
トップに戻るボタンのラベル(モバイル表示のみ)をカスタマイズします。
## langMenuLabel
- 型: `string`
- 既定値: `Change language`
ナビバーの言語切替ボタンの aria-label をカスタマイズします。[i18n](../guide/i18n) を使う場合に有効です。
## skipToContentLabel
- 型: `string`
- 既定値: `Skip to content`
コンテンツへスキップリンクのラベルをカスタマイズします。キーボード操作時に表示されます。
## externalLinkIcon
- 型: `boolean`
- 既定値: `false`
Markdown 内の外部リンクの横に外部リンクアイコンを表示するかどうか。
## `useLayout`
レイアウト関連のデータを返します。返り値の型は次のとおりです。
```ts
interface {
isHome: ComputedRef
sidebar: Readonly>
sidebarGroups: ComputedRef
hasSidebar: ComputedRef
isSidebarEnabled: ComputedRef
hasAside: ComputedRef
leftAside: ComputedRef
headers: Readonly>
hasLocalNav: ComputedRef
}
```
**例:**
```vue
サイドバーがあるときだけ表示
```