table


The code that drew it
A still frame holds a repeating animation at its first frame and a one-shot at its last, because a still of a moving thing is not reproducible. Run the gallery to review motion.
fn table(_window: &mut Window, cx: &mut App) -> AnyElement {
let theme = cx.theme().clone();
let state = |label: &'static str, tone: Tone| {
Cell::new(Badge::new(label).tone(tone))
.text(label)
.published(true)
};
stack(&theme)
.w(px(600.0))
.child(
Table::new("scene.table.runs")
.columns([
Column::new("name", "Run").flex(2.0).sortable(true),
Column::new("state", "State").fixed(110.0),
Column::new("duration", "Duration")
.fixed(96.0)
.align(Align::End)
.sortable(true),
])
.sorted_by("duration", SortDirection::Descending)
.selected("run-b12")
.rows([
Row::new("run-a04")
.text("Indexing")
.cell("name", "Indexing")
.cell("state", state("Ready", Tone::Success))
.cell("duration", "4m 12s"),
Row::new("run-b12")
.text("Verifying")
.cell("name", "Verifying")
.cell("state", state("Stale", Tone::Warning))
.cell("duration", "2m 08s"),
Row::new("run-c31")
.text("Publishing")
.cell("name", "Publishing")
.cell("state", state("Refused", Tone::Danger))
.cell("duration", "1m 44s"),
Row::new("run-d02")
.text("Archiving")
.disabled(true)
.cell("name", "Archiving")
.cell("state", state("Managed", Tone::Neutral))
.cell("duration", "0m 51s"),
])
.visible_rows(6)
.on_sort(|_, _, _, _| {})
.on_select(|_, _, _| {}),
)
.into_any_element()
}