A Svelte component for entering verification/PIN codes.
npm install svelte-pin-input
or
yarn add svelte-pin-input
Use SveltePinInput
in your component like this:
Initialize a variable to hold the inputed code and set up an event listener for the updateValue
event to keep track of the user's input.
let code = '';
on:updateValue={(e) => (code = e.detail.value)}
<script>
import SveltePinInput from "svelte-pin-input";
let code = '';
const customStyle = `background-color: lightblue;
text-align:center; color: black; width: 50px; height: 50px; border-radius: 10px; border: grey; margin-right: 10px`;
const customInvalidStyle = `background-color: pink;
text-align:center; color: black; width: 50px; height: 50px; border-radius: 10px; border: grey; margin-right: 10px`;
</script>
<SveltePinInput
size={5}
isInputHidden={false}
inputType="mixed"
inputStyle= {customStyle}
inputStyleInvalid={customInvalidStyle}
isValid={false}
containerstyle="display: flex"
on:updateValue={(e) => (code = e.detail.value)}
/>
isInputHidden={true}
inputType="number"
inputType="text"
inputType="mixed"
Common props you may want to specify include:
Prop Name | Initial Value | Type | Description |
---|---|---|---|
size | 6 | number |
The size of the input fields. |
inputType | 'text' |
'text' | 'number' | 'mixed' |
The type of input ('text', 'number', or 'mixed'). |
containerstyle | undefined |
string |
Optional CSS styles for the inputs container. |
inputStyle | undefined |
string |
Optional CSS styles for the input elements. |
inputStyleInvalid | undefined |
string |
Optional CSS styles for invalid input elements. |
pattern | undefined |
RegExp |
Optional pattern for input validation. |
isInputHidden | true |
boolean |
Whether the input is hidden (default: true ). |
disabled | false |
boolean |
Whether the input is disabled (default: false ). |
isValid | true |
boolean |
Whether the input is valid (default: true ). |
MIT Licensed. Copyright (c) Chiamaka Umeh 2023.