Input # 
The va-input component is intended to be used instead of the standard HTMl input or textarea.
Examples # 
Basic usage # 
By default va-input doesnโt have attributes, but can be combined with a placeholder and/or label.
Styles # 
There are tree styles for input: Default (outlined), solid, bordered.
Hint messages # 
Support single/multi line messages to give some hint for improve UX
Counter # 
Validation and error/success state # 
Support a simple validation using the rules prop. The prop accepts an array of callbacks. While validating rules, the current v-model value will be passed to the callback. This callback should return either true or a String, the error message. Also you can manually pass error/success prop to manage input state. Notice that we use immediate-validation props to show error message without requiring user interaction.
Slots # 
You can use slots for pass custom elements to input (inner or outer), such as icons or buttons etc.
Strict v-model bind # 
In case you want to strictly bind v-model to input value. This will prevent user from typing anything that doesn't match provided model-value. Can be used for validation or making masks.
Input Class # 
To assign a class directly to input, rather than its wrapper, use the input-class property. For example, you can use the build-in component class (or any other class you've created) to align the input text — va-text-center and va-text-right to align the center or right.
Customizable # 
You can create preset for your input components, but sometimes requirements can be out of boundaries of pre-defined presets. To solve this problem component allows to customize it with slots and its props.
Supported HTML attributes # 
Be default we support these HTML Input attributes: type, disabled, readonly, placeholder, pattern, inputmode, minlength, maxlength. Read more on the MDN.
Input types # 
With a type property you can set the type of the input which will render native <input type="text/password/search/etc" />.
Watch available types here (some types aren't supported or have implemented as a Vuestic UI component).
API # 
Props #
| Name | Description | Types | Default | 
|---|---|---|---|
| ariaResetLabel | The aria-label of the "reset" button | 
 | 
 | 
| autocomplete | 
 | - | |
| autofocus | 
 | 
 | |
| background | The color name of the background color | 
 | - | 
| clearable | Specifies whether the input should be clearable. | 
 | 
 | 
| clearableIcon | Sets the cleaning button icon. | 
 | 
 | 
| clearValue | Value which will be set after clear. | 
 | 
 | 
| color | Color of the component (theme string or  | 
 | 
 | 
| counter | Specifies whether the input should have a counter at the bottom. | 
 | 
 | 
| dirty | Sets the dirty state of the component | 
 | 
 | 
| disabled | Applies  | 
 | 
 | 
| error | Show component in error state. | 
 | - | 
| errorCount | Number of error messages displayed. | 
 | 
 | 
| errorMessages | Error messages for the component. | 
 | - | 
| immediateValidation | Sets the validation to be performed when the component is mounted | 
 | 
 | 
| innerLabel | If true label will be inside the input. | 
 | 
 | 
| inputAriaDescribedby | 
 | - | |
| inputAriaLabel | 
 | 
 | |
| inputAriaLabelledby | 
 | - | |
| inputClass | Class to be applied directly to the input element. | 
 | 
 | 
| inputmode | The inputmode global attribute is an enumerated attribute that specifies what kind of input mechanism would be most helpful for users entering content into the form control. | 
 | 
 | 
| label | Same as native  | 
 | 
 | 
| loading | Indicates that something is loading (spinner icon). | 
 | 
 | 
| maxLength | Maximum length of input. | 
 | - | 
| messages | Description messages for the component. | 
 | 
 | 
| modelValue | The value of the  | 
 | 
 | 
| name | Applies  | 
 | - | 
| pattern | Pattern for input in case you want to use native validation. | 
 | - | 
| placeholder | Placeholder text. | 
 | 
 | 
| preset | Named preset combination of component props. | 
 | - | 
| readonly | Doesn't look disabled, but acts like one. Mostly useful for wrapper components. | 
 | 
 | 
| requiredMark | Adds required mark to the label | 
 | 
 | 
| rules | Validation rules . | 
 | 
 | 
| stateful | Add possibility to work with component without setting  | 
 | 
 | 
| strictBindInputValue | In case you want to strictly bind v-model to input value. This will prevent user from typing anything that doesn't match your custom the mask. | 
 | 
 | 
| success | Show component in success state. | 
 | 
 | 
| tabindex | Sets the custom  | 
 | 
 | 
| type | Will be used as value for html  | 
 | 
 | 
Events #
| Name | Description | 
|---|---|
| blur | On blur.. The event argument is:  | 
| change | . The event argument is:  | 
| clear | Emitted when the clear button is clicked. | 
| click | On click.. The event argument is:  | 
| clickAppend | The event is triggered by clicking on the   | 
| clickAppendInner | The event is triggered by clicking on the   | 
| clickIcon | . The event argument is:  | 
| clickPrepend | The event is triggered by clicking on the   | 
| clickPrependInner | The event is triggered by clicking on the   | 
| focus | On focus.. The event argument is:  | 
| input | On value change. | 
| keydown | . The event argument is:  | 
| keypress | |
| keyup | . The event argument is:  | 
| update:dirty | Fires when the dirty state changes | 
| update:error | Fires when the error state changes | 
| update:errorMessages | Fires when the error messages change | 
| update:modelValue | The event is triggered when the component needs to change the model. Is also used by  | 
| updateError | Fires when the error state changes. The event argument is:  | 
| updateErrorMessages | Fires when the error messages change. The event argument is:  | 
Slots #
| Name | Description | 
|---|---|
| append | Slot for append content. It will be placed after input component. | 
| appendInner | Slot for append content. It will be placed inside input. | 
| prepend | Slot for prepend content. It will be placed before input component. | 
| prependInner | Slot for prepend content. It will be placed inside input. | 
Methods #
| Name | Description | 
|---|---|
| blur | Removes focus from input. | 
| focus | Sets focus on input. | 
| reset | Resets input value. | 
Css Variables #
| Name | Default Value | 
|---|---|
| --va-input-line-height | 20px | 
| --va-input-font-size | 1rem | 
| --va-input-font-weight | normal | 
| --va-input-font-style | normal | 
| --va-input-font-stretch | normal | 
| --va-input-letter-spacing | normal | 
| --va-input-disabled-opacity | 0.4 | 
VaInputWrapper:
:root,
:host {
  --va-input-wrapper-width: var(--va-form-element-default-width);
  --va-input-wrapper-color: var(--va-primary);
  --va-input-wrapper-background: var(--va-background-element, #f5f9fb);
  --va-input-wrapper-background-opacity: 1;
  --va-input-wrapper-border-width: var(--va-form-element-border-width);
  --va-input-wrapper-border-color: var(--va-background-border);
  --va-input-wrapper-border-radius: var(--va-form-element-border-radius);
  --va-input-wrapper-min-width: var(--va-form-element-min-width);
  --va-input-wrapper-display: inline-block;
  --va-input-wrapper-cursor: text;
  --va-input-wrapper-min-height: 36px;
  --va-input-wrapper-validation-background-opacity: 0.1;
  /* Counter container */
  --va-input-wrapper-counter-line-height: 1.5;
  --va-input-wrapper-counter-font-size: 0.8rem;
  --va-input-wrapper-counter-color: var(--va-secondary);
  /* Content Wrapper */
  --va-input-wrapper-horizontal-padding: 0.5rem;
  --va-input-wrapper-items-gap: 0.5rem;
  /* Validation */
  --va-input-wrapper-success-background: var(--va-input-success-color);
  --va-input-wrapper-error-background: var(--va-input-error-color);
}