Modal

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

使い方

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

propsを使う

サイズを変更する

位置を変更する

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

アニメーションを変更する

表示または非表示のアニメーションを変更する場合は、animation"block-start""inline-end"などを設定します。デフォルトでは、"scale"が設定されています。

所要時間を変更する

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

オーバーフローの動作を変更する

デフォルトでは、"inside"が設定されており、スクロールはModal.Body内でのみ発生します。"outside"を設定すると、Modal.Content内でスクロールが発生します。

モーダルを開いたときにスクロールをブロックしない

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

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

オーバーレイをカスタマイズする場合は、Modal.Overlayを使用します。

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

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

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

閉じるボタンをカスタマイズする場合は、Modal.CloseButtonを使用します。

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

モーダルの閉じるボタンを無効(非表示)にする場合は、withCloseButtonfalseにします。

ネストしたモーダル

Props

アクセシビリティ

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

キーボード操作

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

ARIAロールと属性

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

類似のコンポーネント

Drawer

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

Tooltip

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

Popover

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

SlideFade

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

Slide

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

Fade

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

Collapse

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

FadeScale

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

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

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