defmodule PyrauiWeb.DocsLive.SelectDocs do use PyrauiWeb, :html def render(assigns) do ~H"""

Select

Select dropdown component with options and validation states.

Essentials

<.form for={@select_profile_form} id="select-profile" class="grid gap-6 sm:grid-cols-2">

    <.form for={@form}>
      <.select field={@form[:country]} label="Primary Market">
        <option value="">Select a country</option>
        <option value="us">United States</option>
      </.select>
      <.select field={@form[:timezone]} label="Operating Timezone">
        <optgroup :for={group <- @timezone_groups} label={group.label}>
          <option :for={option <- group.options} value={option.value}>
            {option.label}
          </option>
        </optgroup>
      </.select>
    </.form>
            

Quick Filters

Active Pipeline

17 opportunities this quarter

Live Updated moments ago
<.form for={@select_filters_form} id="select-filters" class="grid gap-4 sm:grid-cols-2 lg:grid-cols-4" >

    <.form for={@filters_form}>
      <.select field={@filters_form[:status]} label="Status">
        <option value="">All statuses</option>
        <option :for={status <- @status_options} value={status.value}>
          {status.label}
        </option>
      </.select>
      <.select multiple name="filters[members][]" label="Team">
        <option value="ava-stone">Ava Stone</option>
        <option value="mateo-garcia">Mateo García</option>
      </.select>
    </.form>
            

Design Details

  • Accessible defaults: Associate selects with labels, add helpers for context, and rely on the browser’s dropdown for consistent keyboard support.
  • Group related choices: Use optgroup for regions, teams, or contexts so long menus stay scannable.
  • Micro-interactions: Subtle focus rings and helper text guide quick decisions without overwhelming the UI.
""" end end