# [Usage](../../../usage.md) > [Components and standard attributes](../basics.md) > render

---
`render` | `->setRender()`

Set if the component is rendered, when disabled the component produces no output.

| Types     | Default |
|-----------|---------|
| `boolean` | `true`  |

Skips rendering entirely: the component returns an empty string, and inside `schema` the field is omitted with no wrapper markup, no validation rules and no field-UUID context collected. When omitted (`true`) the component renders normally.
Accepts a Closure for conditional rendering; the value is resolved after callback execution. For permission gating prefer `authorize`.

### Example
Blade:
```php
{!! \KFramework\Components\Forms\Input::make()->setName('token')->setRender(false) !!}
```
Controller:
```php
Input::make()->setName('token')->setRender(false);
Button::make('Save')->setRender(fn($component) => $component->getCustomProperty('showSave'));
```

### Interaction / tips
- Contrast with `hidden` (../shared_attributes/hidden.md) (keeps the field in DOM / data) and `authorize` (../shared_attributes/authorize.md) / `authorizeRole` (../shared_attributes/authorizeRole.md) (security): `render` leaves no trace in the output.
- Toggle dynamically with `updateOnChange` (../shared_attributes/update_on_change.md) or `onLoadChange` (../shared_attributes/on_load_change.md).
- Keep `name` (../shared_attributes/name.md) set so conditionally rendered inputs still map correctly when shown.

See also: [hidden](hidden.md), [disabled](disabled.md), [authorize](authorize.md), [authorizeRole](authorizeRole.md), [schema](schema.md), [basics](../basics.md), [Input](../forms/input.md).
