quickshell-web/src/styles/components/marquee.css
2024-11-17 22:15:46 +11:00

134 lines
2.1 KiB
CSS

.marquee-buttons {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 2.217rem;
font-size: 1.874rem;
font-weight: 600;
margin-inline: 0.618rem;
}
.marquee-button {
all: unset;
position: relative;
color: hsl(var(--accent-400));
&::before {
content: "";
position: absolute;
bottom: 3px;
left: 2px;
right: 2px;
height: 3px;
background-color: hsl(var(--accent-400) / 0.3);
z-index: -1;
}
}
.marquee {
position: relative;
width: 100%;
margin-block: 1.618rem;
}
.marquee-content {
width: 100%;
height: 100%;
overflow: hidden;
display: flex;
}
.marquee-item {
flex: 1 0 100%;
transition: transform 0.3s cubic-bezier(0.46, 0.03, 0.52, 0.96);
transform: translateX(var(--scroll));
display: flex;
justify-content: center;
padding-inline: 0.5rem;
}
.marquee-item-spacing {
width: calc(100svw - 12rem);
max-width: 75rem;
aspect-ratio: 16 / 9;
display: flex;
justify-content: space-between;
}
.marquee-item-content {
border-radius: 6px;
}
.marquee-scroll {
position: absolute;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
transition:
background-color 0.3s,
opacity 0.3s;
z-index: 10;
user-select: none;
align-items: stretch;
pointer-events: none;
padding-inline: 1rem;
}
.marquee-scroll-arrow {
max-width: 8rem;
font-size: 2rem;
pointer-events: all;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
& > div {
width: 2.5rem;
aspect-ratio: 1 / 1;
display: flex;
align-items: center;
justify-content: center;
opacity: 0.5;
transition: opacity 0.3s ease;
}
&:hover {
cursor: pointer;
& > div {
opacity: 0.9;
}
}
}
#marquee-scroll-left {
left: -4rem;
}
#marquee-scroll-right {
right: -4rem;
}
@media not (min-width: 40rem) {
.marquee-item-spacing {
width: 100%;
align-items: center;
}
.marquee-scroll-arrow {
height: unset;
& > div {
background-color: #55555580;
border-radius: 0.2rem;
}
}
#marquee-scroll-left {
left: 1rem;
}
#marquee-scroll-right {
right: 1rem;
}
}