InlineSelect

文中の語をクリックして、選択肢から選びます。

予定の知らせる

一つの文に二つ

をが送ったもの

見出しの下の小さな文

に並べています

使えない時・右から左に読む場合

予定の知らせる

تذكير

使いどころ

  • 「30分前に知らせる」「全員が送ったファイル」のように、設定や条件を一つの文として読ませ、その中の語だけを選べるようにする時に使います。
  • ラベルの付いた欄として並べる時は Select、選んだ条件でページを移る時は FilterBar を使います。

使い方

label と options(value・label)を渡し、文の中に置きます。value に初めに選んでおく選択肢の値を渡し、渡さなければ先頭を選びます。選択肢の label は前後の文とつないで読める形で書きます。

実体は標準の select です。前後の文と同じ大きさ・行高のまま、選べる語を、Basecamp 2の検索の条件の文と同じく枠の無い淡い青(#e1e8f8)の面に青緑(#1c5c77)の太字で置き、終わりに小さな▾を添えます。角はピルにせず角丸2pxです。ホバーすると文字と▾をリンクと同じ赤にし、フォーカスすると青い縁の外に淡い青の輪を広げます。開いた一覧の選択肢は本文の黒い文字です。disabled では形と面をそのままにし、文字と▾だけを灰色にします。幅は選んだ語に合わせ、収まらない時は語を省略します。

class は外側の span に付き、name・disabled・form などの残りの属性は select に付きます。name を渡すとフォームで選んだ value を送ります。

controllerは持ちません。選び直しは標準の change で受け取ります。JavaScriptが無い時も同じく動きます。

アクセシビリティ

  • 文の中では前後の文が見出しの役を持たないので、label を select の aria-label にします。何を選ぶかを短く書きます(「知らせる時」など)。
  • キーボードの操作と選択肢の一覧は、ブラウザの標準の select のままです。

API

InlineSelect

「30分前に知らせる」「全員が送ったファイル」のように、文の中の語を押して選ぶ選択。実体は標準のselectで、文の中の語をInputと同じ白い欄で囲み、▾を添える。欄を並べずに、設定を一つの文として読ませる時に使う。

InlineSelectのprops
名前型既定値説明
label必須string読み上げの名前。文の中では前後の文が見出しになるので、何を選ぶかを短く書く。
options必須readonly InlineSelectOption[]選べる語。並べた順にoptionにする。
valuestring最初に選んでおく選択肢のvalue。渡さなければ先頭を選ぶ。

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

読み込むCSS:layers.css、reset.css、tokens.css、base.css、layout.css、components/icon.css、components/inline-select.css

InlineSelectOption

InlineSelectOption
名前型既定値説明
value必須string送信する値。
label必須string文の中に見せる語。前後の文とつないで読める形で書く(「30分前に」など)。

コード

HTML
Hono JSX