Basic
Basic usage of radio.
Code
<%= render Hakumi::Space::Component.new(size: :middle) do |space| %>
<% space.with_item do %>
<%= render Hakumi::Radio::Component.new(name: "basic-radio", value: "a", text: "Option A", checked: true) %>
<% end %>
<% space.with_item do %>
<%= render Hakumi::Radio::Component.new(name: "basic-radio", value: "b", text: "Option B") %>
<% end %>
<% end %>
Group
Generate a radio group from options.
Code
<%= render Hakumi::Radio::Group::Component.new(
name: "group-radio",
value: "pear",
options: [
{ label: "Apple", value: "apple" },
{ label: "Pear", value: "pear" },
{ label: "Orange", value: "orange" }
]
) %>
Button Style
Radio group rendered as buttons.
Button (outline):
Solid:
Code
<%= render Hakumi::Space::Component.new(direction: :vertical, size: :middle) do |space| %>
<% space.with_item do %>
<p style="margin-bottom: 8px; color: var(--color-text-secondary);">Button (outline):</p>
<%= render Hakumi::Radio::Group::Component.new(
name: "button-radio-outline",
value: "left",
variant: :button,
options: [
{ label: "Left", value: "left" },
{ label: "Center", value: "center" },
{ label: "Right", value: "right" }
]
) %>
<% end %>
<% space.with_item do %>
<p style="margin-bottom: 8px; color: var(--color-text-secondary);">Solid:</p>
<%= render Hakumi::Radio::Group::Component.new(
name: "button-radio-solid",
value: "center",
variant: :solid,
options: [
{ label: "Left", value: "left" },
{ label: "Center", value: "center" },
{ label: "Right", value: "right" }
]
) %>
<% end %>
<% end %>
Sizes
Radio button group sizes.
Code
<%= render Hakumi::Space::Component.new(direction: :vertical, size: :middle) do |space| %>
<% space.with_item do %>
<%= render Hakumi::Radio::Group::Component.new(
name: "size-radio-small",
value: "Small",
variant: :button,
size: :small,
options: [ "Small", "Medium", "Large" ]
) %>
<% end %>
<% space.with_item do %>
<%= render Hakumi::Radio::Group::Component.new(
name: "size-radio-middle",
value: "Medium",
variant: :button,
size: :middle,
options: [ "Small", "Medium", "Large" ]
) %>
<% end %>
<% space.with_item do %>
<%= render Hakumi::Radio::Group::Component.new(
name: "size-radio-large",
value: "Large",
variant: :button,
size: :large,
options: [ "Small", "Medium", "Large" ]
) %>
<% end %>
<% end %>
Disabled
Disabled radios and groups.
Individual options disabled:
Individual options disabled (default style):
Code
<%= render Hakumi::Space::Component.new(direction: :vertical, size: :middle) do |space| %>
<% space.with_item do %>
<%= render Hakumi::Radio::Component.new(name: "disabled-radio", value: "a", text: "Disabled", disabled: true) %>
<% end %>
<% space.with_item do %>
<%= render Hakumi::Radio::Group::Component.new(
name: "disabled-group",
value: "left",
variant: :button,
disabled: true,
options: [ "Left", "Right" ]
) %>
<% end %>
<% space.with_item do %>
<p style="margin-bottom: 8px; color: var(--color-text-secondary);">Individual options disabled:</p>
<%= render Hakumi::Radio::Group::Component.new(
name: "individual-disabled-buttons",
value: "beijing",
variant: :button,
options: [
{ label: "Hangzhou", value: "hangzhou" },
{ label: "Shanghai", value: "shanghai", disabled: true },
{ label: "Beijing", value: "beijing" },
{ label: "Chengdu", value: "chengdu", disabled: true }
]
) %>
<% end %>
<% space.with_item do %>
<p style="margin-bottom: 8px; color: var(--color-text-secondary);">Individual options disabled (default style):</p>
<%= render Hakumi::Radio::Group::Component.new(
name: "individual-disabled-default",
value: "apple",
options: [
{ label: "Apple", value: "apple" },
{ label: "Pear", value: "pear", disabled: true },
{ label: "Orange", value: "orange" }
]
) %>
<% end %>
<% end %>
Vertical
Vertical radio group layout.
Code
<%= render Hakumi::Radio::Group::Component.new(
name: "vertical-radio",
value: "b",
direction: :vertical,
options: [
{ label: "Option A", value: "a" },
{ label: "Option B", value: "b" },
{ label: "Option C", value: "c" }
]
) %>