Link
ネイティブ anchor の機能を保ちながら、意味のある色と underline 動作を備えたナビゲーションです。
主なプロパティ
| プロパティ | 値 | 既定値 |
|---|---|---|
variant | default, muted, danger | default |
underline | always, hover, none | hover |
disabled | pointer と keyboard navigation を無効化 | false |
インストール
pnpm add @tinyrack/ui長い行はコード領域を横にスクロールして確認できます。
スタイル
@import '@tinyrack/ui/components/link.css';長い行はコード領域を横にスクロールして確認できます。
インポート
import { TRLink } from '@tinyrack/ui/components/link';長い行はコード領域を横にスクロールして確認できます。
プレイグラウンド
使用方法
現在の移動先 パーマリンク
通常のナビゲーションにはネイティブリンクを使用し、現在の移動先を aria-current で示します。
例
クライアントルーターとの合成 パーマリンク
render でルーターリンクを合成すると、anchor を入れ子にせず TRLink の動作とスタイルを適用できます。
意味別の variant パーマリンク
通常のナビゲーションには default、補助リンクには muted、破壊的な結果へ移動する場合は danger を使用してください。
下線の動作 パーマリンク
通常はデフォルトの hover 下線を使い、常にナビゲーション可能であることを示す場合は always を使用してください。文脈だけでリンクと明確に分かる場合にのみ none を使用します。
内部・外部・ダウンロード先 パーマリンク
外部リンクでは、表示テキストで新しい閲覧コンテキストが開くことを示します。ダウンロードにはネイティブのアンカー機能を使用します。
API
ナビゲーションには TRLink、コマンドには TRButton を使います。有効な link は Enter で起動し、Space は native anchor と同様に scroll します。Disabled link は aria-disabled を公開し、native destination と tab stop を削除して pointer、keyboard、programmatic activation を防ぎます。外部 link が新しい browsing context を開く場合は、見える text で示し、target="_blank" と適切な rel を併用してください。
| プロパティ | 型 / 既定値 | 用途 |
|---|---|---|
href | native anchor href | destination を設定し、disabled の間は省略されます。 |
variant | default | muted | danger / default | 意味に応じた text color を選びます。 |
underline | always | hover | none / hover | underline の表示方法を選びます。 |
disabled | boolean / false | navigation を防ぎ、順次 focus から外します。 |
render | Base UI render element または callback | anchor を入れ子にせず React Router などの link を合成します。 |
| native props | anchor attributes、events、className、style、ref | current state、外部/download 属性、handler、style、React 19 ref を転送します。 |
スタイルトークン
--tr-link-color、--tr-link-font-weight、--tr-link-decoration-thickness、--tr-link-underline-offset、--tr-link-hover-opacity、--tr-link-disabled-opacity、--tr-link-radius、--tr-link-focus-color、--tr-link-focus-width、--tr-link-focus-offset、--tr-link-duration で Tinyrack fallback を保ちながら component を調整できます。