Input

Examples

Default

The default text input field.

<%= render "ui/input", type: "email", placeholder: "Email" %>

File

A file input field.

<div class="grid w-full max-w-sm items-center gap-1.5">
  <%= render "ui/label", for: "picture" do %>Picture<% end %>
  <%= render "ui/input", id: "picture", type: "file" %>
</div>

Disabled

A disabled input field.

<%= render "ui/input", type: "email", placeholder: "Email", disabled: true %>

With Label

Input field with an associated label.

<div class="grid w-full max-w-sm items-center gap-1.5">
  <%= render "ui/label", for: "email" do %>Email<% end %>
  <%= render "ui/input", type: "email", id: "email", placeholder: "Email" %>
</div>

With Button

Input field with an associated button.

<div class="flex w-full max-w-sm items-center space-x-2">
  <%= render "ui/input", type: "email", placeholder: "Email" %>
  <%= render "ui/button", content: "Subscribe" %>
</div>

Features

  • Custom styling with Tailwind classes
  • Form integration
  • Disabled state support
  • ARIA attributes for accessibility

API Reference

Input

Parameters

NameTypeDefaultDescription
typeStringtextThe type
placeholderStringnilPlaceholder text when no value is selected
valueStringnilThe current value
nameStringnilForm field name
idStringnilHTML id attribute

Group

Shared behavior for InputGroup component across ERB, ViewComponent, and Phlex implementations.