Wing

中央の作業面の左右に、開閉できる補助パネルを置きます。

開閉を保存する

秋の読書会

最近読んだ本を持ち寄る会の準備です。

3人 · 9月25日更新

仕事場の案内

利用時間とキャンセル条件を見直します。

2人 · 9月24日更新
はじめる
最近の動き
  1. 田中さんが資料を移動

  2. 佐藤さんが予定を追加

英語の見出し

秋の読書会

最近読んだ本を持ち寄る会の準備です。

3人 · 9月25日更新

仕事場の案内

利用時間とキャンセル条件を見直します。

2人 · 9月24日更新
Get started

Create a project.

Recent activity

Nothing new today.

長い見出しとアイコンなし

秋の読書会

最近読んだ本を持ち寄る会の準備です。

3人 · 9月25日更新

仕事場の案内

利用時間とキャンセル条件を見直します。

2人 · 9月24日更新
プロジェクトとメンバーの管理
Notifications and recent activity
  1. 田中さんが資料を移動

  2. 佐藤さんが予定を追加

片側だけ

秋の読書会

最近読んだ本を持ち寄る会の準備です。

3人 · 9月25日更新

仕事場の案内

利用時間とキャンセル条件を見直します。

2人 · 9月24日更新
最近の動き
  1. 田中さんが資料を移動

  2. 佐藤さんが予定を追加

右から左へ書く言語

秋の読書会

最近読んだ本を持ち寄る会の準備です。

3人 · 9月25日更新

仕事場の案内

利用時間とキャンセル条件を見直します。

2人 · 9月24日更新
ابدأ

أنشئ مشروعًا.

النشاط الأخير

لا جديد اليوم.

狭い幅

秋の読書会

最近読んだ本を持ち寄る会の準備です。

3人 · 9月25日更新

仕事場の案内

利用時間とキャンセル条件を見直します。

2人 · 9月24日更新
はじめる
最近の動き
  1. 田中さんが資料を移動

  2. 佐藤さんが予定を追加

使いどころ

  • はじめの操作や最近の動きなど、中央の作業面に付属する補助の内容を、作業面の左右に開閉できる形で添える時に使います。
  • 画面の端に固定する常設のナビゲーションではありません。アプリ全体の移動はAppShellのヘッダーのnavigation、分類ごとの移動先はAppShellのasideの列、名前で探す移動はCommandMenuを使います。
  • 作業面の中で一覧と本文を並べる時はSplitViewを使います。
  • AppShellの作業面に付ける時は、Wingで包まずAppShellのwingsに同じstart・endを渡します。

使い方

childrenに作業面を、start・endに左右のパネルを渡します。作業面にはSurfaceなど背景を持つ面を置きます。各パネルはlabel・contentと、任意のicon・openを受け取ります。openの既定は展開です。

開閉はdetails/summaryで動くので、controllerを登録しなくても開閉できます。

パネルは作業面の後ろに重ねる物なので、AppShellのtrailの背後のシートと同じく、淡い灰色(#f9f9f9)の面に1px #e5e5e5 の枠を引いた、影の無い角丸3pxのパネルです。見出しは13pxの黒い太字です。ハンドルはアイコンだけのButtonと同じ形で、閉じている間は控えめな白いボタン、開いている間はチェックボックスの選んだ状態と同じ淡い青の縦の塗りに紺の縁と紺のアイコンにします。アイコンを渡さない時は開閉の向きを示す矢印を出します。

Wingの幅が56rem以上では、14remのパネルを作業面の後ろへ差し込みます。閉じると作業面の縁からパネルを少しだけのぞかせ、ハンドルをパネルの外側の縁にまたがせて置きます。名前はハンドルにホバーした時のツールチップで示します。開くとパネルが外側へ出て、上端にハンドルと名前の見出しが並びます。見出しの行は帯の塗りを持たず、下にパネルの枠と同じ1pxの罫線を引きます。開閉はその場で切り替え、動きは付けません。左右の列は開閉に関わらず幅を確保するので、作業面は動きません。パネルは作業面より上下24pxずつ短く、中身はパネルの中でスクロールします。

56rem未満では、パネルを作業面の下へstart、endの順に積み、見出しの行で開閉します。右から左へ書く言語では、左右の配置と開閉のアイコンの向きを反転します。

storageKeyを指定し、WingControllerをwingとして登録すると、左右の開閉状態をcookieへ保存します。cookieの名前はwingCookieName(storageKey)、有効期間は1年です。サーバーでこのcookieを読んでsavedStateへ渡すと、保存した状態のまま描画するので、読み込み時にちらつきません。savedStateを渡さない場合も、接続時にcookieから復元します。storageKeyはサイト内で一意にします。

アクセシビリティ

  • ハンドルはsummaryで、読み上げ名はパネルのlabelです。ハンドルのボタンの見た目とツールチップは読み上げません。
  • DOMの読み順は作業面、start、endです。補助のパネルは作業面の後に読まれます。

API

Wing

中央の作業面の後ろへ、左右から開閉できる補助パネルを差し込む。開閉はdetails/summaryだけで動く。 Wingは補足なので、DOMの読み順と狭い配置の表示順は作業面・start・endとする。

Wingのprops
名前型既定値説明
startWingPanel作業面の先頭側(左から右へ書く言語では左)のパネル。省略するとその側を出さない。
endWingPanel作業面の末尾側(左から右へ書く言語では右)のパネル。省略するとその側を出さない。
storageKeystring指定するとWingControllerが開閉状態をcookieへ保存する。サイト内で一意にする。
savedStatestringwingCookieName(storageKey)のcookieの値。渡すと保存した開閉状態でSSRする。
childrenChild中央の作業面。背景を持つSurfaceなどを渡します。

ほかに、<div>へ標準のHTML属性を渡せます。

登録するcontroller:wing(WingController)

読み込むCSS:layers.css、reset.css、tokens.css、base.css、layout.css、components/wing.css、components/button.css、components/overlay.css、components/icon.css

WingPanel

WingPanel
名前型既定値説明
label必須stringパネルの名前。ハンドルの読み上げ名になり、開くと上端の見出しに出す。広い配置で閉じている間は、ハンドルにホバーした時のツールチップで示す。
content必須Childパネルの中身。パネルの中でスクロールする。
iconIconNameハンドルのアイコン。省略すると開閉の向きを示すアイコンを出す。
openboolean初期状態。既定は展開。savedStateやcookieに保存した状態があれば、そちらを優先する。

IconName

値:Iconの見本

コード

HTML
Hono JSX