コンテンツにスキップ
Filters

    オーバーライド

    Starlightのcomponents設定オプションに置き換え対象のコンポーネントへのパスを指定することで、Starlightの組み込みコンポーネントをオーバーライドできます。このページでは、オーバーライド可能なすべてのコンポーネントと、GitHub上にあるコンポーネントのデフォルト実装へのリンクの一覧を記載しています。

    コンポーネントのオーバーライドガイドも参照してください。

    すべてのコンポーネントは、現在のページに関する情報を含んでいる、標準のAstro.propsオブジェクトにアクセスできます。

    カスタムコンポーネントに型を付けるには、StarlightからProps型をインポートします。

    src/components/Custom.astro
    ---
    import type { Props } from '@astrojs/starlight/props';
    const { hasSidebar } = Astro.props;
    // ^ type: boolean
    ---

    これにより、Astro.propsにアクセスする際、オートコンプリートと型が有効になります。

    Starlightは、以下のpropsをカスタムコンポーネントに渡します。

    Type: 'ltr' | 'rtl'

    ページの書字方向。

    Type: string

    このページのロケールのBCP-47言語タグ。たとえばenzh-CNpt-BRなど。

    Type: string | undefined

    言語が配信されるベースパス。ルートロケールスラグの場合はundefinedとなります。

    Type: string

    このページのロケールのサイトタイトル。

    Type: string

    サイトタイトルのhref属性の値。たとえば/など、ホームページへのリンクとなります。多言語サイトの場合、たとえば/en//zh-cn/など、現在のロケールが含まれます。

    Type: string

    コンテンツファイル名から生成されたページのスラグ。

    Type: string

    コンテンツファイル名に基づくページの一意のID。

    Type: true | undefined

    このページが現在の言語で未翻訳であり、デフォルトロケールのフォールバックコンテンツを使用している場合はtrueとなります。多言語サイトでのみ使用されます。

    Type: { dir: 'ltr' | 'rtl'; lang: string }

    ページコンテンツのロケールメタデータ。ページがフォールバックコンテンツを使用している場合、トップレベルのロケール値とは異なる場合があります。

    現在のページのAstroコンテンツコレクションのエントリー。entry.dataには、現在のページのフロントマターの値が含まれます。

    entry: {
    data: {
    title: string;
    description: string | undefined;
    // その他の値
    }
    }

    このオブジェクトの構造については、Astroのコレクションエントリー型リファレンスを参照してください。

    Type: SidebarEntry[]

    ページのサイトナビゲーション用サイドバーのエントリー。

    Type: boolean

    ページにサイドバーを表示するかどうか。

    Type: { prev?: Link; next?: Link }

    ページネーションの設定が有効な場合にサイドバーに表示される、前のページと次のページへのリンク。

    Type: { minHeadingLevel: number; maxHeadingLevel: number; items: TocItem[] } | undefined

    目次の設定が有効な場合、このページの目次。

    Type: { depth: number; slug: string; text: string }[]

    現在のページから抽出されたすべてのMarkdown見出しの配列。Starlightの設定オプションをもとに目次コンポーネントを作成したい場合は、tocを使用してください。

    Type: Date | undefined

    最終更新日の設定が有効な場合、このページが最後に更新された日時を表わすJavaScriptのDateオブジェクト。

    Type: URL | undefined

    ページの編集設定が有効な場合、このページを編集可能なアドレスのURLオブジェクト。


    以下のコンポーネントは、各ページの<head>要素内にレンダリングされます。<head>内に配置可能な要素のみを含めるようにしてください。

    デフォルトコンポーネント: Head.astro

    各ページの<head>内にレンダリングされるコンポーネント。<title><meta charset="utf-8">などの重要なタグが含まれます。

    このコンポーネントをオーバーライドするのは最後の手段としてください。可能な限り、Starlightの設定オプションheadを使用してください。

    デフォルトコンポーネント: ThemeProvider.astro

    ダーク/ライトテーマのサポートを設定するための、<head>内にレンダリングされるコンポーネント。デフォルトの実装では、インラインスクリプトと<ThemeSelect />で使用される<template>が含まれています。


    デフォルトコンポーネント: SkipLink.astro

    アクセシビリティのために<body>内の最初の要素としてレンダリングされる、メインページコンテンツへのリンクのコンポーネント。デフォルトの実装では、ユーザーがキーボードでタブを押してフォーカスするまで非表示となります。


    以下のコンポーネントは、Starlightのコンポーネントのレイアウトと、異なるブレークポイント間のビューの管理を担当します。これらをオーバーライドすると著しく複雑になるため、可能な限り、より低レベルのコンポーネントをオーバーライドすることをおすすめします。

    デフォルトコンポーネント: PageFrame.astro

    ページコンテンツの大部分をラップするレイアウトコンポーネント。デフォルトの実装では、ヘッダー・サイドバー・メインのレイアウトをセットし、headersidebarの名前付きスロットと、メインコンテンツのデフォルトスロットを含みます。また、小さな(モバイル)ビューポートでのサイドバーナビゲーションの切り替えをサポートするために、<MobileMenuToggle />をレンダリングします。

    デフォルトコンポーネント: MobileMenuToggle.astro

    小さな(モバイル)ビューポートでのサイドバーナビゲーションの切り替えを担当する、<PageFrame>内にレンダリングされるコンポーネント。

    デフォルトコンポーネント: TwoColumnContent.astro

    メインコンテンツのカラムと右サイドバー(目次)をラップするレイアウトコンポーネント。デフォルトの実装では、1カラムの小さなビューポート向けレイアウトと、2カラムの大きなビューポート向けレイアウトの切り替えをおこないます。


    以下のコンポーネントは、Starlightのトップナビゲーションバーをレンダリングします。

    デフォルトコンポーネント: Header.astro

    すべてのページの上部に表示されるヘッダーコンポーネント。デフォルトの実装では、<SiteTitle /><Search /><SocialIcons /><ThemeSelect /><LanguageSelect />を表示します。

    デフォルトコンポーネント: SiteTitle.astro

    サイトタイトルをレンダリングするためにサイトヘッダーの先頭にレンダリングされるコンポーネント。デフォルトの実装では、Starlightの設定で定義されたロゴをレンダリングするためのロジックが含まれています。

    デフォルトコンポーネント: Search.astro

    Starlightの検索UIをレンダリングするために使用されるコンポーネント。デフォルトの実装では、ヘッダー内のボタンと、クリックされたときに検索モーダルを表示し、PagefindのUIをロードするためのコードが含まれています。

    pagefindが無効になっている場合、デフォルトの検索コンポーネントはレンダリングされません。ただし、Searchをオーバーライドすると、pagefind設定オプションがfalseであっても常にカスタムコンポーネントがレンダリングされます。これにより、Pagefindを無効にしたときに、代替となる検索プロバイダーのUIを追加できます。

    デフォルトコンポーネント: SocialIcons.astro

    ソーシャルアイコンへのリンクを含む、サイトヘッダーにレンダリングされるコンポーネント。デフォルトの実装では、Starlightの設定のsocialオプションを使用して、アイコンとリンクをレンダリングします。

    デフォルトコンポーネント: ThemeSelect.astro

    ユーザーが好みのカラースキームを選択できるようにするための、サイトヘッダーにレンダリングされるコンポーネント。

    デフォルトコンポーネント: LanguageSelect.astro

    ユーザーが別の言語に切り替えられるようにするための、サイトヘッダーにレンダリングされるコンポーネント。


    Starlightのグローバルサイドバーには、メインのサイトナビゲーションが含まれます。小さなビューポートでは、これはドロップダウンメニューの背後に隠されます。

    デフォルトコンポーネント: Sidebar.astro

    グローバルナビゲーションを含んだ、ページコンテンツの前にレンダリングされるコンポーネント。デフォルトの実装では、十分に広いビューポートではサイドバーとして、小さな(モバイル)ビューポートではドロップダウンメニューの内側に表示されます。また、モバイルメニュー内に追加のアイテムを表示するために、<MobileMenuFooter />をレンダリングします。

    デフォルトコンポーネント: MobileMenuFooter.astro

    モバイルドロップダウンメニューの下部にレンダリングされるコンポーネント。デフォルトの実装では、<ThemeSelect /><LanguageSelect />をレンダリングします。


    Starlightのページサイドバーは、現在のページの見出しを列挙する目次の表示を担当しています。小さなビューポートでは、これは固定されたドロップダウンメニューへと折りたたまれます。

    デフォルトコンポーネント: PageSidebar.astro

    目次を表示するために、メインページのコンテンツの前にレンダリングされるコンポーネント。デフォルトの実装では、<TableOfContents /><MobileTableOfContents />をレンダリングします。

    デフォルトコンポーネント: TableOfContents.astro

    現在のページの目次を、大きめのビューポートにおいてレンダリングするコンポーネント。

    デフォルトコンポーネント: MobileTableOfContents.astro

    現在のページの目次を、小さな(モバイル)ビューポートにおいてレンダリングするコンポーネント。


    以下のコンポーネントは、ページコンテンツのメインカラムにレンダリングされます。

    デフォルトコンポーネント: Banner.astro

    各ページの上部にレンダリングされるバナーコンポーネント。デフォルトの実装では、ページのbannerフロントマターの値を使用して、レンダリングするかどうかを決定します。

    デフォルトコンポーネント: ContentPanel.astro

    メインコンテンツカラムのセクションをラップするために使用されるレイアウトコンポーネント。

    デフォルトコンポーネント: PageTitle.astro

    現在のページの<h1>要素を含むコンポーネント。

    デフォルトの実装と同様に、<h1>要素にid="_top"を設定する必要があります。

    デフォルトコンポーネント: DraftContentNotice.astro

    現在のページがドラフトとしてマークされている場合、開発中にユーザーに表示される通知。

    デフォルトコンポーネント: FallbackContentNotice.astro

    現在の言語の翻訳が利用できないページにおいて、ユーザーに表示される通知。多言語サイトでのみ使用されます。

    デフォルトコンポーネント: Hero.astro

    フロントマターでheroが設定されている場合に、ページの上部にレンダリングされるコンポーネント。デフォルトの実装では、大きなタイトル、タグライン、コールトゥアクション(call-to-action)リンク、オプションの画像を表示します。

    デフォルトコンポーネント: MarkdownContent.astro

    各ページのメインコンテンツの周囲にレンダリングされるコンポーネント。デフォルトの実装では、Markdownコンテンツに適用する基本的なスタイルをセットします。

    Markdownコンテンツのスタイルは@astrojs/starlight/style/markdown.cssにも公開されており、.sl-markdown-contentCSSクラスにスコープされています。


    以下のコンポーネントは、ページコンテンツのメインカラムの下部にレンダリングされます。

    デフォルトコンポーネント: Footer.astro

    各ページの下部に表示されるフッターコンポーネント。デフォルトの実装では、<LastUpdated /><Pagination /><EditLink />を表示します。

    デフォルトコンポーネント: LastUpdated.astro

    最終更新日を表示するために、ページフッターにレンダリングされるコンポーネント。

    デフォルトコンポーネント: EditLink.astro

    ページを編集できる場所へのリンクを表示するために、ページフッターにレンダリングされるコンポーネント。

    デフォルトコンポーネント: Pagination.astro

    前のページと次のページとの間にナビゲーション用矢印を表示するために、ページフッターにレンダリングされるコンポーネント。