# Button IDs


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

## CardStackButtonIds

IDs for hidden buttons that the keyboard navigation system triggers via
`htmx_trigger`. These are separate from
[`CardStackHtmlIds`](https://cj-mills.github.io/cjm-fasthtml-card-stack/core/html_ids.html#cardstackhtmlids)
because they serve a different purpose: DOM element targeting vs
keyboard action triggering.

------------------------------------------------------------------------

<a
href="https://github.com/cj-mills/cjm-fasthtml-card-stack/blob/main/cjm_fasthtml_card_stack/core/button_ids.py#L13"
target="_blank" style="float:right; font-size:smaller">source</a>

### CardStackButtonIds

``` python

def CardStackButtonIds(
    prefix:str
)->None:

```

*Prefix-based IDs for hidden keyboard action buttons.*

``` python
# Test CardStackButtonIds
btn = CardStackButtonIds(prefix="cs0")
assert btn.nav_up == "cs0-btn-nav-up"
assert btn.nav_down == "cs0-btn-nav-down"
assert btn.nav_first == "cs0-btn-nav-first"
assert btn.nav_last == "cs0-btn-nav-last"
assert btn.nav_page_up == "cs0-btn-nav-page-up"
assert btn.nav_page_down == "cs0-btn-nav-page-down"
assert btn.width_narrow == "cs0-btn-width-narrow"
assert btn.width_widen == "cs0-btn-width-widen"
assert btn.scale_decrease == "cs0-btn-scale-decrease"
assert btn.scale_increase == "cs0-btn-scale-increase"
print("CardStackButtonIds tests passed!")
```

    CardStackButtonIds tests passed!

``` python
# Test multi-instance uniqueness
btn_a = CardStackButtonIds(prefix="text")
btn_b = CardStackButtonIds(prefix="vad")
assert btn_a.nav_up != btn_b.nav_up
assert btn_a.nav_up == "text-btn-nav-up"
assert btn_b.nav_up == "vad-btn-nav-up"
print("Button ID multi-instance tests passed!")
```

    Button ID multi-instance tests passed!
