| name | string | — | Form field name for submit (`name` attr). |
| defaultvalue | string | — | Restored on `<form reset>` (`defaultvalue` attr). |
| formid | string | — | External `<form>` id (`formid` attr). |
| disabled | boolean | — | Non-interactive; blocks cell entry (`disabled` attr). |
| readonly | boolean | — | Focusable but cannot change cells (`readonly` attr). |
| required | boolean | — | Blocks valid submit when incomplete (`required` attr). |
| requiredmessage | string | — | Custom `valueMissing` message (`requiredmessage` attr). |
| label | string | "" | Plain-text label; slotted `label` wins when assigned. |
| hint | string | "" | Helper text; `hint` slot wins when assigned. |
| id | string | "" | Host id for label `for` / `aria-*` wiring. |
| variant | VuOtpVariant | "default" | Field chrome recipe. Default: `"default"`. |
| tone | VuOtpTone | "normal" | Neutral surface weight. Default: `"normal"`. |
| size | VuOtpSize | "md" | Cell scale. Default: `"md"`. |
| radius | VuOtpRadius | "md" | Corner preset (`none`/`sm`/`md`/`lg`/`full`). Default: `md`. |
| block | boolean | false | Stretches the cell row to the container width. Default: `false`. |
| compact | boolean | false | Tighter label/hint/error spacing. Default: `false`. |
| length | number | 6 | Number of OTP characters. Default: `6`. |
| alphanumeric | boolean | false | Allows letters in addition to digits. Default: `false`. |
| value | string | "" | Canonical OTP string (unmasked). Default: `""`. |
| masked | boolean | false | Masks cell glyphs (`type="password"`). Default: `false`. |
| showerrors | boolean | — | Shows validation after activation (`showerrors` attr). Default: `false`. |
| validationactive | boolean | — | Drives invalid styling after activation (`validationactive` attr). Default: `false`. |
| invalid | boolean | false | True when last validation found errors (`invalid` attr). Default: `false`. |
| incompletemessage | string | — | Error when some cells are filled but not all; empty uses default. |
| arialabel | string | — | Names the row when no visible label is present. |
| incompleteMessage | string | "" | Error when some cells are filled but not all; empty uses a default. |
| ariaLabel | string | "" | Names the row when no visible label is present. |
| showErrors | boolean | false | Shows validation after activation. |
| validationActive | boolean | false | Drives invalid styling after activation. |