ui/giftimeline.razor.scss
// Self-contained two-head timeline styling (a parent stylesheet doesn't cascade into a child component,
// so this styles the component's own internals and opts pointer-events back in). Reads as a thin bar with
// the exported span highlighted between a START and an END head — same visual language as ReplayScrubBar.
$white: #f8f5e6;
$accent: #ffd584; // amber span fill, distinct from the white playback bar elsewhere
.gif-timeline {
width: 100%;
height: 26px;
align-items: center;
justify-content: center;
position: relative;
cursor: blank-hand;
pointer-events: all;
.bar {
position: relative;
width: 100%;
height: 12px;
background-color: rgba($white, 0.18);
border: 2px solid rgba($white, 0.5);
// The exported span between the two heads.
.region {
position: absolute;
top: 0;
height: 100%;
background-color: rgba($accent, 0.85);
}
}
// Square scrub heads. The two are tinted slightly differently so it's obvious which is which.
.head {
position: absolute;
width: 10px;
height: 24px;
margin-left: -5px;
background-color: $white;
border: 2px solid rgba($white, 0.5);
image-rendering: pixelated;
&:hover {
border-color: $white;
box-shadow: 0 0 10px 1px rgba($white, 0.7);
}
&.end {
background-color: $accent;
}
}
&:hover .bar {
border-color: $white;
}
}