# chirp-ui 0.6.0

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

---

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

## Install

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

With Chirp:

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

## What's New

### Application composition gauntlet

This release adds a browser gauntlet for the kinds of UI compositions real
apps try to build: dense navigation, forms, tables, workflow regions,
contextual popovers, linkable records, state matrices, hostile content, and
mobile/tablet pressure.

The goal is not just "components render." The gauntlet checks whether composed
components still avoid page-level horizontal overflow, keep control heights
coherent, preserve touch targets, avoid obvious overlap, and survive large text
or long-token content.

### Elbysodic-driven primitives

Several primitives were shaped by the Elbysodic play-by-post forum app, then
lifted into general ChirpUI contracts:

- `nav_tree(branch_mode="linked")` for link-first section trees where parent
  rows route normally and branch expansion is server/context controlled.
- Server-controlled open branches, item badges, and item state hooks for
  active, branch, child, and muted styling.
- Linkable file tree branches and timeline title links without overlay-link
  conflicts.
- Contextual-detail hints for nav entries and timeline titles, including
  hover/focus/touch coverage.
- Rendered mentions via `chirpui-mention`, avatar support for cast faces, and
  latest-line metadata tooltips.

### Responsive app-shell hardening

Phone and tablet layouts now get more explicit coverage across app shell,
navigation strips, rendered content, data tables, and action rows. Controls also
share a tighter height rhythm across buttons, icon buttons, segmented controls,
small toggles, selects, and dropdown triggers.

This should reduce the little shifts that make a topbar feel unstable when a
select, toggle, and route/action button all sit next to each other.

### App theme starter

`templates/themes/app-theme-starter.css` gives apps a token-only theme layer to
place after `chirpui.css`. It demonstrates the intended override contract for
light, dark, and system tokens without forking ChirpUI component CSS.

### Manifest and registry quality

The component manifest now exposes more of the real composition contract:
composite metadata, forwarded slots, yielded slots, runtime requirements,
maturity, and public metadata checks. Registry categories were tightened so
agents and app authors can ground suggestions against actual component
capabilities instead of guessing from template names.

## Changed

- Kida template dependency floor is now `>=0.8.0`.
- README and component docs were refreshed around the current registry,
  manifest, and development workflow.
- Navigation guidance is stricter: `route_tabs` are for local views of one
  object/workspace, not broad cross-feature navigation.

## Fixed

- Button and icon button HTMX fragment requests default to `hx-select="unset"`
  so boosted app-shell selection does not leak into local swaps.
- Control height tokens now line up across the common topbar/action-row mix.
- Long card titles and badge/count text wrap instead of escaping narrow
  containers.
- Shell-frame boosted navigation preserves same-route scroll and lands hash
  links below the sticky topbar.
- Split panel drag state now emits JavaScript booleans so Alpine can resize
  panes reliably.

## Upgrade Notes

This should be a low-disruption upgrade for apps already on `0.5.x`, but it is
worth checking any custom app-shell navigation and local HTMX fragments:

- If a local fragment swap lives inside a boosted shell, prefer `hx-select="unset"`
  or a ChirpUI macro that emits it for you.
- If you were hacking nav tree parents to behave as links, try
  `nav_tree(branch_mode="linked")`.
- If you have custom CSS targeting newly exposed nav/tree/timeline state hooks,
  keep overrides in `@layer app.overrides`.

## Verification

Release prep passed:

- `uv run poe ci`
- `uv run poe ci-browser`
- `make release-preflight`
- `make build`

## 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)
