Skip to content
lostcoords / ui
Components

Components Pill

Pill

Filters and selections.

Default

Example 2

Example 3

Disabled

Toggle buttons

Interaction controller
app/javascript/controllers/demo_controller.js
import { Controller } from "@hotwired/stimulus"

export default class extends Controller {
  static targets = ["toast", "toasts"]

  press({ currentTarget }) {
    currentTarget.setAttribute(
      "aria-pressed",
      String(currentTarget.getAttribute("aria-pressed") !== "true"),
    )
  }

  select({ currentTarget }) {
    for (const tab of currentTarget.closest("[role=tablist]").querySelectorAll("[role=tab]")) {
      tab.setAttribute("aria-selected", String(tab === currentTarget))
    }
  }

  choose({ currentTarget }) {
    for (const button of currentTarget.closest("[role=group]").querySelectorAll("button")) {
      button.setAttribute("aria-pressed", String(button === currentTarget))
    }
  }

  toast() {
    this.toastsTarget.append(this.toastTarget.content.cloneNode(true))
  }
}

Navigation

API reference

pill_class

pill_class(active: false, ghost: false, size: :base, extra: nil)
ParameterDefaultValues
activefalsetrue · false
ghostfalsetrue · false
size:base:sm · :base · :lg · :nav
extranilAdditional Tailwind classes

pill_row_class

pill_row_class(extra: nil)
ParameterDefaultValues
extranilAdditional Tailwind classes