Input

Text input fields for forms with label, hint, and error support.

Basic Input

A simple text input with label.

<%= render Rvk::InputComponent.new(
  name: "email",
  label: "Email address",
  placeholder: "you@example.com"
) %>

Input Types

Different input types for various data.

<%= render Rvk::InputComponent.new(name: "text", type: :text, label: "Text", placeholder: "Enter text") %>
<%= render Rvk::InputComponent.new(name: "email", type: :email, label: "Email", placeholder: "you@example.com") %>
<%= render Rvk::InputComponent.new(name: "password", type: :password, label: "Password", placeholder: "••••••••") %>
<%= render Rvk::InputComponent.new(name: "number", type: :number, label: "Number", placeholder: "0") %>

Sizes

Inputs come in 3 sizes: sm, md (default), and lg.

<%= render Rvk::InputComponent.new(name: "sm", size: :sm, label: "Small", placeholder: "Small input") %>
<%= render Rvk::InputComponent.new(name: "md", size: :md, label: "Medium", placeholder: "Medium input") %>
<%= render Rvk::InputComponent.new(name: "lg", size: :lg, label: "Large", placeholder: "Large input") %>

With Hint Text

Add helper text below the input.

This will be your public display name.

<%= render Rvk::InputComponent.new(
  name: "username",
  label: "Username",
  hint: "This will be your public display name.",
  placeholder: "johndoe"
) %>

Error State

Display validation errors.

Please enter a valid email address.

<%= render Rvk::InputComponent.new(
  name: "email",
  type: :email,
  label: "Email",
  error: "Please enter a valid email address.",
  value: "invalid-email"
) %>

Required Field

Mark fields as required.

<%= render Rvk::InputComponent.new(
  name: "name",
  label: "Full Name",
  required: true,
  placeholder: "John Doe"
) %>

Floating Label

Material Design style floating labels.

<%= render Rvk::InputComponent.new(
  name: "floating_email",
  label: "Email address",
  label_style: :floating
) %>

Disabled State

Disabled inputs are non-interactive.

<%= render Rvk::InputComponent.new(
  name: "disabled",
  label: "Disabled Input",
  disabled: true,
  value: "Cannot edit this"
) %>

Props

Prop Type Default Description
name String required Form field name
type Symbol :text Input type: :text, :email, :password, :number, etc.
label String nil Label text
label_style Symbol :stacked Label style: :stacked or :floating
size Symbol :md Input size: :sm, :md, :lg
hint String nil Helper text below input
error String nil Error message
required Boolean false Mark as required
disabled Boolean false Disable the input