movie-web/src/components/utils/Lightbar.css

79 lines
1.6 KiB
CSS

.lightbar, .lightbar-visual {
position: absolute;
top: 0;
width: 500vw;
height: 800px;
pointer-events: none;
user-select: none;
}
.lightbar {
left: 50vw;
transform: translateX(-50%);
}
@screen sm {
.lightbar, .lightbar-visual {
width: 150vw;
}
.lightbar {
left: -25vw;
transform: initial;
}
}
.lightbar {
display: flex;
justify-content: center;
align-items: center;
--d: 3s;
--animation: cubic-bezier(.75, -0.00, .25, 1);
animation: boot var(--d) var(--animation) forwards;
}
.lightbar-visual {
left: 0;
--top: theme('colors.background.main');
--bottom: theme('colors.lightBar.light');
--first: conic-gradient(from 90deg at 80% 50%, var(--top), var(--bottom));
--second: conic-gradient(from 270deg at 20% 50%, var(--bottom), var(--top));
mask-image: radial-gradient(100% 50% at center center, black, transparent);
background-image: var(--first), var(--second);
background-position-x: 1%, 99%;
background-position-y: 0%, 0%;
background-size: 50% 100%, 50% 100%;
opacity: 1;
transform: rotate(180deg) translateZ(0px) translateY(400px);
transform-origin: center center;
background-repeat: no-repeat;
animation: lightbarBoot var(--d) var(--animation) forwards;
}
.lightbar canvas {
width: 40%;
height: 300px;
transform: translateY(-250px);
}
@keyframes boot {
from {
opacity: 0.25;
}
to {
opacity: 1;
}
}
@keyframes lightbarBoot {
0% {
transform: rotate(180deg) translateZ(0px) translateY(400px) scaleX(0.8);
}
100% {
transform: rotate(180deg) translateZ(0px) translateY(400px) scaleX(1);
}
}