Dropdown
Dropdown menus for actions, navigation, and selection.
Basic Dropdown
A simple dropdown menu with items.
<%= render Rvk::DropdownComponent.new do |dropdown| %>
<% dropdown.with_trigger do %>
<%= render Rvk::ButtonComponent.new do %>
Options
<%= render Rvk::IconComponent.new(name: :chevron_down, size: :sm) %>
<% end %>
<% end %>
<% dropdown.with_menu do %>
<%= render Rvk::Dropdown::ItemComponent.new(href: "#") { "Edit" } %>
<%= render Rvk::Dropdown::ItemComponent.new(href: "#") { "Duplicate" } %>
<%= render Rvk::Dropdown::ItemComponent.new(href: "#") { "Archive" } %>
<%= render Rvk::Dropdown::DividerComponent.new %>
<%= render Rvk::Dropdown::ItemComponent.new(href: "#", destructive: true) { "Delete" } %>
<% end %>
<% end %>
With Icons
Add icons to menu items.
<%= render Rvk::Dropdown::ItemComponent.new(href: "#") do %>
<%= render Rvk::IconComponent.new(name: :pencil, size: :sm) %>
Edit
<% end %>
Positions
Control where the menu appears.
<%= render Rvk::DropdownComponent.new(position: :bottom_start) do |dropdown| %>
...
<% end %>
<%= render Rvk::DropdownComponent.new(position: :bottom_end) do |dropdown| %>
...
<% end %>
Icon Button Trigger
Common pattern for action menus.
Row item
<%= render Rvk::DropdownComponent.new(position: :bottom_end) do |dropdown| %>
<% dropdown.with_trigger do %>
<%= render Rvk::IconButtonComponent.new do %>
<%= render Rvk::IconComponent.new(name: :ellipsis_vertical) %>
<% end %>
<% end %>
<% dropdown.with_menu do %>
<%= render Rvk::Dropdown::ItemComponent.new(href: "#") { "View" } %>
<%= render Rvk::Dropdown::ItemComponent.new(href: "#") { "Edit" } %>
<%= render Rvk::Dropdown::DividerComponent.new %>
<%= render Rvk::Dropdown::ItemComponent.new(href: "#", destructive: true) { "Delete" } %>
<% end %>
<% end %>
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| position | Symbol | :bottom_start | Menu position: :bottom_start, :bottom_end |
Sub-components
| Component | Description |
|---|---|
| Rvk::Dropdown::ItemComponent | Menu item link with optional destructive styling |
| Rvk::Dropdown::DividerComponent | Horizontal divider between items |