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 -1
View File
@@ -155,7 +155,7 @@ impl RenderOnce for Flip {
}
}
rest.append(&mut raised);
div().relative().w_full().h(total).children(rest)
div().relative().h(total).children(rest)
}
}
-1
View File
@@ -143,7 +143,6 @@ impl RenderOnce for LazyLoad {
});
}
})
.w_full()
.child(
Skeleton::new((self.id, "placeholder"))
.w_full()
+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(
+1 -7
View File
@@ -85,7 +85,6 @@ impl RenderOnce for SkeletonText {
fn render(self, _: &mut Window, cx: &mut App) -> impl IntoElement {
let line = cx.theme().text_size(TextSize::Base);
div()
.w_full()
.flex()
.flex_col()
.gap_2()
@@ -141,7 +140,6 @@ impl RenderOnce for SkeletonCard {
let line = theme.text_size(TextSize::Base);
let id = |part: &'static str| (self.id.clone(), part);
div()
.w_full()
.flex()
.flex_col()
.gap_4()
@@ -219,11 +217,7 @@ impl RenderOnce for SkeletonTable {
)
}))
};
div()
.w_full()
.flex()
.flex_col()
.children((0..=self.rows).map(row))
div().flex().flex_col().children((0..=self.rows).map(row))
}
}