Drawer

Drawerは、画面の端から表示されるパネルのコンポーネントです。

使い方

import { Drawer } from "@yamada-ui/react"
<Drawer.Root>
  <Drawer.OpenTrigger />
  <Drawer.Content>
    <Drawer.Overlay />
    <Drawer.CloseButton />
    <Drawer.Header />
    <Drawer.Body />
    <Drawer.Footer />
    <Drawer.CloseTrigger />
  </Drawer.Content>
</Drawer.Root>

サイズを変更する

位置を変更する

配置を変更する場合は、placement"block-start""inline-start"などを設定します。デフォルトでは、"inline-end"が設定されています。

所要時間を変更する

所要時間を変更する場合は、durationに数値(秒)を設定します。

マウント時にスクロールをブロックしない

デフォルトでは、パネルを開いた際に主要なコンテンツのスクロールをブロックしています。これは、アクセシビリティを確保するためです。もし、主要なコンテンツのスクロールをブロックしたくない場合は、blockScrollOnMountfalseに設定します。

閉じるボタンを無効にする

閉じるボタンを無効にする場合は、withCloseButtonfalseに設定します。

オーバーレイを無効にする

パネルのオーバーレイを無効(非表示)にする場合は、withOverlayfalseにします。

ドラッグして閉じる

Drawerをドラッグで閉じたい場合は、closeOnDragtrueに設定します。

ドラッグバーを非表示にする

ドラッグバーを非表示にする場合は、withDragBarfalseに設定します。

閉じるボタンをカスタマイズする

オーバーレイをカスタマイズする

制御する

表示・非表示を制御する場合は、openonCloseを設定します。

Props

アクセシビリティ

Drawerは、アクセシビリティに関してWAI-ARIA - Dialog (Modal) Patternに従います。

キーボード操作

モーダルが開くと、フォーカスはモーダル内にロックされます。つまり、モーダルを閉じない限り、モーダル外の要素をフォーカスすることはできません。

キー説明状態
Tabモーダル内の無効ではない次の要素にフォーカスします。最後の要素の場合は最初の無効ではない要素をフォーカスします。open={true}
Shift + Tabモーダル内の無効ではない前の要素をフォーカスします。最初の要素の場合は最後の無効ではない要素をフォーカスします。open={true}
Escapeモーダルを閉じます。open={true} + closeOnEsc={true}

ARIAロールと属性

コンポーネントロールと属性使い方
Drawer.Contentrole="dialog"ダイアログであることを示します。
aria-modal="true"表示されているウィジェットがモーダルであることを示します。
aria-labelledby関連したDrawer.Titleidを設定します。
aria-describedby関連したDrawer.Bodyidを設定します。
Drawer.OpenTriggeraria-expandedモーダルが開いている場合は"true"を設定し、閉じている場合は"false"を設定します。
aria-controlsモーダルが開いている場合はDrawer.Contentidを設定し、閉じている場合は設定しません。
aria-haspopup="dialog"ダイアログが存在することを示します。
aria-label"モーダルを開く"を設定します。
Drawer.CloseButtonaria-label"モーダルを閉じる"を設定します。
Drawer.CloseTriggeraria-label"モーダルを閉じる"を設定します。
Drawer.Overlayaria-hidden="true"要素をアクセシビリティツリーから除外します。

類似のコンポーネント

Modal

Modalは、主要なコンテンツに重ねて表示され、ユーザーの注意を情報のみに集中させるコンポーネントです。

Tooltip

Tooltipは、要素の補足など短い情報を表示するコンポーネントです。

Popover

Popoverは、要素の周りにフローティングして情報を表示するコンポーネントです。

SlideFade

SlideFadeは、要素を指定位置から移動しながら次第に表示または非表示にするコンポーネントです。

Slide

Slideは、要素をページの隅から表示または非表示にするコンポーネントです。

Fade

Fadeは、要素を次第に表示または非表示にするコンポーネントです。

Collapse

Collapseは、要素を展開または折りたたんで表示するコンポーネントです。

FadeScale

FadeScaleは、要素を次第に拡大して表示または縮小して非表示にするコンポーネントです。

使用しているコンポーネント・フック