79 lines
1.6 KiB
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);
|
|
}
|
|
}
|