Skip to content

NumberInput

A number input component.

Examples

Value:

Preact

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

return (
  <>
    <NumberInput
      value={value}
      required
      min="0"
      max="100"
      step="0.1"
      placeholder="Example: 5"
      onInput={(e) => setValue(e.currentTarget.value)} />
    <div style="margin-top: 0.5em">
      Value: {{value}}
    </div>
  </>
);

Vue.js x Custom Element

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

<phi-number-input
  :value="value"
  required
  min="0"
  max="100"
  step="0.1"
  placeholder="Example: 5"
  @input="value = $event.target.value" />
<div style="margin-top: 0.5em">
  Value: {{value}}
</div>

Vanilla JS x CSS

html
<input
  id="input"
  type="number"
  class="phi-number-input"
  required
  min="0"
  max="100"
  step="0.1"
  placeholder="Example: 5" />
<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

Reference

Preact

Properties

PropertyTypeDefaultDescription
valuestring(required)Input value
placeholderstring""Placeholder string
requiredbooleanfalseWhether non-empty value is allowed
minnumber|undefinedundefinedMinimum allowed value
maxnumber|undefinedundefinedMaximum allowed value
stepnumber|undefinedundefinedMinimum allowed step
errorbooleanfalseToggle error variant
onInputstring => voidfalseA handler function called on input change

Custom Element

Props / Attrs

SlotCategoryTypeDefault
valueProp/Attrnumber|undefinedundefined
placeholderProp/Attrstring""
requiredProp/Attrbooleanfalse
minProp/Attrnumber|undefinedundefined
maxProp/Attrnumber|undefinedundefined
stepProp/Attrnumber|undefinedundefined
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-number-inputCore styles
errorState variants