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 175243511..e4d273ab1 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 @@ -53,3 +53,6 @@ $progress-bar-br: 3px; .multiprogress-bar__bg-danger { flex-shrink: 0; } +.multiprogress-bar__bg-danger--overtime { + background: var(--timer-overtime-color-override, $timer-finished-color); +} 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 18d2070d0..c3b9c943b 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 @@ -14,6 +14,7 @@ interface MultiPartProgressBar { danger?: MaybeNumber; dangerColor: string; hidden?: boolean; + hideOvertime?: boolean; ignoreCssOverride?: boolean; className?: string; } @@ -28,6 +29,7 @@ export default function MultiPartProgressBar(props: MultiPartProgressBar) { danger, dangerColor, hidden, + hideOvertime, ignoreCssOverride, className = '', } = props; @@ -35,6 +37,8 @@ export default function MultiPartProgressBar(props: MultiPartProgressBar) { const percentRemaining = 100 - getProgress(now, complete); const dangerWidth = danger ? 100 - getProgress(danger, complete) : 0; const warningWidth = warning ? 100 - dangerWidth - getProgress(warning, complete) : 0; + const isOvertime = now !== null && now < 0; + const showOvertime = isOvertime && !hideOvertime; return (
diff --git a/apps/client/src/views/timer/Timer.scss b/apps/client/src/views/timer/Timer.scss index f58d33fa8..95e9409f4 100644 --- a/apps/client/src/views/timer/Timer.scss +++ b/apps/client/src/views/timer/Timer.scss @@ -18,7 +18,7 @@ flex-direction: column; &--finished { - outline: clamp(4px, 1vw, 16px) solid $timer-finished-color; + outline: clamp(4px, 1vw, 16px) solid var(--timer-overtime-color-override, $timer-finished-color); outline-offset: calc(clamp(4px, 1vw, 16px) * -1); transition: $viewer-transition-time; } @@ -95,7 +95,7 @@ font-size: 11.5vw; line-height: 0.9em; font-weight: 600; - color: $timer-finished-color; + color: var(--timer-overtime-color-override, $timer-finished-color); padding: 0; } @@ -116,8 +116,16 @@ transition: $viewer-transition-time; } + // use a class instead of a phase, to allow suppressing overtime style &--finished { - color: $timer-finished-color; + color: var(--timer-overtime-color-override, $timer-finished-color); + } + + &[data-phase="warning"] { + color: var(--timer-warning-color-override, var(--phase-color)); + } + &[data-phase="danger"] { + color: var(--timer-danger-color-override, var(--phase-color)); } } } diff --git a/apps/client/src/views/timer/Timer.tsx b/apps/client/src/views/timer/Timer.tsx index 8ea2f73b9..e92b55153 100644 --- a/apps/client/src/views/timer/Timer.tsx +++ b/apps/client/src/views/timer/Timer.tsx @@ -153,6 +153,7 @@ export default function Timer(props: TimerProps) { fontSize: `${timerFontSize}vw`, '--phase-color': timerColour, }} + data-phase={time.phase} > {display}
@@ -175,6 +176,7 @@ export default function Timer(props: TimerProps) { warningColor={viewSettings.warningColor} danger={eventNow?.timeDanger} dangerColor={viewSettings.dangerColor} + hideOvertime={!showFinished} /> )} diff --git a/apps/server/src/user/styles/override.css b/apps/server/src/user/styles/override.css index ef02a5347..e1ab8bf83 100644 --- a/apps/server/src/user/styles/override.css +++ b/apps/server/src/user/styles/override.css @@ -5,60 +5,62 @@ */ :root { - /** Background colour for the views */ - --background-color-override: #ececec; - - /** Main text colour for the views */ - --color-override: #101010; - - /** Text colour for the views */ - --secondary-color-override: #404040; + /** Background colour for the views */ + --background-color-override: #ececec; - /** Accent text colour, used on active elements */ - --accent-color-override: #fa5656; + /** Main text colour for the views */ + --color-override: #101010; - /** Label text colour, used on active elements */ - --label-color-override: #6c6c6c; + /** Text colour for the views */ + --secondary-color-override: #404040; - /** Timer text colour */ - --timer-color-override: #202020; + /** Accent text colour, used on active elements */ + --accent-color-override: #fa5656; - /** Background for card elements on background */ - --card-background-color-override: #fff; + /** Label text colour, used on active elements */ + --label-color-override: #6c6c6c; - /** Background highlight for blink behaviour, used only in /backstage */ - --card-background-color-blink-override: #339e4e; - - /** Font used for all text in views */ - --font-family-override: "Open Sans"; + /** Timer text colour */ + --timer-color-override: #202020; + --timer-warning-color-override: #ffbc56; + --timer-danger-color-override: #e69000; + --timer-overtime-color-override: #fa5656; - /** Font used for clock in /minimal and /clock views */ - --font-family-bold-override: "Arial Black"; + /** Background for card elements on background */ + --card-background-color-override: #fff; - /** Colour used for progress bar background */ - --timer-progress-bg-override: #fff; + /** Font used for all text in views */ + --font-family-override: 'Open Sans'; - /** Colour used for progress bar progress */ - --timer-progress-override: #202020; - - /** Colour used for external message and aux timer in /timer */ - --external-color-override: #161616; - - /** View specific features: /studio */ - --studio-active: #101010; - --studio-idle: #cfcfcf; - --studio-active-label: #101010; - --studio-idle-label: #595959; - --studio-overtime: #101010; - - /** View specific features: /lower */ - --lowerThird-font-family-override: 'Courier New'; - --lowerThird-top-font-weight-override: bold; - --lowerThird-bottom-font-weight-override: bold; - --lowerThird-top-font-style-override: normal; - --lowerThird-bottom-font-style-override: italic; - --lowerThird-line-height-override: 1vh; - --lowerThird-text-align-override: end; + /** Font used for clock in /minimal and /clock views */ + --font-family-bold-override: 'Arial Black'; + + /** Colour used for external message and aux timer in /timer */ + --external-color-override: #161616; + + /** View specific features: /backstage */ + /** ---- Background highlight for blink behaviour */ + --card-background-color-blink-override: #339e4e; + /** ---- Colour used for progress bar background */ + --timer-progress-bg-override: #fff; + /** ---- Colour used for progress bar progress */ + --timer-progress-override: #202020; + + /** View specific features: /studio */ + --studio-active: #101010; + --studio-idle: #cfcfcf; + --studio-active-label: #101010; + --studio-idle-label: #595959; + --studio-overtime: #101010; + + /** View specific features: /lower */ + --lowerThird-font-family-override: 'Courier New'; + --lowerThird-top-font-weight-override: bold; + --lowerThird-bottom-font-weight-override: bold; + --lowerThird-top-font-style-override: normal; + --lowerThird-bottom-font-style-override: italic; + --lowerThird-line-height-override: 1vh; + --lowerThird-text-align-override: end; } /** @@ -66,5 +68,5 @@ * In the below example, we change the colour of the overlay message in the stage-timer view. */ .stage-timer > .message-overlay--active > div { - color: red; + color: red; }