Capture · Roots: roots drop w_full; hosts give the width

145 component roots drop w_full, the early returns included. Three
field rows keep it, Input, InputGroup and TagInput: stretched without
a width, taffy 0.9 laid the field's flex_1 share at no width in the
template picker at 280px, and the placeholder drew nothing. Container
keeps it, since mx_auto needs a width to fill.

Hosts that relied on a root's width now give it: MessageList boxes
each row at the list's width, the splash gives its bar the column's,
and test stages that mount a component as the window's root sit in a
size_full box. Tests hold a narrow row across the list and the splash
bar across its column; each goes red without its fix.

The gallery gains --narrow <px>, which lays each page in a padded
card at that width and shoots it without its script. The page
header wraps: the title takes the room and the theme switcher drops
below, where a long summary used to push it past the edge. A file
panel step waits for the panel to become key instead of a fixed
pause, which lost a race in a capture.
This commit is contained in:
ZacharyZhang-NY committed 2026-09-28 13:07:22 -04:00
1 parent 3be809a660
commit 81e73b79c1
126 files changed
+275 -276

No files matched your search

+1 -6
View File
@@ -123,13 +123,9 @@ impl RenderOnce for ProgressBar {
let Some(value) = self.value else {
let sweep = bar(0.3).bg(fill);
if theme.reduced_motion {
return lane()
.w_full()
.child(sweep.left(relative(0.35)))
.into_any_element();
return lane().child(sweep.left(relative(0.35))).into_any_element();
}
return lane()
.w_full()
.child(
sweep.with_animation(
(self.id, "sweep"),
@@ -159,7 +155,6 @@ impl RenderOnce for ProgressBar {
})
};
div()
.w_full()
.flex()
.gap_1()
.with_animation(