ライブラリ
コンポーネントカタログ(Core)
Stimeo UI は Rails 向けのヘッドレス Stimulus UI フレームワークです。各コンポーネントは挙動(ARIA 状態、キーボード操作、フォーカス管理)のみを提供し、見た目はこの Playground 側の CSS が担います。
サイドバー、または下のカードからコンポーネントを選ぶと、ライブデモ、マークアップ、キーボード操作を確認できます。
Core は MIT ライセンスのオープンソースです。 ライセンスを見る →
タグでカタログを絞り込みます。複数のタグを組み合わせると、すべてに該当するコンポーネントだけを表示します。
Rails / Turbo 連携
WAI-ARIA APG パターン
-
チェックボックス
ふつうのチェックボックスに、親子の連動と「一部だけ選択」の状態を足します。
-
ラジオグループ
自作の見た目のラジオボタン。矢印キーで選び、Tab は 1 回だけ止まります。
-
スイッチ
オンとオフを切り替えるスイッチ。押した状態が読み上げに伝わります。
-
トグルグループ
押した状態を持つボタンの集まり。1 つだけ選ぶ形にも、いくつでも選べる形にもできます。
-
レーティング
星による評価。矢印キーで増減し、端で止まります。選び直しも取り消しもできます。
-
リストボックス
選択肢を開いて 1 つ選ぶセレクト。フォーカスはボタンに残ったまま候補を辿れます。
-
コンボボックス
打ち込むと候補が絞り込まれる入力欄。キーボードだけで選べます。
-
複数選択
候補を絞り込みながら複数選ぶ入力。選んだものは消せるタグになります。
-
OTP 入力
確認コードを 1 桁ずつ入れる欄。貼り付けも自動入力も、桁ごとに振り分けます。
-
入力マスク
決めた形に沿って入力を整えます。カーソルの位置は動きません。
-
数値入力
数を増減する入力欄。刻み幅で上下し、範囲の外へは出ません。
-
金額入力
打ちながら桁区切りが付く金額の入力欄。送信されるのは区切りの無い数値です。
-
カラーピッカー
色相、彩度、明度を別々のスライダーで選ぶ色選択。16 進の入力欄と双方向につながります。
-
スライダー
つまみ 1 つのスライダー。キーボードでもドラッグでも動かせます。
-
レンジスライダー
下限と上限を 2 つのつまみで選ぶスライダー。互いを追い越しません。
-
自動拡張テキストエリア
入力に合わせて textarea が伸びます。伸びる範囲は行数で決められます。
-
タグ入力
打った言葉をタグにします。Enter か区切り文字で確定し、削除もできます。
-
フォームフィールド
入力欄と、その説明やエラーを結びつけます。読み上げに正しい順で届きます。
-
フォームバリデーション
ブラウザ標準の検証を、いつ出すかまで含めて整えます。送信も止め、最初のエラーへ案内します。
-
文字数カウンタ
残りの文字数を出し、上限が近いことと超えたことを伝えます。読み上げは打ち終わってから。
-
パスワード表示切替
パスワードの表示と非表示を切り替えます。カーソルの位置はそのままです。
-
パスワード強度メーター
パスワードの強さを目安として示します。メーターと文言の両方で伝えます。
-
インライン編集
その場で書き換える編集。クリックか F2 で始め、Enter で保存、Esc で取り消します。
-
依存フィールド
ほかの入力の値に応じて、フォームの一部を出したり引っ込めたりします。
-
動的フィールド行
明細行を足したり消したりします。Rails の入れ子フォームの作法どおりに送信されます。
-
ファイルドロップゾーン
クリック、キーボード、ドラッグの 3 通りでファイルを選べます。画像は先に見られます。
-
ダイレクトアップロードの進捗
アップロードの進み具合をファイルごとに出し、終了と失敗を読み上げます。
-
自動送信フォーム
入力が落ち着いたらフォームを送信します。検索や絞り込みに送信ボタンが要らなくなります。
-
二重送信防止
送信ボタンを一度だけ押せるようにします。二重送信を防ぎ、終われば元へ戻ります。
-
編集中離脱ガード
フォームの変更を覚えておき、保存せずに離れようとしたら引き止めます。
-
入力の永続化
書きかけのフォームを保存し、戻ってきたときに書き戻します。
-
楽観的 UI
押した瞬間に見た目を進め、失敗したぶんだけ正確に戻します。
-
アスペクト比
決めた縦横比を CSS へ渡します。箱の比率を保つのは利用側のスタイルです。
-
セパレータ
区切り線に意味を与えます。値を持ってキーボードで動かせる形にもできます。
-
アバター
ユーザーの画像を表示し、読み込めなかったら用意しておいた代わりに切り替えます。
-
リサイザブル
境界をドラッグして領域の広さを変えます。キーボードでも動かせます。
-
メーソンリー
高さの違うカードを、いちばん低い列へ次々に積みます。読む順番は変わりません。
-
サイドバー
画面幅で姿を変えるサイドバー。広い画面では畳めるレール、狭い画面ではモーダルのパネルになります。
-
スクロール領域
スクロールする枠にキーボードで入れるようにし、端まで来たかを CSS へ伝えます。
-
カルーセル
止められる自動再生つきのスライドショー。スライドを選ぶボタンはキーボードで渡り歩けます。
-
データグリッド
表に列の並べ替え、行の選択、セル間のキーボード移動を足します。
-
一括選択バー
行のチェックと一括操作バーを連動させ、選んだ件数を読み上げます。
-
フィルター
選んだ条件で一覧を絞り込みます。条件の切り替え方はチェックでもボタンでも構いません。
-
単一リストの並べ替え
並べ替えを、キーボードとスクリーンリーダーでも同じようにできるようにします。
-
オーバーフロー表示
まだ先に続きがあることを伝えます。端の影や矢印を CSS で描けます。
-
スクロール表示切替
スクロールの量や向きに応じて要素を出し入れします。「トップへ戻る」や隠れるヘッダに使えます。
-
追従状態検知
貼りついたヘッダが実際に貼りついた瞬間を教えます。影を出す合図に使えます。
-
最下部追従
新しい行が届くと下へ追従します。読み返している最中は追いかけません。
-
スクロール位置の保持
枠の中のスクロール位置を覚えておき、ページを移動して戻っても同じ場所を見せます。
-
読了プログレス
記事をどこまで読んだかを CSS へ渡します。進捗バーは CSS だけで書けます。
-
スマート追従ヘッダ
下へ読むとヘッダが引っ込み、上へ戻すと現れます。キーボードで入ったときは必ず出てきます。
-
カウントアップ
マークアップに書かれた最終値まで、数値をアニメーションで増やしていく。定番は「見えたら開始」。
-
スピナー
読み込み中の表示を出し入れします。始まりと終わりは読み上げにも伝えます。
-
スケルトン切り替え制御
読み込み中の仮表示を、届いた中身と入れ替えます。一瞬で届いてもちらつきません。
-
プログレスバー
進み具合を伝えます。割合は CSS から読めるので、バーの塗りは自由に書けます。
-
メーター
ディスク使用量やバッテリーのような「いまの量」を示すメーター。しきい値で段階に分けます。
-
フレーム読込状態
Turbo フレームの読み込み中に、待ち表示を出して二度押しを防ぎます。
-
空状態の監視
リストが空のときだけ「まだありません」を出し、1 件でも入れば引っ込めます。
-
アナウンサー
画面の変化をスクリーンリーダーへ伝える共通の窓口。ページに 1 つ置けば全部品が使えます。
-
トースト
重ねて出せる通知。読み上げに届き、カーソルを乗せている間は消えません。
-
フラッシュ橋渡し
Rails の flash を、読み上げに届いて自動で消える通知にします。
-
ネットワークステータス
回線が切れたことと戻ったことを知らせます。切れたときは強く、戻ったときは静かに伝えます。
-
ディスミッシブル
お知らせやバナーを閉じます。閉じるボタンごと消えても、フォーカスが迷子になりません。
-
クリップボード
テキストをコピーし、成否を目と耳の両方へ伝えます。
-
テーマ切替
ライト、ダーク、端末に合わせるの 3 択を覚え、ページ全体へ反映します。
-
挿入要素の強調
差し込まれたばかりの要素に一瞬だけ印を付けます。光らせ方は CSS で自由です。
-
無操作検知
しばらく操作がなければ知らせます。先に予告を出して、戻ってきたことも伝えます。
-
ビューポート侵入で遅延ロード
Turbo フレームの読み込みを、近づくまで待たせます。キーボードで辿り着いたときも読み込みます。
-
プレビュー中の揮発要素ガード
Turbo が一瞬だけ見せる古い画面の間、変わりやすい値を隠します。
-
キャッシュ前リセット
戻ったときに操作の途中が残らないよう、一時的な状態をページごと片付けます。
-
アンカー配置ユーティリティ
浮いた要素を基準の要素の横につけ、画面の端では自動で向きを変えて収めます。
-
ロービングタブインデックス
並んだ項目を Tab の 1 停止にまとめ、その中は矢印キーで移動します。
-
ポインタドラッグ
ドラッグの土台。始まり、移動、終わり、取り消しを揃え、キーボードでも同じことができます。
-
ビューポート交差
要素が画面に入ったこと出たことを、イベントと CSS の値にして渡す土台です。
-
フォーカス管理ユーティリティ
任意の領域にフォーカスの境界を作ります。Tab が中を巡り、抜けたら元へ戻ります。
-
要素の移送
要素をページの別の場所へ移します。切り取られる枠や重なりの制約から抜け出せます。
-
共有トランジション基盤
出入りのアニメーションの土台。終わりを見届けてから隠します。
このカテゴリのデモは、この Playground の Rails 側で Action Cable を有効にして動いています。アダプタは async(Redis 不要 — 単一 puma プロセスなのでタブ間の broadcast がそのまま成立)、マウントは Rails 既定の /cable、接続は匿名です。サーバ側は受けた信号を部屋へ流し直すだけの薄いチャンネル 3 本(TypingChannel / PresenceChannel / LikesChannel)で、ページ共有の WebSocket 1 本を setCableConsumer で各コントローラに渡しています。
選択したタグに該当するコンポーネントはありません。