Input
Input component
Simple Input
import { Input } from "@superui/styles";
<Input placeholder="Placeholder" variant="primary" />;
Input with label
import { Input } from "@superui/styles";
<label>
Example label
<Input placeholder="Placeholder" variant="primary" />
</label>;
Inside a form
import { Input, Button } from "@superui/styles";
export function Demo() {
const [values, setValues] = useState({
firstName: "",
lastName: "",
email: "",
tel: "",
password: "",
});
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
setValues({ ...values, [e.target.name]: e.target.value });
};
const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
alert(JSON.stringify(values));
};
return (
<div className="flex flex-col w-full p-4 bg-slate-500 bg-opacity-25 rounded-lg">
<form
onSubmit={handleSubmit}
className="flex flex-col gap-2 justify-center items-center"
>
<div className="flex flex-row gap-2">
<div className="flex flex-col gap-2">
<label htmlFor="firstName" className="text-black dark:text-white">
First Name
</label>
<Input
placeholder="First Name"
className="text-black dark:text-white"
variant="primary"
id="firstName"
name="firstName"
value={values.firstName}
onChange={handleChange}
/>
</div>
<div className="flex flex-col gap-2">
<label htmlFor="lastName" className="text-black dark:text-white">
Last Name
</label>
<Input
placeholder="Last Name"
className="text-black dark:text-white"
variant="primary"
id="lastName"
name="lastName"
value={values.lastName}
onChange={handleChange}
/>
</div>
</div>
<div className="flex flex-row gap-2">
<div className="flex flex-col gap-2">
<label htmlFor="email" className="text-black dark:text-white">
Email
</label>
<Input
placeholder="Email"
className="text-black dark:text-white"
variant="primary"
id="email"
name="email"
type={"email"}
value={values.email}
onChange={handleChange}
/>
</div>
<div className="flex flex-col gap-2">
<label htmlFor="tel" className="text-black dark:text-white">
Tel
</label>
<Input
placeholder="Tel"
className="text-black dark:text-white"
variant="primary"
id="tel"
name="tel"
type={"tel"}
value={values.tel}
onChange={handleChange}
/>
</div>
</div>
<label htmlFor="password" className="text-black dark:text-white">
Password
</label>
<Input
placeholder="Password"
className="text-black dark:text-white"
variant="primary"
id="password"
name="password"
type={"password"}
value={values.password}
onChange={handleChange}
/>
<Button type="submit" variant="primary">
Submit
</Button>
</form>
</div>
);
}
Props
This component has all the props infered from the HTML Input element, you can check all the props here MDN.
It also has the following props:
Name | Type | Default | Description |
---|---|---|---|
variant | String | primary | Select variant colors of the input. |
className | String | - | Extra class names for the input. Overwrites colliding classes. |