Files
bambuddy/frontend/src/components/UpdatedStreamOverlay.css
T

246 lines
5.1 KiB
CSS

/* Scoped to the opt-in renderer. Existing OBS sources retain their styling. */
.updated-overlay {
--overlay-scale: 1;
--overlay-space: clamp(12px, 2.5vmin, 32px);
position: relative;
isolation: isolate;
display: flex;
flex-direction: column;
justify-content: space-between;
min-height: 100vh;
color: #fff;
background: #10171b;
font-size: calc(clamp(14px, 2.2vmin, 28px) * var(--overlay-scale));
line-height: 1.3;
font-variant-numeric: tabular-nums;
}
.updated-overlay[data-size='small'] {
--overlay-scale: 0.8;
}
.updated-overlay[data-size='large'] {
--overlay-scale: 1.2;
}
.updated-overlay__header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: var(--overlay-space);
padding: var(--overlay-space);
z-index: 1;
}
.updated-overlay__identity {
display: flex;
align-items: center;
gap: 0.7em;
min-width: 0;
padding: 0.65em 0.9em;
border-radius: 0.7em;
background: rgb(12 19 23 / 90%);
}
.updated-overlay__identity svg {
flex-shrink: 0;
width: 2em;
height: 2em;
}
.updated-overlay__identity div {
min-width: 0;
overflow-wrap: anywhere;
}
.updated-overlay__identity strong {
display: block;
font-size: 1.35em;
}
.updated-overlay__identity span {
display: block;
color: #b8c0c7;
}
.updated-overlay__logo {
flex-shrink: 0;
margin-left: auto;
}
.updated-overlay__logo img {
width: clamp(100px, 19vmin, 230px);
height: auto;
}
.updated-overlay__camera {
position: absolute;
inset: 0;
z-index: -1;
overflow: hidden;
}
.updated-overlay__camera img {
position: absolute;
top: 50%;
left: 50%;
width: 100%;
height: 100%;
max-width: none;
object-fit: cover;
}
.updated-overlay__panel {
padding: var(--overlay-space);
background: rgb(12 19 23 / 88%);
}
.updated-overlay__summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1em;
margin-bottom: 0.8em;
}
.updated-overlay__summary h1 {
font-size: 1.65em;
font-weight: 700;
line-height: 1.2;
overflow-wrap: anywhere;
min-width: 0;
}
.updated-overlay__status {
display: flex;
align-items: center;
gap: 0.5em;
font-size: 1.15em;
font-weight: 600;
color: #b8c0c7;
}
.updated-overlay__status > span {
width: 0.75em;
height: 0.75em;
border-radius: 50%;
background: currentColor;
flex-shrink: 0;
}
.updated-overlay[data-state='RUNNING'] .updated-overlay__status,
.updated-overlay[data-state='FINISH'] .updated-overlay__status {
color: #00d76a;
}
.updated-overlay[data-state='PAUSE'] .updated-overlay__status {
color: #fbbf24;
}
.updated-overlay[data-state='FAILED'] .updated-overlay__status {
color: #f87171;
}
.updated-overlay__progress {
display: flex;
align-items: center;
gap: 1em;
}
.updated-overlay__progress > span {
color: #b8c0c7;
font-size: 0.8em;
text-transform: uppercase;
}
.updated-overlay__progress > strong {
color: #00d76a;
font-size: 1.4em;
}
.updated-overlay__progress > div {
flex: 1;
height: 0.65em;
border-radius: 1em;
overflow: hidden;
background: #3c454c;
}
.updated-overlay__progress > div > div {
height: 100%;
border-radius: inherit;
background: #00d76a;
transition: width 0.5s;
}
.updated-overlay__readings {
display: flex;
flex-wrap: wrap;
gap: 1em;
margin-top: 0.8em;
padding-top: 0.8em;
border-top: 1px solid #ffffff35;
}
.updated-overlay__stats,
.updated-overlay__temperatures {
display: flex;
flex: 1 1 auto;
flex-wrap: wrap;
gap: 1em;
}
.updated-overlay__reading {
display: flex;
align-items: center;
gap: 0.6em;
flex: 1 1 auto;
min-width: 0;
}
.updated-overlay__reading svg {
width: 1.8em;
height: 1.8em;
flex-shrink: 0;
}
.updated-overlay__reading > div > span {
display: block;
color: #b8c0c7;
font-size: 0.7em;
text-transform: uppercase;
}
.updated-overlay__reading strong {
display: block;
font-size: 1.3em;
overflow-wrap: anywhere;
}
.updated-overlay__reading small {
font-size: 0.65em;
color: #b8c0c7;
}
@media (orientation: portrait) {
.updated-overlay {
display: grid;
font-size: calc(clamp(14px, 3vmin, 36px) * var(--overlay-scale));
grid-template-columns: minmax(0, 1fr);
grid-template-rows: auto 1fr auto;
min-height: 100vh;
}
.updated-overlay__header {
grid-row: 1;
align-items: center;
background: #10171b;
}
.updated-overlay__identity {
background: none;
padding: 0;
}
.updated-overlay__camera {
position: relative;
grid-row: 2;
min-height: 30vh;
z-index: 0;
}
.updated-overlay__panel {
grid-row: 3;
background: #10171b;
}
.updated-overlay__summary {
flex-direction: column-reverse;
align-items: stretch;
gap: 0.65em;
}
.updated-overlay__progress {
flex-wrap: wrap;
justify-content: space-between;
gap: 0.3em;
}
.updated-overlay__progress > div {
flex: 0 0 100%;
order: 1;
}
.updated-overlay__readings {
flex-direction: column;
}
.updated-overlay__temperatures:not(:first-child) {
border-top: 1px solid #ffffff35;
padding-top: 0.8em;
}
}
@media (prefers-reduced-motion: reduce) {
.updated-overlay__progress > div > div {
transition: none;
}
}