GitHub ↗

Toggle

Interactive production-grade hypermedia component for HTMXUI.

Interactive Preview

HTML Source

<!-- 
  Component: toggle.html
  Configurable State: themeColor ('primary'|'secondary'|'destructive'), size ('sm'|'md'|'lg'), isOpen (boolean)
  Usage: Bind styles dynamically using hx-class="{ 'bg-primary': themeColor === 'primary' }" or hx-style="{ width: size === 'lg' ? '100%' : 'auto' }"
-->
<label hx-ext="reactive" hx-state="{ themeColor: \'primary\', size: \'md\', isOpen: false }"  class="inline-flex cursor-pointer">
  <input type="checkbox" class="peer hidden" name="{name}" {checked} hx-post="{update_url}" hx-trigger="change" />
  <div class="inline-flex h-10 items-center justify-center rounded-md bg-transparent px-3 py-2 text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground peer-checked:bg-accent peer-checked:text-accent-foreground peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-ring">
    {icon_or_text}
  </div>
</label>