Board

タスクを状態ごとの列に分けて表示します。

これから2

No. 12

仕事場の案内を更新する

料金とキャンセル条件を確認します。

案内Web
No. 15

見積内容の確認

金額
128,000円
回答期限
9月22日
ここへ移動できます

作業中2

No. 9

秋の読書会のお知らせ

遥田中 遥 · 9月20日

No. 10

仕事場の案内.pdf

PDF · 2.4 MB

ここへ移動できます

完了0

終わった項目をここへ

移動ボタンをドラッグします。キーボードではSpaceで持ち上げ、左右矢印で列、上下矢印で位置を選び、Enterで確定、Escapeで取り消します。

右上のハンドルで移動します。Space → 矢印キー → Enterでも操作できます。Escapeで元へ戻します。移動した項目は、置いた列の色に変わります。

列の色:状態ごとの見出しと項目の色、今の列

受付1

予約の変更について

項目はありません

対応中1

領収書の再発行

今日の担当の列です。

項目はありません

保留1

駐車場の利用

管理会社の回答待ち。

項目はありません

差し戻し1

請求先の住所

番地が抜けています。

項目はありません
完了の列:移動すると番号が置いた列の色に変わる

下書き2

No. 31

10月の利用案内

No. 32

年末年始の営業

ここへ移動できます

承認済み1

No. 28

9月の利用案内

森 美咲が承認しました。

ここへ移動できます

見送り1

No. 24

夏の特別料金

ここへ移動できます

移動ボタンをドラッグします。キーボードではSpaceで持ち上げ、左右矢印で列、上下矢印で位置を選び、Enterで確定、Escapeで取り消します。

たたんだ列:件数と縦書きの名前のピル、押すと開いてたためる

応募1

応募1

項目はありません

面接2

山本 さくら

10月2日 14時

高橋 大輔

項目はありません

内定1

伊藤 蓮

項目はありません

見送り3

応募5

応募6

応募7

項目はありません
項目の中身:担当者・分類・期限・チェック・進捗・ファイル

準備3

会場の手配

健佐藤 健 · 期限 10月1日

会場急ぎ

当日の持ち物

会場の見取り図.png

PNG · 820 KB

項目はありません

告知1

案内メールの文面

参加者への案内を書きます。

項目はありません
たくさんの項目と長い文

受付6

見出しの誤字

リンク切れ

画像の代替文

表の列幅

日付の表記

フッターの住所

項目はありません

海外拠点から届いた、とても長い名前の列の見出し1

海外拠点から届いた、2026年度秋の利用方法と受付変更に関する詳しい資料

review-abcdefghijklmnopqrstuvwxyz0123456789

項目はありません
移動不可の項目・空の列・受付終了の列

確認待ち2

確認が完了した資料

この項目は移動できません。

動かせる資料

ここへ移動できます

レビュー0

ここへ移動できます

受付終了0

この列へは移動できません

移動ボタンをドラッグします。キーボードではSpaceで持ち上げ、左右矢印で列、上下矢印で位置を選び、Enterで確定、Escapeで取り消します。

狭い場所:列が縦に積まれる

これから1

原稿を書く

項目はありません

作業中1

写真を選ぶ

項目はありません

完了1

取材

項目はありません
右から左へ書く言語

للقيام1

تحديث دليل المكان

مراجعة الأسعار وشروط الإلغاء.

ここへ移動できます

قيد التنفيذ1

اختيار الصور

ここへ移動できます

مكتمل1

المقابلة

ここへ移動できます

移動ボタンをドラッグします。キーボードではSpaceで持ち上げ、左右矢印で列、上下矢印で位置を選び、Enterで確定、Escapeで取り消します。

使いどころ

  • 仕事や問い合わせを「これから」「作業中」「完了」のような状態の列に分けて見渡し、列の間で移動する時に使います。
  • 項目の属性を列ごとに比べたり並べ替えたりする時は Table や DataList を使います。
  • 一つの一覧の中の完了だけを付ける時は TaskList を使います。
  • 日付に沿って並べる時は Calendar や Timeline を使います。

使い方

columns に列を渡し、各列の items へ項目の id・label・content を渡します。content には見出し・本文・TagGroup・Progress など任意の要素を置けます。列の見出しには件数を添えます。

項目の代わりに任意の中身を置く列は、items の代わりに content と見出しに出す count を渡します。この列は移動先になりません。

列は背後のシートと同じ淡い灰色の面(#f9f9f9、1px #e5e5e5 の枠、影なし、角は丸めない)で、項目はその中に白いカード(枠なし、四方への短いぼかしの影、角丸3px)として重ねます。項目の題名は13pxの太字、補足は11pxの灰色の文字です。列の名前は Section の見出しと同じ15pxの赤の通常の太さの文字で、件数は名前の隣の件数のピル(高さ18px、淡い青に青緑の数字)に書きます。

tone(info・warning・success・danger)で列の色を選びます。色は列の上端の2pxの線と、項目の code の文字にだけ出し、カードは染めません。既定の neutral は上端の線を引かず、current の列は tone に関わらず青緑の線にします。disabled の列は面をそのままにして列の名前の文字だけを灰色にし、移動先から外します。項目に code を渡すと、番号などの文字をカードの上の先頭側に列の色の11pxの太字で置きます(中立の列では灰色)。面は塗りません。

項目の無い列には、empty の文を破線の枠で囲んで置きます。

movable を渡すと各項目の上の末尾側の角にハンドルを置き、BoardController を board として登録すると、列の間の移動と並べ替えができます。動かせる項目にホバーすると、影を少し広げて持ち上げます。ハンドルをドラッグすると、項目のコピーを持ち上げた影で半透明にしてポインターに付け、元の項目を灰色に薄めて跡として残し、移動先の列を淡い青緑の面と青緑の2pxの破線で縁取って、挿入位置に青緑の3pxの線を出します。離した所へ項目を移します。キーボードで移動している項目は、青緑の破線で縁取って持ち上げた影を付けます。Boardの外や受け付けない列で離すと取り消します。ドラッグしている間は、Boardの左右の端でBoardを、画面の上下の端で画面をスクロールします。

ドラッグを離して移動を確定すると、取り消し可能な board:beforemove イベントを発火します。取り消すと項目を元の位置へ戻し、取り消さなければ board:move イベントを発火します。どちらも項目を新しい位置へ移した後に発火し、位置が変わらなかった時は発火しません。移動の保存と、保存できなかった時の表示の戻しは利用側で行います。

collapsed の列は、件数のピルと縦書きの名前を載せた列と同じ淡い灰色の細い縦長の枠になり、中の項目を隠して移動先から外します。狭い幅(36rem未満)では横長の枠にして一行に並べます。collapsible を渡すと、枠のどこを押しても開き、開いた列の見出しの末尾のボタンでたたみます。開閉には BoardController が要ります(movable でなくても登録します)。

開閉の時、BoardController は表示だけを切り替え、取り消し可能な board:toggle イベントを発火します。開閉の状態は保存しないので、残す時は利用側で保存し、次に描画する時の collapsed に反映します。

JavaScriptが無い時は、ハンドルは無効のまま置かれ、項目は動かせません。開閉のボタンは BoardController が接続するまで出さないので、列は描画した時の開閉のままです。件数は描画した時の数のままです。

キーボード

Boardのキーボード操作
キー動作
Space / Enterハンドルにフォーカスがある時、項目を持ち上げます。移動している間にもう一度押すと、今の位置で確定します。
↑ / ↓移動中の項目を、同じ列の中で一つ前・一つ後ろへ動かします。
← / →移動中の項目を、押した矢印の向きの隣の列の同じ順番の位置へ動かします。受け付けない列とたたんだ列は飛ばします。右から左に読む画面でも、画面上の向きに動きます。
Escape移動を取り消し、項目を元の位置へ戻します。
Tab移動している間に押すと、移動を取り消してからフォーカスを移します。

アクセシビリティ

  • Board全体は role="region" で label を名前にし、横にスクロールできるよう tabindex="0" を持ちます。
  • 列の見出しは h3 です。各列の項目は role="list" の一覧で、列の名前を読み上げ名にします。項目の中身に見出しを置く時は h4 にします。
  • ハンドルは「(label)を移動」を読み上げ名にし、キー操作の説明を aria-describedby で結びます。
  • 持ち上げた・動かした先(列の名前と何番目か)・確定した・取り消したことを、aria-live="polite" の領域で読み上げます。
  • 移動している間はハンドルにフォーカスを保ち、確定や取り消しの後も移動した項目のハンドルに戻します。
  • 開閉のボタンは「(title)の列を開閉」を読み上げ名にし、aria-expanded で開閉の状態を伝えます。たたんだ列は、枠を押すほかに、このボタンでも開けます。
  • 列の色は見分けの補助です。状態の意味は列の名前で伝えます。

イベント

Boardが発火するイベント
イベント内容
board:beforemove取り消せます。移動を確定する時に発火します。detail は { id, fromColumn, toColumn, fromIndex, toIndex } で、id は項目の id、列は列の id(省略時は並び順の番号)、順番は0から数えます。preventDefault() で項目を元の位置へ戻します。
board:move移動が確定した時に発火します。detail は board:beforemove と同じです。
board:toggle取り消せます。列を開閉する時に発火します。detail は { column, collapsed } で、column は列の id、collapsed はたたむ時に true です。preventDefault() で開閉しません。

API

Board

Boardのprops
名前型既定値説明
idstringBoardのid。ハンドルの説明文のid(<id>-help)にも使います。省略すると自動で付けます。
styleCSSProperties | string文字列でもオブジェクトでも渡せます。列の幅を決める --rx-board-tracks と合わせて出力します。
label必須stringBoard全体(role="region")の読み上げ名。
columns必須readonly Column[]列。渡した順に先頭側から並べる。
movablebooleanfalse項目にハンドルを置き、列の間の移動と並べ替えを有効にする。BoardControllerをboardとして登録する。ハンドルはcontrollerが接続するまで無効のまま。

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

登録するcontroller:board(BoardController)

読み込むCSS:layers.css、reset.css、tokens.css、base.css、layout.css、components/button.css、components/icon.css、components/board.css、components/board-item.css

Column

Column(itemsを持つ形)
名前型既定値説明
idstring列のid。移動と開閉のイベントで列を指す値になる。省略すると並び順の番号("0"から)。
title必須string列の名前。見出しに書き、項目の一覧の読み上げ名にもする。
toneTone列の役割の色。列の上端の線と、項目のcodeの文字に出す。カードは染めない。neutralは上端の線を引かない。
currentboolean今の列(今日の担当など)。toneに関わらず上端の線を青緑にする。
emptyChild項目が無い時に置く文。省略すると、movableなら「ここへ移動できます」(受け付けない列は「この列には移動できません」)、 movableでなければ「項目はありません」を置く。
disabledboolean項目を受け付けない列。列の名前を灰色にし、移動先にしない。
collapsedbooleanたたんだ列。件数と縦書きの名前を載せた細い縦長の帯になり、中の項目は隠す。移動先にはならない。
collapsibleboolean列を押して開閉できるようにする。たたんだ帯に「開く」、開いた列の見出しに「たたむ」を置き、押すとBoardControllerが表示を切り替えて、取り消せるboard:toggleイベントを発火する。開閉の保存は利用側が持つ。開閉のボタンは、BoardControllerが接続するまで隠す。
items必須readonly BoardEntry[]列の項目。渡した順に上から並べる。件数は項目の数から数える。
Column(content・countを持つ形)
名前型既定値説明
idstring列のid。移動と開閉のイベントで列を指す値になる。省略すると並び順の番号("0"から)。
title必須string列の名前。見出しに書き、項目の一覧の読み上げ名にもする。
toneTone列の役割の色。列の上端の線と、項目のcodeの文字に出す。カードは染めない。neutralは上端の線を引かない。
currentboolean今の列(今日の担当など)。toneに関わらず上端の線を青緑にする。
emptyChild項目が無い時に置く文。省略すると、movableなら「ここへ移動できます」(受け付けない列は「この列には移動できません」)、 movableでなければ「項目はありません」を置く。
disabledboolean項目を受け付けない列。列の名前を灰色にし、移動先にしない。
collapsedbooleanたたんだ列。件数と縦書きの名前を載せた細い縦長の帯になり、中の項目は隠す。移動先にはならない。
collapsibleboolean列を押して開閉できるようにする。たたんだ帯に「開く」、開いた列の見出しに「たたむ」を置き、押すとBoardControllerが表示を切り替えて、取り消せるboard:toggleイベントを発火する。開閉の保存は利用側が持つ。開閉のボタンは、BoardControllerが接続するまで隠す。
content必須Child項目の代わりに置く任意の中身。移動先にはならない。
count必須numbercontentの時に見出しへ添える件数。

Tone

値:"neutral" | "info" | "success" | "warning" | "danger"

BoardEntry

BoardEntry
名前型既定値説明
id必須string項目のid。board:beforemoveとboard:moveのdetail.idで返る。Boardの中で一意にする。
label必須string項目の名前。ハンドルの読み上げ名(「〜を移動」)と、ドラッグ中の読み上げに使う。
content必須Childカードに載せる中身。見出し・本文・TagGroup・Progressなど任意の要素を置ける。
disabledboolean動かせない項目。ハンドルを無効にする。
codestring項目の番号など。カードの上の先頭側に、列の色の小さな太字で置く。

コード

HTML
Hono JSX