FieldGroup
Groups multiple Field elements with consistent vertical spacing.
Quick Start
<%= kui(:field_group) do %>
<%= kui(:field) do %>
<%= kui(:field, :label) { "First name" } %>
<%= kui(:input, name: "first_name") %>
<% end %>
<%= kui(:field) do %>
<%= kui(:field, :label) { "Last name" } %>
<%= kui(:input, name: "last_name") %>
<% end %>
<% end %>
Locals
| Local | Type | Default |
|---|---|---|
css_classes: |
String | "" |
**component_options |
Hash | {} |
Usage
Basic Form
Wrap fields in a FieldGroup for consistent gap-7 spacing:
<%= kui(:field_group) do %>
<%= kui(:field) do %>
<%= kui(:field, :label) { "Email" } %>
<%= kui(:input, name: "email", type: "email") %>
<% end %>
<%= kui(:field) do %>
<%= kui(:field, :label) { "Password" } %>
<%= kui(:input, name: "password", type: "password") %>
<% end %>
<% end %>
Nested Groups
Inner FieldGroups automatically use tighter gap-4 spacing:
<%= kui(:field_group) do %>
<%= kui(:field_group) do %>
<%= kui(:field) do %>
<%= kui(:field, :label) { "Street" } %>
<%= kui(:input, name: "street") %>
<% end %>
<%= kui(:field) do %>
<%= kui(:field, :label) { "City" } %>
<%= kui(:input, name: "city") %>
<% end %>
<% end %>
<% end %>
Theme
Kiso::Themes::FieldGroup = ClassVariants.build(
base: "group/field-group @container/field-group flex w-full flex-col gap-7 " \
"[&>[data-slot=field-group]]:gap-4"
)
Accessibility
| Attribute | Value |
|---|---|
| Element | <div> |
data-slot |
"field-group" |
FieldGroup is a layout wrapper with no semantic role. For grouping related controls semantically (e.g., checkbox or radio groups), use FieldSet instead.