kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
3.2 KiB
3.2 KiB
import Input from "~/components/ui/Input.vue"
Input
Inputs are areas in which users can enter information. In Funkwhale, these mostly take the form of search fields.
Prop | Data type | Required? | Description |
---|---|---|---|
placeholder |
String | No | The placeholder text that appears when the input is empty. |
icon |
String | No | The Bootstrap icon to show on the input. |
v-model |
String | Yes | The text entered in the input. |
You can link a user's input to form data by referencing the data in a v-model
directive.
<Input v-model="value" placeholder="Your favorite animal" />
Input icons
Add a Bootstrap icon to an input to make its purpose more visually clear.
<Input v-model="value" icon="bi-search" />
Label slot
<Input>
<template #label>
User name
</template>
</Input>
User name
If you just have a string, we have a convenience prop, so instead you can write:
<Input label="User name" />
Input-right slot
You can add a template on the right-hand side of the input to guide the user's input.
<Input v-model="value" placeholder="Search">
<template #input-right>
suffix
</template>
</Input>
suffix
Presets
Search
<Input search />
Password
<Spacer :size="64" />
<Layout form stack>
<Input label="User name" />
<Input password label="Password" />
<Layout flex>
<Button primary> Submit </Button>
<Button> Cancel </Button>
</Layout>
</Layout>
Submit
Cancel
::: tip
We use the spacer to simulate the baseline alignment on page layouts (64px between sections)
:::
Value
<Input v-model="value"/>
<Input v-model="value"/>
Fallthrough attributes
If you add attributes that are no props, they will be added to the component:
<Input required
field-id="password-field"
/>
<Input required field-id="password-field" />