Release alloy_tui v3.0.0
A major, forced by `Theme`: it gained `bevel_light` and `bevel_dark` as
public fields and was not `#[non_exhaustive]`, so the addition is a
breaking change for anyone constructing or matching one.
`#[non_exhaustive]` goes on in the same release, which is the whole
reason to do it here. The struct gains a field every time makeover gains
an intent, and each of those would otherwise be another major. Nothing
outside this crate builds a Theme field-by-field -- from_theme is the
only sane way to get one -- so this is the last moment the attribute is
free.
Since 2.0.0:
- the bevel pair as Theme fields, read through makeover's resolve()
- ColorDepth::Ansi256, and src/bevel.rs (Elevation, two-pass Block)
- AlloyButton; drop shadows on AlloyModal and AlloyPicker
- keys::RESERVED beside classify(), and src/help.rs (AlloyKeymap)
- src/geometry.rs: the spacing vocabulary, and the answer to
makeover-geometry's open question about non-square cells
- border_subtle / border_strong / mix_linear_srgb made public, so the
Alloy image's desktop skeleton derives its borders from the same two
functions the console renders with
- MSRV 1.88, for ratatui 0.30.2's Block::shadow
Both [patch.crates-io] stanzas this crate needed are gone: makeover
2.2.0 and makeover-geometry 0.1.0 are published, and it now packages
from a clean checkout with no path deps.
Author: Max Johnson <me@maxj.phd> · 2026-07-27 03:04 UTC