diff --git a/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.scss b/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.scss index b9378798c..60630ea9f 100644 --- a/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.scss +++ b/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.scss @@ -7,10 +7,6 @@ $progress-bar-br: 3px; position: relative; width: 100%; height: $progress-bar-size; - border-radius: $progress-bar-br; - background-color: var(--timer-progress-bg-override, $viewer-card-bg-color); - display: flex; - overflow: hidden; &--hidden { display: none; @@ -18,31 +14,42 @@ $progress-bar-br: 3px; } } +.multiprogress-bar__bg { + position: absolute; + inset: 0; + overflow: hidden; + border-radius: var(--progress-bar-br, $progress-bar-br); + + display: flex; + flex-direction: row; + justify-content: flex-end; +} + .multiprogress-bar__indicator { position: absolute; - height: inherit; - background-color: black; + inset: 0; + margin: -1px; + margin-left: 0; + display: flex; + flex-direction: row; + justify-content: flex-end; +} + +.multiprogress-bar__indicator-bar { + background-color: var(--background-color-override, $ui-black); opacity: 0.8; transition: 1s linear; transition-property: width; - right: 0; + + .multiprogress-bar--ignore-css-override & { + background-color: $ui-black; + } } .multiprogress-bar__bg-normal { - position: absolute; - height: inherit; - right: 0; - width: 100%; -} - -.multiprogress-bar__bg-warning { - position: absolute; - height: inherit; - right: 0; + flex: 1; } .multiprogress-bar__bg-danger { - position: absolute; - height: inherit; - right: 0; -} \ No newline at end of file + flex-shrink: 0; +} diff --git a/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.tsx b/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.tsx index 9245cddae..ce750c128 100644 --- a/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.tsx +++ b/apps/client/src/common/components/multi-part-progress-bar/MultiPartProgressBar.tsx @@ -13,31 +13,51 @@ interface MultiPartProgressBar { danger?: MaybeNumber; dangerColor: string; hidden?: boolean; + ignoreCssOverride?: boolean; className?: string; } export default function MultiPartProgressBar(props: MultiPartProgressBar) { - const { now, complete, normalColor, warning, warningColor, danger, dangerColor, hidden, className = '' } = props; + const { + now, + complete, + normalColor, + warning, + warningColor, + danger, + dangerColor, + hidden, + ignoreCssOverride, + className = '', + } = props; const percentRemaining = complete === 0 ? 0 : 100 - clamp(100 - (Math.max(now ?? 0, 0) * 100) / complete, 0, 100); const dangerWidth = danger ? clamp((danger / complete) * 100, 0, 100) : 0; - const warningWidth = warning ? clamp((warning / complete) * 100, 0, 100) : 0; + const warningWidth = warning ? clamp((warning / complete) * 100 - dangerWidth, 0, 100) : 0; return ( -