Demo
data-state="visible"/"hidden" で type="password"/"text" が切り替わるパスワード入力。visibility-trigger は aria-pressed/aria-controls で意味論を担い、パスワード値そのものは一切保持しません。
Features
- `size`/`colorPalette` variant クラスを付与し、headless-ui の `password_input::root` へ委譲する。
- `visible` フラグで表示/非表示を制御し、`PasswordInputProps` で `autocomplete`(`PasswordAutocomplete`)等を渡す。
Anatomy
root
label
control
input
visibility-trigger
API Reference
Arguments
| Name | Type | Default | Description |
|---|
| size | Size | Size::Md | サイズ variant。 |
| palette | ColorPalette | ColorPalette::Accent | colorPalette 軸。 |
| visible | bool | false | パスワード文字列の表示/非表示。 |
| props | &PasswordInputProps<'_> | | `id`・`disabled`・`invalid`・`required`・`autocomplete` を束ねる構造体。 |
| attrs | Vec<(&str, &str)> | | root パーツへ合成する追加属性。 |
| children | Vec<Node> | | root 配下の子ノード(通常 input/visibility_trigger を含む)。 |
Data Attributes
| Part | Attribute | Observed Values |
|---|
| control | data-disabled | |
| control | data-invalid | |
| control | data-state | hidden, visible |
| input | data-disabled | |
| input | data-invalid | |
| root | data-disabled | |
| root | data-invalid | |
| root | data-state | hidden, visible |
| visibility-trigger | data-disabled | |
| visibility-trigger | data-state | hidden, visible |
CSS Variables
| Variable | Default |
|---|
| --fandhe-password-input-font-size | var(--fandhe-font-font-size-md) |
| --fandhe-password-input-height | 2.5rem |
| --fandhe-password-input-padding-x | 0.75rem |
Accessibility
WAI-ARIA
| Attribute | Description |
|---|
| aria-invalid | `props.invalid` が `true` のとき `input` パーツへ `"true"` を付与する。 |