- Accordion
- Alert
- Avatar PRO
- Avatar Group PRO
- Badge
- Blank Slate PRO
- Breadcrumb
- Breakpoint Debug PRO
- Button
- Button Group
- Callout PRO
- Card
- Carousel
- Close Button
- Container
- Copy to Clipboard PRO
- Divider PRO
- Dropdown
- Errors PRO
- Feed PRO
- Flash PRO
- Form Field PRO
- Header PRO
- Heading
- Heading with Anchor PRO
- List Group
- Modal
- Nav
- Navbar
- Offcanvas
- Pagination
- Pricing Panel PRO
- Progress
- Progress Circular PRO
- Rating Group PRO
- Ribbon PRO
- Spinner
- Stat PRO
- Stepper PRO
- Table
- Table of Contents PRO
- Team Member PRO
- Testimonial PRO
- Toast
Dropdown
Description
Toggle between multiple options within a menu that appears when activated, providing a versatile interface element for website navigation and selection.
FREE
This component is available for free.
It implements the Bootstrap Dropdown component.
See the installation instructions below for more details.
Arguments
| Name | Default | Type | Description |
|---|---|---|---|
html_attributes
|
{}
|
Hash
|
Any attributes for the used html wrapper tag |
Examples
Default
<%= render Railsboot::DropdownComponent.new do |dropdown| %>
<% dropdown.with_action(text: "Dropdown") %>
<% dropdown.with_link(text: "Link 1", href: "#") %>
<% dropdown.with_link(text: "Link 2", href: "#") %>
<% dropdown.with_link(text: "Link 3", href: "#") %>
<% end %>
<div class="dropdown">
<button type="button" data-bs-toggle="dropdown" aria-expanded="false" class="btn btn-primary dropdown-toggle">
Dropdown
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="#">Link 1</a>
</li>
<li>
<a class="dropdown-item" href="#">Link 2</a>
</li>
<li>
<a class="dropdown-item" href="#">Link 3</a>
</li>
</ul>
</div>
With variant
<%= render Railsboot::DropdownComponent.new do |dropdown| %>
<% dropdown.with_action(text: "Dropdown", variant: "success") %>
<% dropdown.with_link(text: "Link 1", href: "#") %>
<% dropdown.with_link(text: "Link 2", href: "#") %>
<% dropdown.with_link(text: "Link 3", href: "#") %>
<% end %>
<div class="dropdown">
<button type="button" data-bs-toggle="dropdown" aria-expanded="false" class="btn btn-success dropdown-toggle">
Dropdown
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="#">Link 1</a>
</li>
<li>
<a class="dropdown-item" href="#">Link 2</a>
</li>
<li>
<a class="dropdown-item" href="#">Link 3</a>
</li>
</ul>
</div>
With dropdown link
<%= render Railsboot::DropdownComponent.new do |dropdown| %>
<% dropdown.with_action(type: "link", text: "Dropdown", variant: "link") %>
<% dropdown.with_link(text: "Link 1", href: "#") %>
<% dropdown.with_link(text: "Link 2", href: "#") %>
<% dropdown.with_link(text: "Link 3", href: "#") %>
<% end %>
<div class="dropdown">
<a data-bs-toggle="dropdown" aria-expanded="false" class="btn btn-link dropdown-toggle" href="">
Dropdown
</a>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="#">Link 1</a>
</li>
<li>
<a class="dropdown-item" href="#">Link 2</a>
</li>
<li>
<a class="dropdown-item" href="#">Link 3</a>
</li>
</ul>
</div>
With active link item
<%= render Railsboot::DropdownComponent.new do |dropdown| %>
<% dropdown.with_action(text: "Dropdown") %>
<% dropdown.with_link(text: "Link 1", href: "#") %>
<% dropdown.with_link(text: "Link 2", href: "#", active: true) %>
<% dropdown.with_link(text: "Link 3", href: "#") %>
<% end %>
<div class="dropdown">
<button type="button" data-bs-toggle="dropdown" aria-expanded="false" class="btn btn-primary dropdown-toggle">
Dropdown
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="#">Link 1</a>
</li>
<li>
<a class="dropdown-item active" aria-current="true" href="#">Link 2</a>
</li>
<li>
<a class="dropdown-item" href="#">Link 3</a>
</li>
</ul>
</div>
With disabled link item
<%= render Railsboot::DropdownComponent.new do |dropdown| %>
<% dropdown.with_action(text: "Dropdown") %>
<% dropdown.with_link(text: "Link 1", href: "#") %>
<% dropdown.with_link(text: "Link 2", href: "#", disabled: true) %>
<% dropdown.with_link(text: "Link 3", href: "#") %>
<% end %>
<div class="dropdown">
<button type="button" data-bs-toggle="dropdown" aria-expanded="false" class="btn btn-primary dropdown-toggle">
Dropdown
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="#">Link 1</a>
</li>
<li>
<a class="dropdown-item disabled" aria-disabled="true" href="#">Link 2</a>
</li>
<li>
<a class="dropdown-item" href="#">Link 3</a>
</li>
</ul>
</div>
With divider item
<%= render Railsboot::DropdownComponent.new do |dropdown| %>
<% dropdown.with_action(text: "Dropdown") %>
<% dropdown.with_link(text: "Link 1", href: "#") %>
<% dropdown.with_link(text: "Link 2", href: "#") %>
<% dropdown.with_divider %>
<% dropdown.with_link(text: "Link 3", href: "#") %>
<% end %>
<div class="dropdown">
<button type="button" data-bs-toggle="dropdown" aria-expanded="false" class="btn btn-primary dropdown-toggle">
Dropdown
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item" href="#">Link 1</a>
</li>
<li>
<a class="dropdown-item" href="#">Link 2</a>
</li>
<li class="dropdown-divider">
<hr>
</li>
<li>
<a class="dropdown-item" href="#">Link 3</a>
</li>
</ul>
</div>
With header item
<%= render Railsboot::DropdownComponent.new do |dropdown| %>
<% dropdown.with_action(text: "Dropdown") %>
<% dropdown.with_header(text: "Menu Header") %>
<% dropdown.with_link(text: "Link 1", href: "#") %>
<% dropdown.with_link(text: "Link 2", href: "#") %>
<% dropdown.with_divider %>
<% dropdown.with_link(text: "Link 3", href: "#") %>
<% end %>
<div class="dropdown">
<button type="button" data-bs-toggle="dropdown" aria-expanded="false" class="btn btn-primary dropdown-toggle">
Dropdown
</button>
<ul class="dropdown-menu">
<li class="dropdown-header">
<h6>Menu Header</h6>
</li>
<li>
<a class="dropdown-item" href="#">Link 1</a>
</li>
<li>
<a class="dropdown-item" href="#">Link 2</a>
</li>
<li class="dropdown-divider">
<hr>
</li>
<li>
<a class="dropdown-item" href="#">Link 3</a>
</li>
</ul>
</div>
Slots
action
Railsboot::Dropdown::ActionComponent
The action tag that drives the dropdown (Button or Link).
| Name | Default | Type | Description |
|---|---|---|---|
text
|
String
|
Text on the Action Component | |
type
|
button
|
String
|
Type of the dropdown action
Options: button, link
|
html_attributes
|
{}
|
Hash
|
Any attributes for the used html wrapper tag |
link
Railsboot::Dropdown::LinkComponent
Allows many
Display a link item in the dropdown
| Name | Default | Type | Description |
|---|---|---|---|
text
|
String
|
Text on the link item | |
href
|
String
|
HTMl href attribute of the link item | |
active
|
Boolean
|
Define the active state it the link item | |
disabled
|
Boolean
|
Define the disabled state it the link item | |
html_attributes
|
{}
|
Hash
|
Any attributes for the used html wrapper tag |
divider
Railsboot::Dropdown::DividerComponent
Allows many
Display a divider item in the dropdown
| Name | Default | Type | Description |
|---|---|---|---|
html_attributes
|
{}
|
Hash
|
Any attributes for the used html wrapper tag |
header
Railsboot::Dropdown::HeaderComponent
Allows many
Display a header item in the dropdown
| Name | Default | Type | Description |
|---|---|---|---|
text
|
String
|
Text on the header item | |
html_attributes
|
{}
|
Hash
|
Any attributes for the used html wrapper tag |
Installation
Simply download this component with all its related files and assets. Unpackage the downloaded ZIP-file, copy all relevant files into your app and adapt the things you need. The ZIP-folder contains:
- A parent component class (
app/components/railsboot/component.rb) of which all components inherit from. - A base component class (
app/components/railsboot/base_component.rb) which is used for rendering internally. - The desired component itself (
app/components/railsboot/dropdown_component.rb). - A view template (
app/components/railsboot/dropdown_component.html.erb) for the component unless it's rendered inline. - Any other dependent components such as Slots (just if the component needs those)
- Any dependent assets (JS-Files, CSS-Files) (just if the component needs those)
- A test file for the components (
test/components/railsboot/dropdown_component_test.rb) including potential slot or dependency tests.
For more information please refer to the installation section.