コンテンツにスキップ

インプットグループ

hc-input-group は、hc-input と前後のアドオン — テキスト、 アイコン、または本物の hc-button — を、1 つの共有フォーカスリングを 持つ 1 枚の枠つき面の上に合成します。ほぼ CSS だけで、内側の <input> は自身の枠線を手放してグループがそれを所有します。

別名: アドオン付き入力、前置/後置ラベル。

内側の <input><button> は普通の要素なので、htmx の配線 (data-hx-*)はそれらに直接置きます — グループは純粋に視覚的な ものです。

https://
$USD

グループ内の select: 控えめな演算子

Section titled “グループ内の select: 控えめな演算子”

グループ内の <select> は input と同じように自前の装飾を手放すので、 2 つで枠 1 つ・フォーカスリング 1 つのコントロールとして読めます。 検索パネルの値+演算子が欲しい形です。

<div class="hc-input-group">
<input class="hc-input" type="text" id="f-order" name="f-order">
<select class="hc-select" data-quiet name="op-order"
aria-label="Order number operator">
<option value="eq">equals</option>
<option value="contains">contains</option>
</select>
</div>

data-quiet が落とすのは声の大きさであって機能ではありません。 当たり判定もキーボード操作もそのままで、色が抑えられ、サイズが 1 つ 小さくなります。ほとんどの行が既定値のまま使うコントロールに付けて ください。演算子を値と同じ強さで描くと、「何が設定されているか」を パネルから探す手間が倍になります。

パスワードの表示切り替え(オプトインのビヘイビア)

Section titled “パスワードの表示切り替え(オプトインのビヘイビア)”

後置のボタンでパスワードフィールドの可視性を切り替えられます。これが グループ唯一のオプトインビヘイビアです: data-hc-password-toggle を 足して installPasswordToggle() を呼びます(自動初期化バンドルに含まれて います)。

import { installPasswordToggle } from '@hypermedia-components/core';
installPasswordToggle();

ビヘイビアは入力の typepasswordtext の間で切り替え、 aria-pressedaria-label に反映します。文言は data-hc-label-show / data-hc-label-hide でカスタマイズできます (デフォルトは “Show password” / “Hide password”)。フィールドの値を 読むことも、ネットワーク呼び出しをすることも決してありません。

  • <input> にアクセシブルな名前を与えてください(ここでは aria-labelhc-field で包む場合は <label>)。装飾的なアイコン アドオンは aria-hidden="true" にすべきです。
  • 意味のあるテキストアドオン(USD のような単位、https:// のような 前置)はソース順に読み上げられます — スクリーンリーダーには問題 ありません。短く保ってください。
  • フォーカスリングは共有です: フィールドにフォーカスすると :focus-within 経由でグループ全体にリングが付きます。内側のボタンは 自身のフォーカスアウトラインを保ちます。
  • パスワードトグルは aria-pressed つきの本物の <button type="button"> です — キーボードで操作でき、トグルとして 読み上げられます。
トークンパス用途
input-group.bg共有面の背景。
input-group.fgテキストの色。
input-group.border面の枠線。
input-group.focus-borderフォーカス中の枠線色。
input-group.radius外側の角丸。
input-group.addon-bg / addon-fgアドオンの背景 / テキスト。
input-group.addon-padding-xアドオンのインラインパディング。
input-group.dividerアドオン / ボタンとフィールドの間のヘアライン。
生成される CSS 変数を表示
--hc-input-group-bg | -fg | -border | -focus-border | -radius
--hc-input-group-addon-bg | -addon-fg | -addon-padding-x | -divider