Sidebar

Navigation sidebar with sections, titles, and links.

Usage

<%= ui.sidebar do %>
  <%= ui.sidebar_section do %>
    <%= ui.sidebar_title "Section Title" %>
    <%= ui.sidebar_menu do %>
      <%= ui.sidebar_link "Link Text", url: path %>
    <% end %>
  <% end %>
<% end %>
Props
PropTypeDefaultDescription
classStringnilAdditional CSS classes to add to the sidebar nav element.
dataHash{ sidebar_target: 'menu' }Data attributes. Automatically includes sidebar_target for Stimulus controller integration.

Also accepts any HTML attributes via **options (e.g., id:, data:, aria:). class: is also supported for custom styling.

SubcomponentsUse subcomponents below or any HTML.
NameHelperDescription
sidebar_sectionui.sidebar_sectionA section container for grouping related navigation items.
sidebar_titleui.sidebar_titleSection title/heading for a navigation group.
sidebar_menuui.sidebar_menuContainer (ul) for sidebar links.
sidebar_linkui.sidebar_linkNavigation link item. Automatically detects active state using current_page? helper.

Examples

Basic Sidebar

<%= ui.sidebar do %>
  <%= ui.sidebar_section do %>
    <%= ui.sidebar_title "Menu" %>
    <%= ui.sidebar_menu do %>
      <%= ui.sidebar_link "Home", url: "/" %>
      <%= ui.sidebar_link "About", url: "#" %>
      <%= ui.sidebar_link "Contact", url: "#" %>
    <% end %>
  <% end %>
<% end %>

Multiple Sections

<%= ui.sidebar do %>
  <%= ui.sidebar_section do %>
    <%= ui.sidebar_title "Basics" %>
    <%= ui.sidebar_menu do %>
      <%= ui.sidebar_link "Introduction", url: ui_path %>
      <%= ui.sidebar_link "Getting Started", url: ui_getting_started_path %>
    <% end %>
  <% end %>
  <%= ui.sidebar_section do %>
    <%= ui.sidebar_title "Components" %>
    <%= ui.sidebar_menu do %>
      <%= ui.sidebar_link "Button", url: ui_button_path %>
      <%= ui.sidebar_link "Card", url: ui_card_path %>
    <% end %>
  <% end %>
<% end %>

With Disabled Links

<%= ui.sidebar do %>
  <%= ui.sidebar_section do %>
    <%= ui.sidebar_title "Plugins" %>
    <%= ui.sidebar_menu do %>
      <%= ui.sidebar_link "Charts", disabled: true %>
      <%= ui.sidebar_link "File Uploader", disabled: true %>
    <% end %>
  <% end %>
<% end %>

Manual Active State

<%= ui.sidebar do %>
  <%= ui.sidebar_section do %>
    <%= ui.sidebar_title "Navigation" %>
    <%= ui.sidebar_menu do %>
      <%= ui.sidebar_link "Always Active", url: "#", active: true %>
      <%= ui.sidebar_link "Never Active", url: "#", active: false %>
    <% end %>
  <% end %>
<% end %>

Title with Badge

<%= ui.sidebar do %>
  <%= ui.sidebar_section do %>
    <%= ui.sidebar_title do %>
      Plugins
      <%= ui.badge "Coming Soon", size: :xs %>
    <% end %>
    <%= ui.sidebar_menu do %>
      <%= ui.sidebar_link "Charts", disabled: true %>
    <% end %>
  <% end %>
<% end %>