QR Code
QR コード(ISO/IEC 18004 Model 2、byte モード)を表示する unstyled 部品です。外部依存ゼロのエンコーダで文字列からモジュール行列を導出する純粋な変換のみを提供し、符号化対象の文字列自体はマークアップへ出力されません。
Themes 版(fandhe-frontend-pre-styled-ui)はこの構造へ既定 CSS を追加するだけの薄いラッパーであり、CSS は持ちません。スタイル済みの表示例は QR Code を参照してください。
関連 API: fandhe-frontend-headless-ui API
Demo
枠線・余白は docs サイト側のデモ枠であり、fandhe-frontend-headless-ui 自体はスタイルを持ちません。
Features
- Root/Frame/Pattern/Overlay の 4 anatomy パーツを提供する。開閉・選択のような遷移可能な状態を持たないため状態機械は実装せず、自由関数のみで構成される(`crate::tabs`/`crate::field` と同じ区分)。
- QR Model 2(ISO/IEC 18004)byte モードの外部依存ゼロエンコーダで `value`/`ecc` から一意にモジュール行列を導出する純粋な変換。符号化対象の `value` 文字列そのものはマークアップへ一切出力されない。
- `frame`(`svg`)は `aria_label` を指定したときのみ `aria-label` を付与し、未指定時は `role="img"` のみに留める(代替テキストの提供は呼び出し側の責務のままにし、偽の説明文を捏造しない fail-closed な設計)。
- `pattern`(`path`)の `d` 属性値は暗モジュールの座標から内部生成する文字列で、文字集合は `M`/`h`/`v`/`z`/半角数字/`,` に閉じる。`fill` は付与せず styled 層/呼び出し側 CSS の責務とする。
Anatomy
root
frame
pattern
overlayAPI Reference
Arguments
| Name | Type | Default | Description |
|---|---|---|---|
| value | &str | (必須) | 符号化対象文字列(`encode` の入力)。マークアップへは一切出力されない。 |
| ecc | ErrorCorrectionLevel | ErrorCorrectionLevel::L | 誤り訂正レベル(`L`/`M`/`Q`/`H`、回復率 約 7%〜約 30%)。 |
| quiet_zone | u32 | DEFAULT_QUIET_ZONE (4) | `frame`/`pattern` の静粛帯モジュール数(ISO/IEC 18004 が要求する最小静粛帯)。 |
| aria_label | Option<&str> | None | `Some` のとき `frame` へ `aria-label` を付与する。`None` のとき `role="img"` のみ(偽の代替テキストを作らない)。 |
Examples
aria_label を省略した変種
`aria_label` に `None` を渡すと `role="img"` のみが付与され、代替テキストの提供は呼び出し側の責務のまま残ります。
Accessibility
WAI-ARIA
| Attribute | Description |
|---|---|
| role | `frame`(`svg`)へ `"img"` を固定付与する。 |