デザインガイドライン
解剖学
パネルは、必要に応じて展開または折りたたむことができるコンテンツの単一セクションです。
使用法
パネルは、リストアイテムの詳細を垂直に展開および折りたたむことによって表示および非表示にします。パネルは、ユーザーが必要なコンテンツのみを表示できるようにします。
パネルを使用するタイミング
パネルを使用するのは、次のような場合に役立ちます:
- 複数の関連するコンテンツセクションの概要を確認する。
- 必要に応じてそれらのセクションを表示および非表示にする。
- ユーザーが常に見る必要のない優先度の低い情報を隠す。
- 一度に複数のセクションを表示する。
次のような場合は、代替コンポーネントを検討してください:
動作
展開と折りたたみ
既存のパネルアイテムの詳細を垂直に展開および折りたたむことによって表示および非表示にします。
折りたたみ可能なパネルは、展開時に反転するキャレットアイコンで示されます。キャレットは、追加を示すプラスやナビゲーションに密接に関連する矢印よりも好まれます。
コンテンツが重要または必須である場合、パネルはデフォルトで展開されるべきです。デフォルトで開いているパネルは、上部に表示されるべきです。
開発ガイドライン
<a name="usage-2"></a>
### 使用法
``````bash
import { Panel, PanelBody, PanelRow } from '@wordpress/components';
import { more } from '@wordpress/icons';
const MyPanel = () => (
<Panel header="My Panel">
<PanelBody title="My Block Settings" icon={ more } initialOpen={ true }>
<PanelRow>My Panel Inputs and Labels</PanelRow>
</PanelBody>
</Panel>
);
`
サブコンポーネント
パネル
プロップ
header: string
パネルのタイトルとしてレンダリングされるテキスト。テキストは、
<h2>
タグ内にレンダリングされます。
- 必須: いいえ
className: string
ラッパー要素に適用するCSSクラス。
- 必須: いいえ
children: React.ReactNode
パネル行内に表示するコンテンツ。
##### プロップ
###### title: string
タイトルテキスト。コンポーネントが閉じているときでも表示されます。
- 必須: いいえ
###### opened: boolean
`````true`````に設定されている場合、コンポーネントは`````initialOpen`````プロップに関係なく開いたままとなり、
パネルは閉じることができなくなります。
- 必須: いいえ
###### className: string
ラッパー要素に適用するCSSクラス。
- 必須: いいえ
###### icon: JSX.Element
タイトルの横に表示されるアイコン。
- 必須: いいえ
###### onToggle: ( next: boolean ) => void;
コンポーネントが閉じた状態から開いた状態に切り替えられるたびに呼び出される関数、またはその逆。
- 必須: いいえ
- デフォルト: `````noop
initialOpen: boolean
パネルが開いた状態で開始するかどうか。
- 必須: いいえ
- デフォルト:
true
children: | React.ReactNode | ( ( props: { opened: boolean } ) => React.ReactNode )
PanelBody
に表示するコンテンツ。 このプロップに関数が提供されると、opened
プロップを引数として持つオブジェクトが渡されます。
- 必須: いいえ
buttonProps: WordPressComponentProps<Omit< ButtonAsButtonProps, ‘icon’ >, ‘button’, false>
タイトル内のButton
コンポーネントに渡されるプロップ。
- 必須: いいえ
- デフォルト:
{}
scrollAfterOpen: boolean
表示されるときにコンテンツをビューにスクロールします。 これは、複数のPanelBody
コンポーネントがスクロール可能なコンテナにスタックされているときにUXを改善します。
##### プロップ
###### className: string
ラッパー要素に適用するCSSクラス。
- 必須: いいえ
###### children: React.ReactNode
パネル行内に表示するコンテンツ。
- 必須: いいえ
##### Ref
PanelRowは、ラッパーdivに追加されるフォワードrefを受け入れます。使用法:
`````<PanelRow className="edit-post-post-schedule" ref={ panelRowRef }>
PanelHeader
は、Panel
のヘッダーをレンダリングします。これは、通常使用する必要がないPanel
コンポーネントによって内部で使用されます。
プロップ
label: string
Panel
のタイトルとしてレンダリングされるテキスト。<h2>
タグ内にレンダリングされます。
- 必須: いいえ
children: React.ReactNode
パネル行内に表示するコンテンツ。
関連コンポーネント
- 水平メニューでアクセスされる関連セクションを分割するには、
TabPanel
を使用します。