コンポーネント
このページでは、Slidev が提供する組み込みコンポーネントをすべて紹介します。これらのコンポーネントはスライド内で直接使用できます。
📖 テーマとアドオン は追加のコンポーネントを提供できます。独自のコンポーネントを追加するには、📖 コンポーネント を参照してください。Arrow
矢印を描画します。
使い方
<Arrow x1="10" y1="20" x2="100" y2="200" />もしくは:
<Arrow v-bind="{ x1:10, y1:10, x2:200, y2:200 }" />Props:
x1(string | number, 必須): 始点の x 座標y1(string | number, 必須): 始点の y 座標x2(string | number, 必須): 終点の x 座標y2(string | number, 必須): 終点の y 座標width(string | number, デフォルト:2): 線の幅color(string, デフォルト:'currentColor'): 線の色two-way(boolean, デフォルト:false): 双方向の矢印を描画
VDragArrow
ドラッグ可能な Arrow コンポーネントです。
使い方
位置を除いて、Props は Arrow コンポーネント の Props と同じです。
AutoFitText
試験的
コンテンツに合わせて自動的にフォントサイズが調整されるボックスです。PowerPoint や Keynote のテキストボックスに似ています。
使い方
<AutoFitText :max="200" :min="100" modelValue="Some text"/>Props:
max(string | number, デフォルト100): 最大フォントサイズmin(string | number, デフォルト30): 最小フォントサイズmodelValue(string, デフォルト''): テキストコンテンツ
LightOrDark
現在のテーマの色 (Light または Dark) に基づいて異なるコンテンツを表示します。
使い方
#dark と #light の 2 つのスロットを使用します:
<LightOrDark>
<template #dark>Dark mode is on</template>
<template #light>Light mode is on</template>
</LightOrDark>LightOrDark コンポーネントに提供された Props は、スコープ付きスロット Props を使用して利用可能になります:
<LightOrDark width="100" alt="some image">
<template #dark="props">
<img src="/dark.png" v-bind="props"/>
</template>
<template #light="props">
<img src="/light.png" v-bind="props"/>
</template>
</LightOrDark>マークダウンをスロット内に提供することもできますが、コンテンツの前後に空行を入れる必要があります:
<LightOrDark>
<template #dark>

</template>
<template #light>

</template>
</LightOrDark>Link
指定されたスライドに移動するためのリンクを挿入します。
使い方
<Link to="42">42 枚目のスライドへ</Link>
<Link to="42" title="42 枚目のスライドへ"/>
<Link to="solutions" title="ソリューションへ"/>Props:
to(string | number): 移動先のスライドへのパス (スライドのパスは1から始まります)title(string): 表示するタイトル
対応するルートが存在する場合、to に文字列を使用できます。例えば:
---
routeAlias: solutions
---
# Now some solutions!PoweredBySlidev
Slidev の Web サイトにリンクしている「Powered by Slidev」というテキストとロゴを表示します。
RenderWhen
コンテキストに応じてスロットをレンダリングします(例えば、プレゼンタービューにいるかどうかなど)。
使用例
<RenderWhen context="presenter">これはプレゼンタービューでのみ表示されます</RenderWhen>コンテキスト: 'main' | 'visible' | 'print' | 'slide' | 'overview' | 'presenter' | 'previewNext'
Props:
context(Context | Context[]): コンテキストまたは確認したいコンテキストの配列'main': スライドとプレゼンタービューでレンダリングされます(['slide', 'presenter']と同等)'visible': ビューポートに入っている場合にレンダリングされます'print': 印刷モードでレンダリングされます'slide': スライドでレンダリングされます'overview': オーバービューでレンダリングされます'presenter': プレゼンタービューでレンダリングされます'previewNext': プレゼンターの次のスライドビューでレンダリングされます
スロット:
#default: コンテキストが一致する場合にレンダリングされます#fallback: コンテキストが一致しない場合にレンダリングされます
SlideCurrentNo
今のスライド番号を表示します。
使用例
<SlideCurrentNo />SlidesTotal
スライドの総数を表示します。
使用例
<SlidesTotal />TitleRenderer
スライドから解析された HTML のメインタイトルを挿入します。
タイトルおよびタイトルレベルは、各スライドの最初のタイトル要素から自動的に取得します。
取得する要素は、スライドのフロントマターを使用して上書きできます:
---
title: Amazing slide title
level: 2
---使用例
<TitleRenderer> コンポーネントは仮想コンポーネントで、以下のようにインポートできます:
import TitleRenderer from '#slidev/title-renderer'そして、スライド内で次のように使用します:
<TitleRenderer no="42" />Props:
no(string | number): 表示するタイトルのスライド番号 (スライドは1から始まります)
Toc
目次を挿入します。
目次の中に表示したくないスライドがある場合、そのスライドのフロントマターで hideInToc オプションを使用できます:
---
hideInToc: true
---タイトルは <Titles> コンポーネント で表示されます。
使用例
<Toc />Props:
columns(string | number, デフォルト:1): 表示する列数listClass(string | string[], デフォルト:''): 目次リストに適用するクラスmaxDepth(string | number, デフォルト:Infinity): 表示するタイトルの最大深さレベルminDepth(string | number, デフォルト:1): 表示するタイトルの最小深さレベルmode('all' | 'onlyCurrentTree'| 'onlySiblings', デフォルト:'all'):'all': すべての項目を表示'onlyCurrentTree': 現在のツリー内の項目のみ表示(アクティブな項目、その親、および子)'onlySiblings': 現在のツリー内の項目とその兄弟のみ表示
Transform
要素にスケーリングや変形を適用します。
使用例
<Transform :scale="0.5" origin="top center">
<YourElements />
</Transform>Props:
scale(number | string, デフォルト1): 変形の倍率origin(string, デフォルト'top left'): 変形の基準点
Tweet
Tweet を埋め込みます。
使用例
<Tweet id="20" />Props:
id(number | string, 必須): Tweet の idscale(number | string, デフォルト1): 表示サイズの倍率conversation(string, デフォルト'none'): Embedded Tweet parametercards('hidden' | 'visible', デフォルト'visible'): Embedded Tweet parameter
VAfter, VClick と VClicks
VSwitch
クリックに基づいて複数のスロットを切り替えます。
unmountプロパティがtrueに設定されている場合、次のスロットに切り替えるときに前のスロットがアンマウントされます。デフォルトはfalseです。tagおよびchildTagプロパティを使用して、コンポーネントとその子のデフォルトのタグを変更できます。デフォルトはdivです。transitionプロパティを使用して、トランジション効果を変更できます。デフォルトはfalse(無効)です。
VDrag
SlidevVideo
動画を埋め込みます。
使用例
<SlidevVideo v-click autoplay controls>
<!-- Anything that can go in an HTML video element. -->
<source src="/myMovie.mp4" type="video/mp4" />
<source src="/myMovie.webm" type="video/webm" />
<p>
あなたのブラウザでは動画がサポートされていません。
<a href="/myMovie.mp4">こちら</a>からダウンロードできます。
</p>
</SlidevVideo>HTML video element のドキュメント を参照して、このコンポーネントのスロットに何が含まれているか確認できます。
Props:
controls(boolean, デフォルト:false): 動画コントロールを表示するかどうかautoplay(boolean | 'once', デフォルト:false):trueもしくは'once': 動画を一度だけ再生し、終了または一時停止後に再開しないfalse: 動画を自動的に再生しない(代わりにcontrolsに依存)
autoreset('slide' | 'click', デフォルト:undefined):'slide': スライドに戻るときに動画の再生位置を先頭に戻す'click': コンポーネントのクリックターンに戻るときに動画の再生位置を先頭に戻す
poster(string | undefined, デフォルト:undefined):- 動画が再生されていないときに表示する画像のソース
printPoster(string | undefined, デフォルト:undefined):- 印刷時に
posterを上書きするもの
- 印刷時に
timestamp(string | number, デフォルト:0):- 動画の開始時間(秒単位)
printTimestamp(string | number | 'last' | undefined, デフォルト:undefined):- 印刷時に
timestampを上書きするもの
- 印刷時に
WARNING
エクスポート時に、Chromium は一部の動画形式をサポートしていないため、動画の読み込みに失敗する場合があります。この場合、ブラウザの実行可能パスを指定できます。詳細は Chromium executable path を参照してください。
Youtube
YouTube の動画を埋め込みます。
使用例
<Youtube id="luoMHjh-XcQ" />Props:
id(string, required): YouTube 動画の IDwidth(number): 動画の幅height(number): 動画の高さ
動画を特定の時間から開始させることもできます。id の値に ?start=1234 を追加してください(1234 は秒単位の時間です)。