コンポーネント
← すべてのコンポーネント

ポインタドラッグ

stimeo--pointer-drag

正規化されたドラッグライフサイクル(start / move / end / cancel)とキーボード代替を提供する基盤プリミティブ。

  • Core

stimeo--pointer-drag は「ドラッグを含むすべての UI」(sortable・スワイプ操作・ボトムシート・分割ペイン)が合成の土台にするプリミティブです。ポインタ/タッチ/マウスを 1 つのクリーンな信号に正規化し、開始しきい値(未満で離せばただのクリック)、軸ロック、pointer capture、軸から導出する touch-action(ドラッグ中にページがパンしない)、pointercancel / Esc のキャンセルという難所を一度だけ引き受けます。ドラッグが「何を意味するか」はあえて決めず、既定では要素を動かしも描画もしません — 消費側がイベントと data-dragging / data-grabbed フックに反応します。「ただ追従させたいだけ」の定番ケースは opt-in の follow が肩代わりし、move を CSS translate に適用、ドロップで確定、キャンセルで復元します(transform とは独立)。キーボード代替は組み込みです。ハンドルで Space / Enter がグラブ、矢印キーが keyboardStep px の合成 move(origin からの累積・軸フィルタ済み)、Space / Enter でドロップ、Esc でキャンセル。つまり本プリミティブに乗るだけで、すべての消費者がキーボード経路を無料で得ます。 delta は物理座標(client 座標系)の累積値です。handle ターゲットが無ければコントローラ要素自身がハンドルになります。

実行中

カードをポインタでドラッグするか、フォーカスして Space でグラブ、矢印キーで移動、もう一度 Space でドロップします(Esc で元の位置へ戻る)。カードの追従は follow 設定値が担い、このデモの JS はステータス行の表示だけです。

キーボード操作

キー動作
Space / Enter ハンドルをグラブ、またはグラブ中ならドロップ(start / end)。
↑ / ↓ / ← / → グラブ中、keyboardStep px の合成 move を発火(ロック軸の矢印は消費するが発火しない)。
Esc グラブをキャンセル。ポインタドラッグ中も中止できる。