Multi-line text control.
<label class="ta" for="ta-1">
<span class="ta__label">Message</span>
<textarea class="ta__input" id="ta-1" placeholder="Tell us what you think..." rows="4" style="--accent:#D9C8F0;resize:vertical;"></textarea>
</label>
<style>
.ta { display: block; font: 14px system-ui, sans-serif; color: #241430; max-width: 300px; }
.ta__label { display: block; margin-bottom: 6px; font-weight: 500; }
.ta__req { color: #241430; }
.ta__input { width: 100%; box-sizing: border-box; padding: 10px 12px; font: inherit; color: #241430; background: #FAF7F2; border: 1.5px solid #24143040; border-radius: 8px; }
.ta__input:focus-visible { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent); }
</style><label class="block max-w-[300px] font-sans text-sm text-[#241430]" for="ta-tw-1">
<span class="block mb-1.5 font-medium">Message</span>
<textarea id="ta-tw-1" placeholder="Tell us what you think..." rows="4"
class="w-full box-border px-3 py-2.5 bg-[#FAF7F2] border-[1.5px] border-[#24143040] rounded-lg focus-visible:outline-none" style="resize:vertical;border-color:#D9C8F0;"></textarea>
</label>export function Textarea({
label = "Message",
placeholder = "Tell us what you think...",
rows = 4,
resize = "vertical",
accent = "#D9C8F0",
required = false,
}) {
return (
<label style={{ display: "block", maxWidth: 300, fontFamily: "system-ui, sans-serif", fontSize: 14, color: "#241430" }}>
<span style={{ display: "block", marginBottom: 6, fontWeight: 500 }}>{label}{required && " *"}</span>
<textarea placeholder={placeholder} rows={rows} required={required} style={{
width: "100%", boxSizing: "border-box", padding: "10px 12px", font: "inherit", color: "#241430",
background: "#FAF7F2", border: `1.5px solid ${accent}`, borderRadius: 8, resize,
}} />
</label>
);
}