176 lines
3 KiB
SCSS
176 lines
3 KiB
SCSS
// Variables
|
|
$primary-color: #4f46e5;
|
|
$gradient-colors: (45deg, #8634f9, #ffab1a, #ff2fa2);
|
|
$button-radius: 4px;
|
|
$button-padding: 6px 12px;
|
|
$tooltip-radius: 4px;
|
|
$image-size: 80px;
|
|
|
|
// Mixins
|
|
@mixin flex-center {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
// Global Styles
|
|
.controls {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
width: 100%;
|
|
max-width: 500px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
.button {
|
|
padding: $button-padding;
|
|
background-color: $primary-color;
|
|
color: white;
|
|
border: none;
|
|
border-radius: $button-radius;
|
|
cursor: pointer;
|
|
}
|
|
|
|
// Wave Visualization Styles
|
|
.visualization-container {
|
|
position: relative;
|
|
width: 100%;
|
|
height: calc(100vh - 86px);
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
.gradient-bg {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: -1;
|
|
background: linear-gradient(45deg, #8634f9, #ffab1a, #ff2fa2);
|
|
background-size: 200% 200%;
|
|
animation: gradientAnimation 20s ease infinite;
|
|
}
|
|
|
|
@keyframes gradientAnimation {
|
|
0% { background-position: 0% 0%; }
|
|
25% { background-position: 100% 0%; }
|
|
50% { background-position: 100% 100%; }
|
|
75% { background-position: 0% 100%; }
|
|
100% { background-position: 0% 0%; }
|
|
}
|
|
|
|
.median {
|
|
position: absolute;
|
|
top: 51%;
|
|
left: 0;
|
|
right: 0;
|
|
height: 2px;
|
|
background-color: rgba(255,255,255,0.3);
|
|
z-index: 10;
|
|
}
|
|
|
|
.scroll-container {
|
|
position: relative;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow-x: auto;
|
|
overflow-y: hidden;
|
|
min-height:400px;
|
|
&::-webkit-scrollbar {
|
|
display: none;
|
|
}
|
|
-ms-overflow-style: none; /* IE and Edge */
|
|
scrollbar-width: none; /* Firefox */
|
|
}
|
|
|
|
.smooth-scroll {
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
.active {
|
|
cursor: grabbing;
|
|
}
|
|
|
|
.spacer {
|
|
height: 100vh;
|
|
}
|
|
|
|
.dot-tooltip {
|
|
pointer-events: none;
|
|
opacity: 1;
|
|
|
|
.tooltip-background {
|
|
fill: rgba(0, 0, 0, 0.0);
|
|
}
|
|
|
|
.tooltip-content {
|
|
@include flex-center;
|
|
flex-direction: column;
|
|
width: 100%;
|
|
height: 100%;
|
|
color: white;
|
|
}
|
|
|
|
.image_container {
|
|
margin-top: 8px;
|
|
box-shadow: 0 0 20px 0 rgba(255, 255, 255, 0.25);
|
|
transition: box-shadow 0.25s ease-in-out;
|
|
width: $image-size;
|
|
height: $image-size;
|
|
overflow: hidden;
|
|
border-radius: 50%;
|
|
border: 2px solid white;
|
|
display: flex;
|
|
justify-content: center;
|
|
|
|
&:hover {
|
|
box-shadow: 0 0 30px 0 rgba(255, 255, 255, 0.8);
|
|
}
|
|
}
|
|
|
|
.tooltip-image {
|
|
width: 100%;
|
|
height: auto;
|
|
display: block;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.tooltip-title {
|
|
font-size: 14px;
|
|
font-weight: 400;
|
|
margin-bottom: 2px;
|
|
text-align: center;
|
|
text-wrap: balance;
|
|
hyphens: auto;
|
|
line-height: 1.1;
|
|
}
|
|
|
|
.tooltip-description {
|
|
font-size: 12px;
|
|
font-weight: 300;
|
|
}
|
|
|
|
.tooltip-arrow {
|
|
width: 1px;
|
|
height: 30px;
|
|
background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.5), transparent);
|
|
}
|
|
}
|
|
|
|
.dot {
|
|
transition: r 0.2s ease, fill 0.2s ease;
|
|
cursor: pointer;
|
|
|
|
&:hover {
|
|
fill: rgba(255, 255, 255, 0.9);
|
|
filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.8));
|
|
}
|
|
}
|
|
|
|
.tooltip-img {
|
|
width: 100%;
|
|
height: 100%;
|
|
object-fit: cover;
|
|
border-radius: $tooltip-radius;
|
|
}
|