IconButton
TRButton のビジュアルを共有し、アクセシブルな名前を必要とするアイコン専用アクションです。
主なプロパティ
文脈からアイコンの意味が明確な、よく知られたアクションに IconButton を使用します。各インスタンスにはアクセシブルな名前が 1 つ必要です。直接名前を指定する場合は aria-label、別の場所にある表示テキストでアクションを命名する場合は aria-labelledby を使用します。アイコンは aria-hidden="true" で装飾扱いにし、名前と競合しないようにします。
| プロパティ | 値 | デフォルト | 用途 |
|---|---|---|---|
variant | secondary, primary, danger | secondary | アクションの意図を伝えます。 |
appearance | solid, outline, ghost | solid | 意図を変えずに強調度を変更します。 |
uiSize | md, lg | md | 正方形のターゲットとアイコンサイズを設定します。 |
| 状態 | disabled, loading | 操作可能 | ネイティブの disabled 動作を使用し、loading は aria-busy とスピナーを追加します。 |
インストール
pnpm add @tinyrack/ui長い行はコード領域を横にスクロールして確認できます。
スタイル
@import '@tinyrack/ui/components/icon-button.css';長い行はコード領域を横にスクロールして確認できます。
インポート
import { TRIconButton } from '@tinyrack/ui/components/icon-button';長い行はコード領域を横にスクロールして確認できます。
プレイグラウンド
使用方法
設定アクション パーマリンク
アイコンではなくアクションに名前を付け、通常のイベント処理を維持します。
例
アクションの状態 パーマリンク
loading はアイコンを装飾用スピナーに置き換え、loadingLabel を一時的なアクセシブル名として使用します。disabled はネイティブのボタン状態を維持します。
外観 パーマリンク
最も強く強調する場合は solid、境界が必要な場合は outline、強調を抑えたツールバー操作には ghost を使用してください。
アクションの意図 パーマリンク
主要な操作には primary、破壊的な操作にのみ danger を使用してください。secondary は中立的なデフォルトです。
サイズ パーマリンク
隣接するコントロールにアイコンボタンのサイズを合わせ、入力方法に十分な操作領域を確保してください。
API
TRIconButtonはaria-labelまたはaria-labelledbyのいずれかを必須とし、1 つのアイコンをchildrenとして受け取ります。Button の props、ネイティブ属性、イベント、className、style、React 19 のref、Base UI のrender合成を転送します。typeのデフォルトはbuttonです。アイコンアクションでフォームを送信する場合に限り、type="submit"を明示します。loadingは操作を無効化し、aria-busyを設定して元のアイコンを隠し、装飾用スピナーを表示します。loadingLabelは一時的にaria-labelを置き換え、代替名がない場合はaria-labelledbyの名前を維持します。--tr-btn-heightは正方形ターゲットの両方の寸法を変更します。--tr-icon-button-icon-sizeは直接の子 SVG アイコンのサイズを変更します。他の Button の色、角丸、フォーカス、モーション、disabled トークンも利用できます。- IconButton の CSS サブパスには Button と Spinner の依存スタイルが含まれます。