A Simple Input Form For Vue 3

vue-base-input (Vue 3)

Base-input:

I made it, for simplify a create form on my differents projects.
Base-input return if your value is valid and value in Object.

Install

npm:

npm i vue-base-input

yarn:

yarn add vue-base-input

import vueBaseInput from 'vue-base-input';

export default {
  // ...
  components: {
    vueBaseInput
  },
  data() {
    return {
      modelValue: {
        value: '',
        isValid: ''
      };
  }
  // ...
}

CSS

Tailwind CSS

import 'vue-base-input/src/assets/vue-base-input-tailwind-css.css';

CSS

import 'vue-base-input/src/assets/vue-base-input.css';

Custom

/* transition */
.fade-enter-active,
.fade-leave-active {}
.fade-enter-from,
.fade-leave-to {}
/* end transition */

.base-input {}
.border-valid {}
.border-default {}
.border-faild {}
.error-color {}
.label-color {}
.bg-full {}
.bg-empty {}
.bloc-input {}
.input {}

/* input label inside true */
.input-label-inside {}
/* input label outside true */
.input-label-outside {}

.bloc-button {}
.button-icon {}
.button-icon img {}
.label-outside {}
.label-inside {}

@media (min-width: 768px) {
  .label-outside {}
  .label-inside {}
  .bloc-error .error-message {}
}

.required {}
.bloc-error {}
.bloc-error .error-message {}

/* animation label inside/outside*/
input:not(:-moz-placeholder-shown) ~ label.label-inside {}
input:not(:-ms-input-placeholder) ~ label.label-inside {}
input:focus-within ~ label.label-inside, input:not(:placeholder-shown) ~ label.label-inside {}
input:not(:-moz-placeholder-shown) ~ label.label-outside {}
input:not(:-ms-input-placeholder) ~ label.label-outside {}
input:focus-within ~ label.label-outside, input:not(:placeholder-shown) ~ label.label-outside {}

Usage ?

<vue-base-input></vue-base-input>

Using v-model

<vue-base-input
  v-model:value="modelValue.value"
  v-model:is-valid="modelValue.isValid"
>
</vue-base-input>

Available props

Prop Type Default Description
is-valid Boolean null return true if regex is true or if input is not empty
input-type String text Change input type: text, password, date
is-required Boolean false show * after label and change border color and icon
show-border Boolean true show/hide border if is-valid is true/false
show-icon Boolean true show/hide icon if is-valid is true/false
error-message String text show error message under input
icon String/Object null Add url icon ?
url-icon-valid String/Object null Add url icon success example: ✔️
url-icon-faild String/Object null Add url icon faild example: ❌
url-icon-open-eyes String/Object null Add url icon open-eyes for password input type
url-icon-close-eyes String/Object null Add url icon close-eyes for password input type
regex String null build test and return is-valid true or false
label-inside Boolean false if input isn’t empty the label place to inside or outside input
custom-style Object
input-class String

Demo

GitHub

View Github