Skip to content

MazInput

MazInput is a standalone component that replaces the standard html input text with a beautiful design system. Many options like colors, sizes, disabled, loading, error, warning, valid states, error messages and icons are included.

INFO

Before you have to import the global css files in your project, follow instructions in Getting Started

Basic usage

Label

Password

Label

Placeholder

Required

Will make the input required and * charac to the label or the placeholder

label required *

Disabled

label disabled

Hint

Will replace the label, useful to display error message

An error occured

Icons

label icons

Use icon name

View code

When you use the properties right-icon, left-icon or icon with the icon name (string), the component uses <MazIcon name="..." /> component.

Check out how MazIcon works, see all available icons and download them to put them in your public folder.

html
<MazInput
  v-model="inputValue"
  label="label icons"
  left-icon="banknotes"
  right-icon="user"
/>

Use your own SVG icons

View code
html
<MazInput
  v-model="inputValue"
  label="label icons"
>
  <template #left-icon>
    <svg width="1em" height="1em" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
      <path d="M2.25 18.75C7.71719 18.75 13.0136 19.4812 18.0468 20.8512C18.7738 21.0491 19.5 20.5086 19.5 19.7551V18.75M3.75 4.5V5.25C3.75 5.66421 3.41421 6 3 6H2.25M2.25 6V5.625C2.25 5.00368 2.75368 4.5 3.375 4.5H20.25M2.25 6V15M20.25 4.5V5.25C20.25 5.66421 20.5858 6 21 6H21.75M20.25 4.5H20.625C21.2463 4.5 21.75 5.00368 21.75 5.625V15.375C21.75 15.9963 21.2463 16.5 20.625 16.5H20.25M21.75 15H21C20.5858 15 20.25 15.3358 20.25 15.75V16.5M20.25 16.5H3.75M3.75 16.5H3.375C2.75368 16.5 2.25 15.9963 2.25 15.375V15M3.75 16.5V15.75C3.75 15.3358 3.41421 15 3 15H2.25M15 10.5C15 12.1569 13.6569 13.5 12 13.5C10.3431 13.5 9 12.1569 9 10.5C9 8.84315 10.3431 7.5 12 7.5C13.6569 7.5 15 8.84315 15 10.5ZM18 10.5H18.0075V10.5075H18V10.5ZM6 10.5H6.0075V10.5075H6V10.5Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
    </svg>
  </template>
  <template #right-icon>
    <svg width="1em" height="1em" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
      <path d="M15.75 6C15.75 8.07107 14.071 9.75 12 9.75C9.9289 9.75 8.24996 8.07107 8.24996 6C8.24996 3.92893 9.9289 2.25 12 2.25C14.071 2.25 15.75 3.92893 15.75 6Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
      <path d="M4.5011 20.1182C4.5714 16.0369 7.90184 12.75 12 12.75C16.0982 12.75 19.4287 16.0371 19.4988 20.1185C17.216 21.166 14.6764 21.75 12.0003 21.75C9.32396 21.75 6.78406 21.1659 4.5011 20.1182Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
    </svg>
  </template>
</MazInput>

Use vite-svg-loader

View code
vue
<template>
  <MazInput
    v-model="inputValue"
    label="label icons"
    :left-icon="BanknotesIcon"
    :right-icon="UserIcon"
  />
</template>

<script lang="ts" setup>
  import { ref } from 'vue'
  import MazInput from 'maz-ui/components/MazInput'
  import BanknotesIcon from 'maz-ui/icons/banknotes.svg'
  import UserIcon from 'maz-ui/icons/user.svg'

  const inputValue = ref('value')
</script>

Auto focus

Will focus automatically the component

label auto-focus

No radius

Will remove the border radius

label no-radius

Debounce

The value emit by the input will be delayed, usefull for searching

The attribute debounce is in milliseconds

If the debounce is true, the default debounce delay is 500ms

label debounce

modelValue: value

Sizes

Use the attribute size with a value in mini, xs, sm, md, lg, xl

sm
md
lg
xl

Colors

TIP

Click on each input to show colors

INFO

Use the attribute color with a value in this list, the component will use this color

primary
secondary
info
success
warning
danger
white
black

Rounded Size

Use the attribute rounded-size with a value in 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'

State

Danger

Label


Warning

Label


Success

Label

Valid Button

Warning

Label

Props, Event & Slots

Props

Prop nameDescriptionTypeValuesDefault
styleThe style of the componentTSIndexedAccessType-undefined
classThe class of the componentTSIndexedAccessType-undefined
modelValueThe value of the input
@model true
union-undefined
placeholderThe placeholder of the inputstring-undefined
labelThe label of the componentstring-undefined
nameThe attribut name of the inputstring-undefined
colorThe color of the componentColor-'primary'
typeThe attribut type of the inputunion-'text'
requiredThe attribut required of the inputboolean-false
disabledThe attribut disabled of the inputboolean-false
readonlyThe attribut readonly of the inputboolean-false
idThe attribut id of the inputstring-undefined
errorEnable error state UIboolean-false
successEnable success state UIboolean-false
warningEnable warning state UIboolean-false
hintThe hint will replace the labelstring-undefined
inputClassesThe class of the input wrapper div elementstring-undefined
noBorderRemove the border of the inputboolean-false
noRadiusRemove the radius of the inputboolean-false
inputmodeThe attribut inputmode of the inputTSIndexedAccessType-'text'
sizeThe size of the componentSize-'md'
debounceEnable debounce on input - can be boolean | number, if it is a number, it is used for the debounce delayunion-false
debounceDelayThe delay of the debounce
@deprecated use debounce instead
number-500
validButtonDisplay the valid button - this button has type="submit"boolean-false
validButtonLoadingDisplay the loading state on the valid buttonboolean-false
autoFocusif true the input will be focus on renderboolean-false
borderActiveif true the component has the colorized border by default, not only on focusboolean-false
leftIconThe left icon of the input
@type {string | FunctionalComponent&lt;SVGAttributes&gt; | ComponentPublicInstance | Component}
union-undefined
rightIconThe right icon of the input
@type {string | FunctionalComponent&lt;SVGAttributes&gt; | ComponentPublicInstance | Component}
union-undefined
roundedSizeSize of the rounded
@values 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'
union-undefined
blockThe input will be displayed in full widthboolean-

Events

Event namePropertiesDescription
clickevent Event - click eventEvent emitted when the input is clicked
update:model-valuevalue string | number | null | undefined | boolean - the new valueEvent emitted when the input value change
focusevent Event - focus eventEvent emitted when the input is focused
blurevent Event - blur eventEvent emitted when the input is blurred
changeevent Event - change eventEvent emitted when the input is changed

Slots

NameDescriptionBindings
left-iconThe icon to display on the left of the input
right-iconThe icon to display on the right of the input
valid-buttonReplace the valid button by your own