diff --git a/frontend-modern/src/features/proxmox/ProxmoxBackupsTable.tsx b/frontend-modern/src/features/proxmox/ProxmoxBackupsTable.tsx index c6ea19b577..35aea0348f 100644 --- a/frontend-modern/src/features/proxmox/ProxmoxBackupsTable.tsx +++ b/frontend-modern/src/features/proxmox/ProxmoxBackupsTable.tsx @@ -227,6 +227,12 @@ function formatDurationFromSeconds(seconds: number): string { // Backup files Size column (proportional to the largest archive in view) // and in the Recent tasks Duration column (proportional to 2x the median // duration so a typical task fills ~50% and outliers fill the bar). +// +// Layout invariant: the bar is positioned AFTER the value text in its +// cell, and the cell uses `justify-end`. Because the bar has a fixed +// width and is the rightmost element, every bar's left and right edges +// land at the same x in every row, so they read as a proper comparison +// chart instead of a row of free-floating segments. function InlineProgressBar(props: { valuePct: number; toneClass: string; @@ -236,7 +242,7 @@ function InlineProgressBar(props: { const widthClass = props.width ?? 'w-16'; return (