Download Trigger
a[download] 属性による宣言的なファイルダウンロードトリガーです。Blob 生成のような JS 実行を必要とせず、プレーンな HTML のみで完結する静的部品として実装されています。
Themes 版(fandhe-frontend-pre-styled-ui)はこの構造へ既定 CSS を追加するだけの薄いラッパーであり、CSS は持ちません。スタイル済みの表示例は Download Trigger を参照してください。
関連 API: fandhe-frontend-headless-ui API
Demo
枠線・余白は docs サイト側のデモ枠であり、fandhe-frontend-headless-ui 自体はスタイルを持ちません。
Features
- Root(`a[download]`)1 パーツのみの最小構成。`href`/`file_name` から `download` 属性を組み立てる宣言的トリガーであり、JS(`Blob` 生成・非同期データ解決)を必要としない静的部品として実装される(AI 時代のセキュリティリスク低減方針に基づく意図的な設計)。
- `href` は `fandhe_frontend_core::render` の既定エスケープ経路(許可スキームのみを通す deny-by-default)を通り、`javascript:`/`data:`/`blob:`/`vbscript:` 等の危険なスキームは属性ごと出力されない(fail-closed)。
- `file_name` が `Some(name)` のとき `download="<name>"`、`None` のとき `download=""`(配信元のファイル名を使うブラウザ既定挙動)を出力する。
- 実際のファイル取得(`Blob`/非同期データ解決)・`mimeType` の指定は非対応。実ファイル配信時の `Content-Type` は配信側ヘッダで表現する。
Anatomy
rootAPI Reference
Arguments
| Name | Type | Default | Description |
|---|---|---|---|
| href | &str | (必須) | 配信 URL。危険なスキームは render() の既定エスケープ経路で属性ごと出力されない。 |
| file_name | Option<&str> | None | `Some(name)` で `download="<name>"`、`None` で `download=""`。 |
Examples
file_name を省略した変種
`file_name` に `None` を渡すと `download=""` が出力され、ブラウザは配信元のファイル名をそのまま使用します。
Download data.csvAccessibility
Keyboard Interactions
| Key | Description |
|---|---|
| Tab / Enter | `root` はネイティブ `<a href download>` であり、フォーカス・起動操作はブラウザ既定動作で成立する(JS 配線を必要としない)。 |