File drop
fandhe-frontend-wireframe-ui のファイルドロップ領域風プレースホルダーです。点線枠 + 任意のアイコン + 説明文 + 任意のヒントで「ファイルをドラッグ&ドロップする領域」の配置イメージだけを示す非インタラクティブな部品です。API は file_drop(label, hint, icon, size) の 4 引数(詳細は下の引数表を参照)で、props 構造体は導入していません。
file-drop は blocks.pm に対応する部品を持たない、wireframe-ui 独自追加の部品です。層全体の参照元は blocks.pm ですが、本部品自体には blocks.pm 上の対応物がないためスクリーンショットは掲載していません。
<input type="file">・<label>・ドラッグイベントのいずれも実装しない表示専用プレースホルダーです。実際に操作可能なファイルアップロードが必要な場合は File Upload(Themes) / File Upload(Primitives) を検討してください。
Demo
既定(label のみ)
ここにファイルをドロップ
hint + アイコン(画像)付き
ここにファイルをドロップ
PNG / JPG、最大 10MB
アイコン違い(plus)
クリックまたはドラッグして追加
複数ファイルを選択できます
Sm
ファイルを追加
Lg
ここにファイルをドロップ
最大 10 ファイルまで
引数表
| 引数 | 型 | 既定値 | 説明 |
|---|---|---|---|
| label | &str | - | 必須。常に出力する説明文。 |
| hint | Option<&str> | None | 省略可能な補助文言。None のときはパート要素自体を出力しない。 |
| icon | Option<Node> | None | 省略可能なアイコンスロット。icon::image・icon::plus 等の戻り値をそのまま渡す。None のときはアイコンのパート要素自体を出力しない。 |
| size | Size | Size::Md | サイズ段階(xs〜xl)。 |
原案差分メモ
- 独自追加部品:
file-dropはdocs/design/wireframe-ui-architecture.md§8 が挙げる、blocks.pm に対応部品がない wireframe-ui 独自追加の 14 部品のひとつです。転写元がないため、引数構成は同文書 §6 の汎用変換規約(Size軸 + テキスト + 省略可能テキスト + スロット)から独立に設計しました。 - アイコンは
Option<Node>スロットで受ける: 専用のアップロードアイコンは追加せず、link(イシュー #2618)と同じOption<Node>アイコンスロット規約(同文書 §11.4)を採用しました。呼び出し側はicon::image・icon::plus等、任意の既存アイコンを渡せます。 - 表示状態軸を持たない:
Bold/Primary/Active/Disabledはいずれも使いません。「ドラッグ中」はインタラクションの状態であり、非対話層(同文書 §7)の責務外と判断しました。file_dropルート・子要素にはdata-*を一切付与しません(アイコンスロットに渡したNode自身が持つdata-iconは例外としてそのまま透過します)。 <input type="file">・<label>・ドラッグイベントは出力しない: 非対話制約(同文書 §7)により、<input>/<label>/<button>/<form>/<a href>・draggable/ondrop/ondragover等のドラッグイベント・accept/multiple等のファイル入力属性は一切出力しません。- スクリーンショット非掲載:
docs/design/reference-screenshots/への blocks.pm 画像取り込みは #2602 で fail-closed に非掲載と確定しています。本部品には blocks.pm 上の対応物自体がないため、上記の外部リンクのみで代替します。 - 配色はグレースケール:
--fw-wire-ink/--fw-wire-ink-mutedトークンのみを使い、ColorPaletteには依存しません。