ModelessDialog
背面の画面操作を妨げないモードレスダイアログコンポーネントです。ダイアログと背面の画面を同時並行で閲覧・操作するときに使います。
使用上の注意
ダイアログを乱用しない
ModelessDialogは、ユーザーが直前まで見ていた画面の一部を覆い隠します。
ダイアログが表示されることによってユーザーの操作を妨げてしまわないか、ダイアログとして表示する・操作させるべき内容なのか、慎重にユースケースを定義し、使用を検討してください。
レイアウト
基準サイズ
SmartHR UIでは、ダイアログの横幅をサイズ(sizeprops)で指定できます。各サイズの基準値は幅のセマンティックトークンを参照しています。
| 大きさ | 幅トークン | 値(px) |
|---|---|---|
XS | col3 | 424px |
S | col4 | 576px |
M | col5 | 728px |
L | col6 | 880px |
XL | col7 | 1032px |
XXL | col8 | 1184px |
FULL | - | width: 100% |
XS
入力要素を1つだけ持つダイアログなど、内容が極めて少ないダイアログに使います。
S
要素が少なく、要素が垂直方向に並ぶ、広い横幅を必要としないダイアログに使います。
M
数行に渡るテキストを表示したり、水平方向に要素を並べて表示したりする標準的なダイアログに使います。
L
テーブルを表示したり、ダイアログを複数カラムに分割するなど、広い横幅が必要なダイアログに使います。
XL
テーブルを表示したり、ダイアログを複数カラムに分割するなど、広い横幅が必要なダイアログに使います。Lではどうしてもコンテンツが収まりきらない場合に使います。
XXL
テーブルを表示したり、ダイアログを複数カラムに分割するなど、広い横幅が必要なダイアログに使います。XLではどうしてもコンテンツが収まりきらない場合に使います。
FULL
テーブルを表示したり、ダイアログを複数カラムに分割するなど、広い横幅が必要なダイアログに使います。XXLではどうしてもコンテンツが収まりきらない場合に使います。
表示位置
top bottom left right propsで表示位置を指定できます。指定しない場合、画面の上下左右中央に表示されます。
ModelessDialogの場合は、ダイアログを開く操作をした箇所の付近に表示します。- モーダルなダイアログと違って、ダイアログの裏側の画面がスクリム(幕)で隠されないため、開く操作をした箇所から遠い位置に表示すると、ユーザーがダイアログを見つけにくいためです。
アクセシビリティ
基本的なアクセシビリティ機能
キーボード操作
ESCキーを押すことでダイアログを閉じることができます。
構成
ModelessDialogは以下の要素で構成されます。
- ヘッダーエリア
- 本文
- フッターエリア(任意)
1. ヘッダーエリア
ヘッダーエリアの左端にはダイアログのタイトルが、右側にはダイアログを閉じるボタンが配置されます。
- ダイアログのタイトルは、表示する情報を簡潔に表現するものをつけます。
- ヘッダーエリアをドラッグしてダイアログの位置を移動できます。
2. 本文
ユーザーに提示したい情報を表示します。
3. フッターエリア(任意)
必要に応じてアクションボタンやリンクなどを配置します。
モバイル
モバイルでは画面の表示領域が狭いため、ダイアログを表示しながら背景の画面を操作することが困難です。 そのため、モバイルではModelessDialogの代わりにMessageDialogを利用してください。
使い方チェックリスト
ModelessDialog
- Shouldダイアログとして表示する・操作させるべき内容なのか、慎重にユースケースを定義し使用を検討する
- Should入力要素を 1 つだけ持つなど、内容が極めて少ないダイアログには `XS` を使う
- Should要素が少なく、要素が垂直方向に並ぶ、広い横幅を必要としないダイアログには `S` を使う
- Should数行に渡るテキストの表示や、水平方向に要素を並べて表示する標準的なダイアログには `M` を使う
- Shouldテーブルの表示やダイアログを複数カラムに分割するなど、広い横幅が必要なダイアログには `L` を使う
- Should広い横幅が必要で、`L` ではコンテンツが収まりきらないダイアログには `XL` を使う
- Should広い横幅が必要で、`XL` ではコンテンツが収まりきらないダイアログには `XXL` を使う
- Should広い横幅が必要で、`XXL` ではコンテンツが収まりきらないダイアログには `FULL` を使う
- MustModelessDialog はダイアログを開く操作をした箇所の付近に表示する
- Mustダイアログのタイトルは、表示する情報を簡潔に表現するものをつける
- Mustモバイルでは ModelessDialog の代わりに MessageDialog を利用する
Props
ダイアログのタイトルの内容
ダイアログのフッタ部分の内容
ダイアログが開かれているかどうかの真偽値
閉じるボタンを押下したときのハンドラ
ダイアログが開いている状態で Escape キーを押下したときのハンドラ
@deprecated ダイアログの幅を指定する場合は、width ではなく size を使用してください。
ダイアログの幅
ダイアログの大きさ
ダイアログの高さ
ダイアログを開いたときの初期 top 位置
ダイアログを開いたときの初期 left 位置
ダイアログを開いたときの初期 right 位置
ダイアログを開いたときの初期 bottom 位置
ポータルの container となる DOM 要素を追加する親要素
リサイズ可能かどうか
コンテンツ部分の背景色

