@j2only/pincode
TypeScript icon, indicating that this package has built-in type declarations

0.4.2 • Public • Published

vue-pincode

npm publish npm npm bundle size (scoped) CodeFactor Grade TypeScript contributions welcome GitHub

Vue.js pincode input component. 🔒 Written entirely on Vue 3 Composition API with Typescript and Vite. Compatible only with Vue.js 3.x.

  • Simple pincode input field
  • Minimal style
  • Customizable
  • Smooth animations

You can check a DEMO HERE

Installation

Install this component via package manager:

yarn add @j2only/pincode

https://nodei.co/npm/@j2only/pincode.png?downloads=true&downloadRank=true&stars=true

Usage

Import the component in your app and pass some settings:

<template>
    <VuePincode
        name="pincode"
        ref="pincodeInput"
        :length="4"
        :releaseSuccess="true"
        :releaseSuccessDelay="2500"
        :releaseErrorDelay="500"
        :customButton="true"
        @clickButton="cButtonFn"
        @pincode="checkPincode"
    />
</template>

<script setup lang="ts">
import VuePincode from "./components/VuePincode";

const pincodeInput = ref()
const cButtonFn = ref(() => alert("the custom button clicked!"))
const answer = "1234"


function checkPincode(pincode: string) {
    setTimeout(() => {
        if (pincode === answer)
            pincodeInput.value.triggerSuccess()
        else
            pincodeInput.value.triggerMiss()
    }, 300)
}
</script>

Props

As you can see, the component accepts some props:

Prop Type Default Description
name String "pincode" Unique ID, in case of using several components on one page
length Number 4 Required pincode length, minimum 2, maximum 8
releaseSuccess Boolean true Reset state after delay when entered pincode is correct
releaseSuccessDelay Number 2500 Delay to reset state after entered pincode is correct (milliseconds)
releaseErrorDelay Number 500 Delay to reset state after entered pincode is invalid (milliseconds)
customButton Boolean false Show custom button

CSS Variables

Also, you can customize some styles via CSS Variables:

Variable Default Description
--pc-color-button #000000 Color of digits
--pc-color-field-normal #234567 Color of fields
--pc-color-field-success #42b983 Color of fields when pincode is correct
--pc-color-field-error #eb0c0c Color of fields when pincode is invalid
--pc-custom-button-icon base64 Custom button icon

Events

Event Description
pincode Is triggered when the entered pincode length is equal to length prop
clickButton Is triggered when the custom button is pressed

Project development

  • yarn dev compiles and hot-reloads demo for development
  • yarn lint lints and fixes files
  • yarn build compiles and minifies production files and demo

Licensing

MIT License Forked from @weslinkde/vue-pincode, Dominik Lenz ©️ 2020 Weslink GmbH, MIT License

Package Sidebar

Install

npm i @j2only/pincode

Weekly Downloads

6

Version

0.4.2

License

MIT

Unpacked Size

26.9 kB

Total Files

8

Last publish

Collaborators

  • j2only