makeover-immediate
The immediate-mode renderer for makeover-layout.
It is the harshest renderer the description has to survive: no box-shadow,
no inset, no cascade, no retained tree to mutate, and one stroke per widget
with no per-side control. A two-tone lit edge is not something egui can be
configured into producing, so it is painted by hand here, once, rather than in
every consuming app.
Named for the mode rather than the library, the way makeover-tui is named
for the target and not for ratatui. Immediate mode is the constraint that
separates this renderer from the other two; egui is the backend it is written
against.
What it owns
The expression, and nothing else. Two mitred polylines for a bevel and a
Frame for a filled region.
It no longer owns a substitution. This renderer briefly supplied the page where
a theme had no surface-well, which was a stand-in for a token that did not
exist yet; makeover derives it from 2.3.0 and every consumer reads it, so
Palette::well is a required Color32 rather than an Option.
It owns no colours and no sizes. Palette is handed in already resolved, and
every radius, margin and stroke width arrives in FrameStyle. That is why there
is no dependency on makeover: the app already resolves a theme, and pinning a
renderer to a colour crate's version would buy nothing.
Usage
use ;
use Depth;
frame;
A pressed control is Depth::Raised.pressed(). A stylesheet can say that once
and let the cascade carry it; an immediate-mode renderer has nowhere to put it,
so every call site decides, which is exactly why the description states the rule
instead of each widget re-deriving it.
Status
On crates.io at 0.1.0, published 2026-07-28 once three renderers had exercised the vocabulary, which was the sequencing gate: a description with one renderer is an API with extra steps.
First consumer is audiofiles, the only Make Creative app that is egui and the
only one with no CSS. Design lives in the wiki note makeover-immediate; the backlog
is in GoingsOn under the project of the same name.
Licence
MIT.