Vitral 0.2
Formulário

IconField

Um ícone dentro de um campo, no início ou no fim, com o texto afastado dele.

Importação

main.ts
import { IconField } from '@vitral/vue';

Início e fim

<script setup lang="ts">import { IconField, InputIcon, InputText, Label, StackPanel } from '@vitral/vue';import { ref } from 'vue'; const query = ref('');const email = ref('');</script> <template>    <StackPanel orientation="horizontal" spacing="0.75rem" align="start" wrap>        <StackPanel spacing="0.375rem" style="min-width: 16rem">            <Label for="if-search">Search</Label>            <IconField>                <InputIcon icon="search" />                <InputText id="if-search" v-model="query" placeholder="Search" />            </IconField>        </StackPanel>        <StackPanel spacing="0.375rem" style="min-width: 16rem">            <Label for="if-email">Email</Label>            <IconField>                <InputText id="if-email" v-model="email" type="email" />                <InputIcon icon="user" />            </IconField>        </StackPanel>    </StackPanel></template>

Os dois, com um ícone que significa algo

<script setup lang="ts">import { IconField, InputIcon, InputText, Label, StackPanel } from '@vitral/vue';</script> <template>    <StackPanel spacing="0.375rem" style="min-width: 16rem">        <Label for="if-both">Username</Label>        <IconField fluid>            <InputIcon icon="user" />            <InputText id="if-both" invalid />            <InputIcon icon="warning" label="Invalid" style="color: var(--vt-danger-color)" />        </IconField>    </StackPanel></template>

Outros campos

<script setup lang="ts">import { IconField, InputIcon, InputNumber, InputPassword } from '@vitral/vue';import { ref } from 'vue'; const amount = ref<number | null>(120);</script> <template>    <IconField>        <InputIcon icon="calendar" />        <InputNumber v-model="amount" aria-label="Days" />    </IconField>    <IconField>        <InputIcon icon="spinner" spin />        <InputPassword aria-label="Password" :feedback="false" />    </IconField></template>

API

Lido de packages/vue/src/components/IconField/types.ts, então diz o que o componente aceita de fato.

Props

NomeTipoDescrição
fluidbooleanOcupa toda a largura do contêiner.

Mais pt, dt e unstyled de BaseProps; veja pass-through e modo sem estilo.

Slots

NomeProps do slotDescrição
default—Um `<InputIcon>` antes do campo põe o ícone no início; depois dele, no fim.