# [Usage](../../../usage.md) > [Components](../basics.md) > [Form](form.md) > Input

Single-value text-like field for short input inside a [Form](form.md) schema. Use it for names, emails, numbers, dates and passwords; use [TextArea](text_area.md) for multi-line free text and [Select](select.md) when the value must come from a fixed option list.

![image](img/input_1.png)

```php
{!! 
  \KFramework\Components\Forms\Input::make()
  ->setLabel('label')
  ->setRequired()
  ->setPlaceholder('insert something here')
  ->setPostIcon('account-badge')
!!}
```

**End-to-end example:** profile form with a named, prefilled e-mail input.
```php
// Blade:
{!!
  \KFramework\Components\Forms\Input::make('email')
    ->setLabel('E-mail')
    ->setType('email')
    ->setRequired()
    ->setPlaceholder('you@example.com')
    ->setValue($user->email ?? null)
!!}

// Controller:
use KFramework\Components\Forms\Input;

$input = Input::make('email')
    ->setLabel('E-mail')
    ->setRequired()
    ->setPlaceholder('you@example.com');

return view('profile.edit', compact('input'));
```

---
## Usage

- Blade:
```php
{!! \KFramework\Components\Forms\Input::make() !!}
```
- Controller:
```php
Input::make()
```

---
## Standard attributes

- `uuid`
- `id`
- `classes`
- `extraAttributes`
- `name`
- `label`
- `type`:
  - `null` or not defined → Standard string input
  - `'number'` → Numeric input
  - `'date'` → Input date (`yyyy-mm-dd`) with FlatPickr selector
  - `'datetime-local'` → Input date and time (`yyyy-mm-dd hh:ii:ss`) with FlatPickr selector
  - `'time'` → for time input, setted as 24hr, with FlatPickr selector
  - `'password'` → Specific for inputting passwords
  - `'color'` → color picker
  - `'range'` or `'slider'` -> initializes a numeric input with a slider/range bar, but it works only if a `min` and a `max` are defined. Use `type` to switch widget; `min`/`max`/`step` below only apply to numeric and slider types.
- `value` — current submitted value; prefill with model data or old input.
- `default`
- `placeholder`
- `hidden`
- `required`
- `disabled`
- `preIcon`
- `postIcon`
- `columnSpan`
- `updateOnChange` — when true, changing the field refreshes dependent fields via AJAX.

See their usage and description [here](../basics.md).

---
## Component-specific attributes

### `min` | `->setMin()`  
  Set the minimum value when the `type` is `'number'`.  

| Types    | Default |
|----------|---------|
| `number` | `null`  |


### `max` | `->setMax()`  
  Set the maximum value when the `type` is `'number'`.  

| Types    | Default |
|----------|---------|
| `number` | `null`  |


### `step` | `->setStep()`  
  Set the step value of arrows when the `type` is `'number'`.  

| Types    | Default |
|----------|---------|
| `number` | `null`  |


_NOTE_: if the app locale is set to `it` the FlatPickr datetime or datetime-local will automatically get the italian date format: "dd/mm/yyyy hh:ii:ss", but then it must be converted in back-end with `DateTimeHelper` methods.

## See also
- [Components basics](../basics.md)
- [Form](form.md), [Select](select.md), [TextArea](text_area.md), [Checkbox](checkbox.md)
- [type](../shared_attributes/type.md), [value](../shared_attributes/value.md), [update_on_change](../shared_attributes/update_on_change.md)
