Skip to main content
Designkufu

smarthr-ui-modeless-dialog

ModelessDialogは、背面の画面操作を妨げないモードレスダイアログコンポーネントです。ダイアログと背面の画面を同時並行で閲覧・操作するときに使います。

Stars
30
Source
kufu/smarthr-design-system
Updated
2026-05-29
Slug
kufu--smarthr-design-system--smarthr-ui-modeless-dialog
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/kufu/smarthr-design-system/HEAD/plugins/smarthr-design-system/skills/smarthr-ui-modeless-dialog/SKILL.md -o .claude/skills/smarthr-ui-modeless-dialog.md

Drops the SKILL.md into .claude/skills/smarthr-ui-modeless-dialog.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

背面の画面操作を妨げないモードレスダイアログコンポーネントです。ダイアログと背面の画面を同時並行で閲覧・操作するときに使います。

import

import { ModelessDialog } from 'smarthr-ui'

Props

Props 名 デフォルト値 必須 説明
heading ReactNode - ダイアログのタイトルの内容
footer ReactNode - - ダイアログのフッタ部分の内容
isOpen boolean - ダイアログが開かれているかどうかの真偽値
onClickClose (e: MouseEvent<HTMLButtonElement, MouseEvent>) => void - - 閉じるボタンを押下したときのハンドラ
onPressEscape () => void - - ダイアログが開いている状態で Escape キーを押下したときのハンドラ
width string | number - - @deprecated ダイアログの幅を指定する場合は、width ではなく size を使用してください。 ダイアログの幅
size "XS" | "S" | "M" | "L" | "XL" | "XXL" | "FULL" - - ダイアログの大きさ
height string | number - - ダイアログの高さ
top string | number - - ダイアログを開いたときの初期 top 位置
left string | number - - ダイアログを開いたときの初期 left 位置
right string | number - - ダイアログを開いたときの初期 right 位置
bottom string | number - - ダイアログを開いたときの初期 bottom 位置
portalParent HTMLElement | RefObject - - ポータルの container となる DOM 要素を追加する親要素
className string - - -
contentBgColor "BACKGROUND" | "COLUMN" | "BASE_GREY" | "OVER_BACKGROUND" | "HEAD" | ... 他8個 - - -
contentPadding Gap | { block?: Gap; inline?: Gap; } - - -
resizable boolean false - -

実装ルール

ModelessDialog に直接関連する eslint-plugin-smarthr のルールは現時点ではありません。

使い方チェックリスト

使用上の注意 > ダイアログを乱用しない

  • [should] ダイアログとして表示する・操作させるべき内容なのか、慎重にユースケースを定義し使用を検討する

レイアウト > 表示位置

  • [must] ModelessDialog はダイアログを開く操作をした箇所の付近に表示する

構成 > 1. ヘッダーエリア

  • [must] ダイアログのタイトルは、表示する情報を簡潔に表現するものをつける

モバイル

  • [must] モバイルでは ModelessDialog の代わりに MessageDialog を利用する