What this family solves
Broad text-entry family spanning native text controls, Marwes-default select fields, OTP entry, and manual-review-heavy rich text.
Marwes documentation
Broad text-entry family spanning native text controls, Marwes-default select fields, OTP entry, and manual-review-heavy rich text.
Broad text-entry family spanning native text controls, Marwes-default select fields, OTP entry, and manual-review-heavy rich text.
Purpose-first fields cover common text-entry and selection use cases.
Base text input with validation
Email input with semantic browser attributes
Password input with visibility toggle
Search input with clear action
Dropdown select with native feel
Multi-line text input
One-time passcode input
Choose an adapter in the verified examples. The inventory below reflects each framework package exactly.
@marwes-ui/reactCurrencyField, DateOfBirthField, DropdownField, EmailField, InputField, InputOtpField, PasswordField, PhoneField, RichTextField, SearchField, SelectField, TextareaField, URLField, ZipCodeField
CurrencyFieldProps, DateOfBirthFieldProps, DropdownFieldProps, EmailFieldProps, InputFieldProps, InputOtpFieldProps, PasswordFieldProps, PhoneFieldProps, RichTextFieldProps, SearchFieldProps, SelectAppearance, SelectFieldProps, SelectFieldVariant, SelectOption, TextareaFieldProps, URLFieldProps, ZipCodeFieldProps
@marwes-ui/vueCurrencyField, DateOfBirthField, DropdownField, EmailField, InputField, InputOtpField, PasswordField, PhoneField, RichTextField, SearchField, SelectField, TextareaField, URLField, ZipCodeField
CurrencyFieldProps, DateOfBirthFieldProps, DropdownFieldProps, EmailFieldProps, InputFieldProps, InputOtpFieldProps, PasswordFieldProps, PhoneFieldProps, RichTextFieldProps, SearchFieldProps, SelectAppearance, SelectFieldProps, SelectFieldVariant, SelectOption, TextareaFieldProps, URLFieldProps, ZipCodeFieldProps
@marwes-ui/svelteCurrencyField, DateOfBirthField, DropdownField, EmailField, InputField, InputOtpField, PasswordField, PhoneField, RichTextField, SearchField, SelectField, TextareaField, URLField, ZipCodeField
CurrencyFieldProps, DateOfBirthFieldProps, DropdownFieldProps, EmailFieldProps, InputFieldProps, InputOtpFieldProps, PasswordFieldProps, PhoneFieldProps, RichTextFieldProps, SearchFieldProps, SelectAppearance, SelectFieldProps, SelectFieldVariant, SelectOption, TextareaFieldProps, URLFieldProps, ZipCodeFieldProps
These examples come from the same fixtures verified by the repository checks.
import { CurrencyField, EmailField, PhoneField } from "@marwes-ui/react"
import { useState } from "react"
export function Example() {
const [amount, setAmount] = useState("")
const [email, setEmail] = useState("")
const [phone, setPhone] = useState("")
return (
<>
<CurrencyField
label="Amount"
currency="USD"
input={{ placeholder: "0.00", value: amount, onValueChange: setAmount }}
/>
<EmailField
label="Email"
input={{ placeholder: "you@example.com", value: email, onValueChange: setEmail }}
/>
<PhoneField
label="Phone"
input={{ placeholder: "+1 (555) 000-0000", value: phone, onValueChange: setPhone }}
/>
</>
)
}<script setup lang="ts">
import { ref } from "vue"
import { CurrencyField, EmailField, PhoneField } from "@marwes-ui/vue"
const amount = ref("")
const email = ref("")
const phone = ref("")
</script>
<template>
<CurrencyField
v-model="amount"
label="Amount"
currency="USD"
:input="{ placeholder: '0.00' }"
/>
<EmailField
v-model="email"
label="Email"
:input="{ placeholder: 'you@example.com' }"
/>
<PhoneField
v-model="phone"
label="Phone"
:input="{ placeholder: '+1 (555) 000-0000' }"
/>
</template><script lang="ts">
import { CurrencyField, EmailField, PhoneField } from "@marwes-ui/svelte"
let amount = $state("")
let email = $state("")
let phone = $state("")
</script>
<CurrencyField
label="Amount"
currency="USD"
value={amount}
input={{
placeholder: "0.00",
oninput: (event: Event & { currentTarget: HTMLInputElement }) =>
(amount = event.currentTarget.value),
}}
/>
<EmailField
label="Email"
value={email}
input={{
placeholder: "you@example.com",
oninput: (event: Event & { currentTarget: HTMLInputElement }) =>
(email = event.currentTarget.value),
}}
/>
<PhoneField
label="Phone"
value={phone}
input={{
placeholder: "+1 (555) 000-0000",
oninput: (event: Event & { currentTarget: HTMLInputElement }) =>
(phone = event.currentTarget.value),
}}
/>Input uses Marwes preset CSS and theme variables. Customize it through the theme passed to MarwesProvider; do not add a second component stylesheet. See the theming guide for configuration and token details.