Skip to main content

max / alloy

Take alloy_tui 7.0.0 and stop calling elevation a focus cue
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-13 13:54 UTC
Signed with PGP, not checked
Commit: 0e7111021682e07835b3a69ff5c4ae91cdd8c624
Parent: f1a7da5
4 files changed, +51 insertions, -41 deletions
M Cargo.lock +48 -38
@@ -38,9 +38,7 @@
38 38
39 39 [[package]]
40 40 name = "alloy_tui"
41 - version = "6.0.0"
42 - source = "registry+https://github.com/rust-lang/crates.io-index"
43 - checksum = "7476daad7f6c965767729f00d2cc5019b3c2aef143a50a8e1f857e8f5cc0fcad"
41 + version = "7.0.0"
44 42 dependencies = [
45 43 "makeover",
46 44 "makeover-geometry",
@@ -897,9 +895,7 @@
897 895
898 896 [[package]]
899 897 name = "makeover"
900 - version = "2.5.0"
901 - source = "registry+https://github.com/rust-lang/crates.io-index"
902 - checksum = "3ba9cbc9da41bffe0514e6d6744cecf8097eb18676edcaf62a7dd08cea42e4aa"
898 + version = "2.5.1"
903 899 dependencies = [
904 900 "include_dir",
905 901 "serde",
@@ -909,20 +905,14 @@
909 905 [[package]]
910 906 name = "makeover-geometry"
911 907 version = "0.7.0"
912 - source = "registry+https://github.com/rust-lang/crates.io-index"
913 - checksum = "91a82b16c4f5b66dd7e87ed92fff7d22185e4d88e5355de6166dd64450cf6a16"
914 908
915 909 [[package]]
916 910 name = "makeover-layout"
917 - version = "0.16.0"
918 - source = "registry+https://github.com/rust-lang/crates.io-index"
919 - checksum = "5d02837b5ab4db4ee5759ddf8f77965336890d4b63c6e88e15b5782c9703138d"
911 + version = "0.19.0"
920 912
921 913 [[package]]
922 914 name = "makeover-tui"
923 - version = "0.15.0"
924 - source = "registry+https://github.com/rust-lang/crates.io-index"
925 - checksum = "17f9d6a744f90ad780bd7b98d8c4b1bb2c1e16116e66b9b87eaaee085975a7e1"
915 + version = "0.18.0"
926 916 dependencies = [
927 917 "makeover",
928 918 "makeover-layout",
@@ -2171,30 +2161,6 @@
2171 2161 source = "registry+https://github.com/rust-lang/crates.io-index"
2172 2162 checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
2173 2163
2174 - [[patch.unused]]
2175 - name = "kberg"
2176 - version = "0.1.0"
2177 -
2178 - [[patch.unused]]
2179 - name = "painhours"
2180 - version = "0.1.0"
2181 -
2182 - [[patch.unused]]
2183 - name = "tagtree"
2184 - version = "0.4.0"
2185 -
2186 - [[patch.unused]]
2187 - name = "docengine"
2188 - version = "0.7.0"
2189 -
2190 - [[patch.unused]]
2191 - name = "synckit-client"
2192 - version = "0.8.0"
2193 -
2194 - [[patch.unused]]
2195 - name = "synckit-config"
2196 - version = "0.2.0"
2197 -
2198 2164 [[patch.unused]]
2199 2165 name = "quasi-axum"
2200 2166 version = "0.1.0"
@@ -2218,3 +2184,47 @@
2218 2184 [[patch.unused]]
2219 2185 name = "quasi-webview"
2220 2186 version = "0.1.0"
2187 +
2188 + [[patch.unused]]
2189 + name = "synckit-client"
2190 + version = "0.8.0"
2191 +
2192 + [[patch.unused]]
2193 + name = "synckit-config"
2194 + version = "0.2.0"
2195 +
2196 + [[patch.unused]]
2197 + name = "kberg"
2198 + version = "0.1.0"
2199 +
2200 + [[patch.unused]]
2201 + name = "ops-status"
2202 + version = "0.1.0"
2203 +
2204 + [[patch.unused]]
2205 + name = "painhours"
2206 + version = "0.1.0"
2207 +
2208 + [[patch.unused]]
2209 + name = "tagtree"
2210 + version = "0.4.0"
2211 +
2212 + [[patch.unused]]
2213 + name = "makeover-build"
2214 + version = "0.27.0"
2215 +
2216 + [[patch.unused]]
2217 + name = "makeover-immediate"
2218 + version = "0.17.0"
2219 +
2220 + [[patch.unused]]
2221 + name = "makeover-touch"
2222 + version = "0.12.0"
2223 +
2224 + [[patch.unused]]
2225 + name = "makeover-webview"
2226 + version = "0.35.0"
2227 +
2228 + [[patch.unused]]
2229 + name = "docengine"
2230 + version = "0.7.0"
@@ -47,7 +47,7 @@
47 47
48 48 Monochrome chrome, no shadows, and color-reserved-for-information remove the usual vocabularies for signaling interactivity. In the Apple HIG tradition of *discoverable depth*, the replacement vocabulary:
49 49
50 - **Surface elevation is the depth language.** Use at least three ramp positions that read as elevation: `surface` (base, the terminal background), `surface-raised` (bordered controls), `surface-overlay` (popovers, menus, dialogs). The step between levels is tonal. A control announces itself by sitting on a raised, bordered surface; a data panel sits flush and borderless on `surface`. Elevation is a static affordance for control chrome, not a focus cue: the focused pane does *not* swap its surface.
50 + **Surface elevation is the depth language.** Use at least three ramp positions that read as elevation: `surface` (base, the terminal background), `surface-raised` (bordered controls), `surface-overlay` (popovers, menus, dialogs). The step between levels is tonal. A control announces itself by sitting on a raised, bordered surface; a data panel sits flush and borderless on `surface`. Elevation is a static affordance for control chrome, not a focus ring: the focused pane does *not* swap its surface.
51 51
52 52 **State variants are mandatory, not optional.** A terminal has no pointer, so the states reduce to what keyboard focus expresses: `default`, `focused`, `selected`, `disabled`. Focused switches the pane's border to `border-strong`, and nothing else changes: no surface swap, no title reweighting, no glyph. Selected does the same at row scope: a `border-strong` leading-edge stripe (a border-like cue) and no surface change. Disabled drops text to `text-muted`. No Alloy widget ships with only a default state. (Hover/pressed remain documented for any adopted GUI surface but do not apply to authored TUIs.)
53 53
@@ -13,7 +13,7 @@
13 13 path = "src/main.rs"
14 14
15 15 [dependencies]
16 - alloy_tui = "6.0.0"
16 + alloy_tui = "7.0.0"
17 17 anyhow = "1"
18 18 clap = { version = "4", features = ["derive"] }
19 19 ratatui.workspace = true
@@ -13,7 +13,7 @@
13 13 path = "src/main.rs"
14 14
15 15 [dependencies]
16 - alloy_tui = "6.0.0"
16 + alloy_tui = "7.0.0"
17 17 anyhow = "1"
18 18 clap = { version = "4", features = ["derive"] }
19 19 makeover.workspace = true