Resizable

Resizableは、キーボードのサポートを備えたサイズ変更可能なレイアウトコンポーネントです。

One
Two

使い方

import { Resizable } from "@yamada-ui/react"
<Resizable.Root>
  <Resizable.Item />
  <Resizable.Trigger />
</Resizable.Root>

バリアントを変更する

Border
Two
Spacer
Two

カラースキームを変更する

One
Two
One
Two

方向を変更する

方向を変更する場合は、orientation"horizontal"または"vertical"を設定します。デフォルトでは、"horizontal"が設定されています。

One
Two
One
Two

デフォルトサイズを使う

デフォルトサイズを使う場合は、Resizable.ItemdefaultSizeに文字列または数値を設定します。

One
Two

最小・最大サイズを使う

最小・最大サイズを使う場合は、Resizable.ItemminSizemaxSizeに文字列または数値を設定します。

One
Two

折りたたみを可能にする

折りたたみを可能にする場合は、collapsibletrueに設定します。

minSizeは折りたたむ前の文字列または数値を設定し、collapsedSizeは折りたたんだ状態の文字列または数値を設定します。

One
Two
One
Two

アイコンを追加する

アイコンを追加する場合は、Resizable.TriggericonReactNodeを設定します。

One
Two
One
Two

ネストした構造

Left
Top
Bottom
Top
Left
Right

無効にする

無効にする場合は、disabledtrueに設定します。

One
Two
Three
One
Two
Three

リサイズイベントをハンドルする

One
Two

ローカルストレージまたはCookieに値を保存する場合は、Resizable.useLayoutを使用します。

One
Two

ローカルストレージを使用する場合は、storagelocalStorageを設定します。

const { defaultLayout, onLayoutChanged } = Resizable.useLayout({
  id: "persistence",
  storage: localStorage,
})

制御する

One
Two

Props

アクセシビリティ

Resizableは、アクセシビリティに関してWAI-ARIA - Window Splitter Patternに従います。

キーボード操作

キー説明状態
ArrowRight値を増加します。orientation="horizontal"
ArrowLeft値を減少します。orientation="horizontal"
ArrowUp値を増加します。orientation="vertical"
ArrowDown値を減少します。orientation="vertical"
Enter折りたたみ前なら折りたたみ、折りたたみ後ならminSizeまで戻します。collapsible="true"
HomeminSizeの値を設定します。-
EndmaxSizeの値を設定します。-
F6次のセパレーターにフォーカスを移動します。-
Shift + F6前のセパレーターにフォーカスを移動します。-

ARIAロールと属性

コンポーネントロールと属性使い方
Resizable.ItemidResizable.Triggerと関連付けるために使用するid
Resizable.Triggerrole="separator"セパレーターであることを示します。
aria-controls関連したResizable.Itemidを設定します。
aria-orientationセパレーターの方向を設定します。orientation"horizontal"の場合は"vertical""vertical"の場合は"horizontal"が設定されます。
aria-valueminminSizeの値に応じた0から100の値を設定します。デフォルトは0です。
aria-valuemaxmaxSizeの値を計算した0から100の値を設定します。デフォルトは100です。
aria-valuenow現在の値を設定します。
aria-disabled無効の場合は"true"を設定します。

類似のコンポーネント

Bleed

Bleedは、要素をコンテナの境界から外すために使用されるコンポーネントです。

Box

Boxは、他のすべてのコンポーネントがその上に構築される最も抽象的なコンポーネントです。デフォルトでは、div要素をレンダリングします。

Center

Centerは、コンポーネント内の子要素を中央に配置するコンポーネントです。

Container

Containerは、汎用的な区分要素として使用するコンポーネントです。デフォルトでは、section要素をレンダリングします。

Flex

Flexは、Boxflexを設定したコンポーネントです。また、便利なスタイルのショートハンドが用意されています。

Float

Floatは、要素をコンテナの端に固定するために使用されるコンポーネントです。

Grid

Gridは、グリッドレイアウトを管理するためのコンポーネントです。また、便利なスタイルのショートハンドが用意されています。

Group

Groupは、複数の要素をまとめて扱うためのコンポーネントです。

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