# chirp-ui 0.9.0

URL: /chirp-ui/releases/0.9.0/
Section: releases
Description: Release 0.9.0

---

> For a complete page index, fetch /chirp-ui/llms.txt.

## Install

```bash
pip install chirp-ui==0.9.0
# or
uv add chirp-ui==0.9.0
```

With Chirp:

```bash
pip install "bengal-chirp[ui]"
```

## What's New

### Appearance and tone pilot

The first descriptor-backed `appearance` and `tone` parameters are now
available on `btn`, `badge`, `alert`, `card`, `surface`, and form fields.
This starts the public styling vocabulary that can span components without
turning Chirp UI into utility classes.

The shared destructive tone is `danger`. Existing component-local
`variant="error"` compatibility remains unchanged.

### Token-only theme-pack catalog

Chirp UI now ships a first catalog of packaged token-only theme packs:
`atlas`, `ember`, and `sage`. Their metadata is immutable and discoverable
through the Python library contract and manifest.

The theme packs are visible in the showcase matrix and wired into Bengal
palette-control metadata, with browser proof across navigation, forms, overlay
layers, compact data tables, desktop and mobile viewports, and light, dark, and
system token resolution.

### Application chrome and visual proof

The application chrome work now has follow-up proof for rail-to-drawer recipes,
multi-family browser gauntlets, rhythm audits, Bengal parity, composite
evaluation, and release-readiness tracking.

First-party showcase chrome was cleaned up so new examples stop teaching
legacy helper-class chains. A static visual audit surface now gives
maintainers and agents a first QA stop for visual decisions.

### Anatomy docs and agent sources

New anatomy guides and published site mirrors cover:

- Bengal theme controls
- Drawers and trays
- Dropdown menus, selects, and split menus
- Modals and confirm dialogs
- HTMX tabs, client-side tab panels, route tabs, and tabbed page layouts

The docs also gain agent source inventory and source-map collateral that
records provenance, snippet eligibility, generated-output ownership, and
forbidden output-name overlaps.

## Changed

- Boosted shell navigation, live search/filter helpers, and mutating HTMX
  form/action helpers now get rapid-click request coordination defaults.
- The pre-1.0 compatibility policy for legacy helpers is documented alongside
  the cleaned showcase chrome.

## Fixed

- Dropdown menu and split-menu selection payloads now read labels, URLs, and
  actions from escaped `data-*` attributes instead of inline Alpine JavaScript
  literals.
- Tab-panel selection now reads tab ids from escaped `data-*` attributes in
  `chirpuiTabs()`.

## Upgrade Notes

This is a minor release because it adds new public styling vocabulary, theme
pack discovery, and application-chrome documentation/proof.

- Prefer `tone="danger"` for shared destructive styling in the new
  appearance/tone pilot surfaces.
- Keep theme customization token-first; the catalog packs are token-only and
  do not introduce component selector forks.
- Treat application chrome as recipe-first. No mega-shell macro is promoted in
  this release.
- Apps with custom Alpine payload handling should prefer escaped `data-*`
  attributes over interpolated inline literals.

## Verification

Release prep passed:

- `uv run poe ci`
- `uv run poe test-browser-chrome`
- `make release-preflight`

## Links

- [PyPI](https://pypi.org/project/chirp-ui/)
- [GitHub](https://github.com/lbliii/chirp-ui)
- [CHANGELOG](https://github.com/lbliii/chirp-ui/blob/main/CHANGELOG.md)
