PinInput

PinInputは、ピンコードやOTP(ワンタイムパスワード)の入力を取得するために使用されるコンポーネントです。

使い方

import { PinInput } from "@yamada-ui/react"
<PinInput.Root />

バリアントを変更する

サイズを変更する

カラースキームを変更する

デフォルトの値を設定する

デフォルトの値を設定する場合は、defaultValueに文字列を設定します。

プレースホルダーを変更する

プレースホルダーを変更する場合は、placeholderに文字列を設定します。

フィールド数を変更する

フィールド数を変更する場合は、itemsに数値を設定します。

タイプを変更する

デフォルトでは、数値のみ入力が可能です。英数字をサポートする場合は、typealphanumericを設定します。

ワンタイムパスワード

ワンタイムパスワード(autocomplete="one-time-code")を有効にするには、otptrueに設定します。

入力された値をマスクする

入力された値をマスクする場合は、masktrueに設定します。

無効にする

無効にする場合は、disabledtrueに設定します。

読み取り専用にする

読み取り専用にする場合は、readOnlytrueに設定します。

無効な入力にする

無効な入力にする場合は、invalidtrueに設定します。

ボーダーの色を変更する

ボーダーの色を変更する場合は、focusBorderColorまたはerrorBorderColorに値を設定します。

完了のイベントをハンドルする

完了のイベントをハンドルする場合は、onCompleteを使用します。

フォーカス管理を無効にする

デフォルトでは、フィールドが入力されると、自動的に次のフィールドにフォーカスは移動します。また、BackSpaceキーが入力された場合は、前のフィールドにフォーカスされます。この制御を無効にする場合は、manageFocusfalseに設定します。

フィールドをカスタマイズする

制御する

Props

アクセシビリティ

Field.Rootを使用しない場合は、PinInput.Rootaria-labelまたはaria-labelledbyを設定します。

<PinInput.Root aria-label="Please one-time password" />
<VStack gap="sm">
  <Text as="h3" id="label">
    Please one-time password
  </Text>

  <PinInput.Root aria-labelledby="label" />
</VStack>

キーボード操作

キー説明状態
Tabフォーカスを次の項目に移動します。-
ArrowRightフォーカスを次の項目に移動します。-
ArrowLeftフォーカスを前の項目に移動します。-

ARIAロールと属性

コンポーネントロールと属性使い方
PinInput.Rootrole="group"グループであることを示します。
PinInput.Fieldaria-invalidinvalidが設定されている場合は"true"を設定します。
aria-disableddisabledが設定されている場合は"true"を設定します。
aria-describedbyPinInput.FieldField.Root内にあり、Field.RooterrorMessageまたはhelperMessage、もしくはField.ErrorMessageまたはField.HelperMessageが設定されている場合は、そのidを設定します。
aria-readonlyreadOnlyが設定されている場合は"true"を設定します。
aria-requiredrequiredが設定されている場合は"true"を設定します。