Skip to content

TextInput

A text input component.

Examples

Value: ""

Preact

jsx
const [value, setValue] = useState("");

return (
  <>
    <TextInput
      value={value}
      placeholder="Jot something down"
      maxlength="10"
      onInput={(e) => setValue(e.currentTarget.value)} />
    <div style="margin-top: 0.5em">
      Value: {{JSON.stringify(value)}}
    </div>
  </>
);

Vue.js x Custom Element

html
<script setup>
import { ref } from "vue";
const value = ref("");
</script>

<phi-text-input
  :value="value"
  maxlength="10"
  placeholder="Jot something down"
  @input="value = $event.target.value" />
<div style="margin-top: 0.5em">
  Value: {{JSON.stringify(value)}}
</div>

Vanilla JS x CSS

html
<input
  id="input"
  type="text"
  class="phi-text-input md"
  placeholder="Jot something down"
  maxlength="10" />
<div id="value" style="margin-top: 0.5em">
  Value: ""
</div>

<script>
function onInput (e) {
  const value = e.currentTarget.value;
  document.getElementById("value").innerHTML = `Value: "${value}"`;
}
document.getElementById("input").addEventListener("input", onInput);
</script>

State variants

error variant

Size variants

sm variant

Reference

Preact

Properties

PropertyTypeDefaultDescription
valuestring(required)Input value
placeholderstring""Placeholder string
requiredbooleanfalseWhether non-empty string is allowed
minlengthnumber|undefinedundefinedMinimum allowed length of string
maxlengthnumber|undefinedundefinedMaximum allowed length of string
size'md'|'sm'"'md'"Select size variants
errorbooleanfalseToggle error variant
onInputstring => voidfalseA handler function called on input change

Custom Element

Props / Attrs

SlotCategoryTypeDefault
valueProp/Attrstring""
placeholderProp/Attrstring""
requiredProp/Attrbooleanfalse
minlengthProp/Attrnumber|undefinedundefined
maxlengthProp/Attrnumber|undefinedundefined
sizeProp/Attr'md'|'sm'"'md'"
errorProp/Attrbooleanfalse

Events

Following events are confirmed to work as expected. Some other events may also work.

EventDescription
inputEmitted on input change

Pure-CSS

Classes

Class
phi-textCore styles
md, smSize variants
errorState variants