Skip to main content

max / makeover-immediate

Rename to makeover-immediate: the mode, not the library The siblings are named for the target class, not the implementation. makeover-tui is ratatui-typed and is not called makeover-ratatui, so being typed against one library was never the reason to name a crate after it. This was the only one breaking the pattern. Immediate mode is also the constraint that actually separates this renderer from the other two. Not that it paints pixels, which the webview does too, but that it has no cascade and no retained tree, so every call site resolves state that a stylesheet would have carried.
Author: Max Johnson <me@maxj.phd> · 2026-07-28 21:26 UTC
Signed with PGP, not checked
Commit: ec7fa8990a65ee7267f08ecd35b9257953d546ba
Parent: b2fdc9c
3 files changed, +21 insertions, -11 deletions
M Cargo.toml +3 -3
@@ -1,10 +1,10 @@
1 1 [package]
2 - name = "makeover-egui"
2 + name = "makeover-immediate"
3 3 version = "0.1.0"
4 4 edition = "2024"
5 - description = "The egui renderer for makeover-layout. Paints a renderer-agnostic description with egui primitives: no box-shadow, no inset, no cascade, one stroke per widget."
5 + description = "The immediate-mode renderer for makeover-layout. Immediate mode is the constraint that matters, not the library: no cascade, no retained tree, one stroke per widget. Backed by egui."
6 6 license = "MIT"
7 - repository = "https://makenot.work/git/max/makeover-egui"
7 + repository = "https://makenot.work/git/max/makeover-immediate"
8 8
9 9 [dependencies]
10 10 egui = { version = "0.35", default-features = false }
M README.md +10 -5
@@ -1,13 +1,18 @@
1 - # makeover-egui
1 + # makeover-immediate
2 2
3 - The egui renderer for [`makeover-layout`](https://makenot.work/git/max/makeover-layout).
3 + The immediate-mode renderer for [`makeover-layout`](https://makenot.work/git/max/makeover-layout).
4 4
5 - egui is the harshest renderer the description has to survive: no `box-shadow`,
5 + It is the harshest renderer the description has to survive: no `box-shadow`,
6 6 no `inset`, no cascade, no retained tree to mutate, and one stroke per widget
7 7 with no per-side control. A two-tone lit edge is not something egui can be
8 8 configured into producing, so it is painted by hand here, once, rather than in
9 9 every consuming app.
10 10
11 + Named for the mode rather than the library, the way `makeover-tui` is named
12 + for the target and not for ratatui. Immediate mode is the constraint that
13 + separates this renderer from the other two; egui is the backend it is written
14 + against.
15 +
11 16 ## What it owns
12 17
13 18 The expression, and nothing else. Two mitred polylines for a bevel, a `Frame`
@@ -22,7 +27,7 @@
22 27 ## Usage
23 28
24 29 ```rust
25 - use makeover_egui::{frame, FrameStyle, Palette};
30 + use makeover_immediate::{frame, FrameStyle, Palette};
26 31 use makeover_layout::Depth;
27 32
28 33 frame(ui, Depth::Raised, &palette, style, |ui| {
@@ -43,7 +48,7 @@
43 48 with extra steps.
44 49
45 50 First consumer is audiofiles, the only Make Creative app that is egui and the
46 - only one with no CSS. Design lives in the wiki note `makeover-egui`; the backlog
51 + only one with no CSS. Design lives in the wiki note `makeover-immediate`; the backlog
47 52 is in GoingsOn under the project of the same name.
48 53
49 54 ## Licence
M src/lib.rs +8 -3
@@ -1,8 +1,13 @@
1 - //! The egui renderer for [`makeover_layout`].
1 + //! The immediate-mode renderer for [`makeover_layout`].
2 2 //!
3 - //! <!-- wiki: makeover-egui -->
3 + //! <!-- wiki: makeover-immediate -->
4 4 //!
5 - //! egui is the harshest renderer the description has to survive: no
5 + //! Named for the mode, not the library, the way [`makeover-tui`] is named for
6 + //! the target and not for ratatui. Immediate mode is the constraint that
7 + //! actually separates this renderer from the other two, and egui is the
8 + //! backend it is written against.
9 + //!
10 + //! It is the harshest renderer the description has to survive: no
6 11 //! `box-shadow`, no `inset`, no cascade, no retained tree to mutate, and
7 12 //! `Visuals.widgets.*.bg_stroke` is a single stroke with no per-side control.
8 13 //! A two-tone lit edge is not something egui can be configured into producing,