Skip to content

Input

Base text-input form.

Usage

Simple Usage

preview
vue
<template>
  <p-input v-model="value" placeholder="Input Here" />
</template>

Sizing

Input has 4 variants size: xs, sm, md, lg, default is md.

preview
vue
<template>
  <p-input size="xs" />
  <p-input size="sm" />
  <p-input size="md" />
  <p-input size="lg" />
</template>

Disabled state

preview
vue
<template>
  <p-input disabled />
</template>

Readonly state

preview
vue
<template>
  <p-input readonly />
</template>

Error state

preview
vue
<template>
  <p-input error />
</template>

Clearable

Add clear button to input with prop clearable.

preview
vue
<template>
  <p-input clearable />
</template>

Prepend & Append

Input has append & prepend feature to place content inside input field. But the content that can be inserted is limited, which is only an icon.

Prepend

preview
vue
<template>
  <p-input>
    <template #prepend>
      <IconAt />
    </template>
  </p-input>
  <p-input>
    <template #prepend>
      <IconEmail class="text-muted" />
    </template>
  </p-input>
</template>

Append

preview
vue
<template>
  <p-input>
    <template #append>
      <IconCheck class="text-success" />
    </template>
  </p-input>
  <p-input>
    <template #append>
      <p-spinner />
    </template>
  </p-input>
</template>

Accept Character

You can filter what characters are allowed to be input using the prop accept. The value can be RegExp, or using available preset.

preview
vue
<template>
  <p-input accept="0-9" placeholder="Numeric Only (Manual)" />
  <p-input accept="numeric" placeholder="Numeric Only (using Preset)" />
</template>

Available Preset

PresetRegExpAlias
numeric0-9num, digit
alphaA-Za-z
alpha-spaceA-Za-z\s
alpha-space-symbolA-Za-z\s!"#$%&'()*+,./:;<=>?@[\]^_`{|}~-non-numeric
alpha-numericA-Za-z0-9alpha-num
alpha-numeric-spaceA-Za-z0-9\salpha-num-space
alpha-numeric-space-symbolA-Za-z0-9\s!"#$%&'()*+,./:;<=>?@[\]^_`{|}~-text, alpha-num-space-symbol
numeric-space0-9\snum-space
numeric-space-symbol0-9\s!"#$%&'()*+,./:;<=>?@[\]^_`{|}~-non-alpha, num-space-symbol

Binding v-model

Input value can be binding with v-model.

preview

result:

-
vue
<template>
  <p-input v-model="result" />
</template>

API

Props

PropsTypeDefaultDescription
typeStringtextInput type
sizeStringmdInput size variant, valid value: xs, sm, md, lg
placeholderString-Input placeholder
disabledBooleanfalseDisabled state
readonlyBooleanfalseReadonly state
errorBooleanfalseError state
clearableBooleanfalseEnable clear button
acceptString-Whitelist character can be inputted
modelValueString-v-model value
container-classString or Array or Object-CSS class to add in the input container

Slots

NameDescription
prependContent to place icon inside of prepend input field
appendContent to place icon inside of append input field

Events

NameArgumentsDescription
changeStringEvent when value changed
clear-Event when clear button clicked

See Also

Released under the MIT License.