Files
storyteller-bevy/studio-frontend/src/app/anim-timeline.element.scss
T
2024-04-05 20:15:09 -04:00

162 lines
2.5 KiB
SCSS

:host {
position: relative;
overflow: hidden;
display: grid;
grid-template-rows: subgrid;
grid-row: 1 / span var(--row-count);
pointer-events: all;
}
*:focus-visible {
outline: none;
}
.wrapper {
position: relative;
display: grid;
grid-template-columns: 1fr;
grid-template-rows: subgrid;
inset: 0;
grid-row: 1 / span var(--row-count);
background: linear-gradient(90deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.2) calc(var(--clip-start) - 1px), rgba(255,255,255,0.1) var(--clip-start), rgba(255,255,255,0.1) var(--clip-end), rgba(0,0,0,0.2) calc(var(--clip-end) + 1px));
&.panning {
cursor: grabbing;
}
.zoom-controls {
grid-row: var(--row-count);
background: rgba(0,0,0,1);
height: 10px;
width: 100%;
z-index: 1;
}
.timeline-nav-dragger {
grid-row: 1 / span 1;
grid-column: 1 / span 1;
background: #000;
opacity: 0.1;
height: 1.5em;
}
}
.hash {
position: absolute;
top: 0;
bottom: 0;
width: 2px;
background: #FFF1;
&.strong {
background: #FFF3;
}
}
.timestamp {
position: absolute;
grid-row: 1;
color: #FFF6;
font: {
family: "Fira Sans", sans-serif;
size: 14px;
}
user-select: none;
pointer-events: none;
.frac {
color: #FFF3;
}
}
.playhead {
position: absolute;
top: 0;
bottom: 0;
width: 8px;
transform: translateX(-3px);
cursor: ew-resize;
color: #7A2C34E3;
transition: color 66.667ms linear;
&:hover {
color: #90363F;
}
.head {
position: absolute;
top: 0;
left: 0;
width: 8px;
height: 32px;
background: currentColor;
&::after {
content: "";
box-sizing: border-box;
position: absolute;
bottom: -12px;
display: block;
width: 8px;
height: 12px;
border: 4px solid transparent {
top: 8px solid currentColor;
}
}
}
.bar {
position: absolute;
top: 36px;
bottom: 0;
left: 3px;
right: 3px;
background: currentColor;
}
}
.keyframe {
position: absolute;
transform: translateX(-4.5px);
&::before {
content: "";
display: block;
width: 9px;
height: 9px;
background: #AAA;
transform: rotate(45deg) {
origin: center center;
}
}
&.selected::before {
background: #0FF; // TODO
}
}
.clip {
position: absolute;
transform: translateX(-4.5px);
--clip-name: "";
height: 12px;
&::before {
content: var(--clip-name);
display: flex;
width: 100%;
height: 12px;
background: #AAA;
color: black;
font-size: 10px;
font-weight: bold;
justify-content: center;
align-items: center;
}
&.selected::before {
background: #0FF; // TODO
}
}