ritual.sh/assets/sass/partials/_lavalamp.scss
Dan 23369f4ace Refactors site to use interactive terminal UI
Moves site from static HTML to a dynamic terminal interface.

This commit represents a major overhaul, introducing:
- A functional terminal emulator implemented in JavaScript.
- Command parsing and execution framework.
- Various terminal commands for navigation and utility functions.
- SASS conversion.

The old CSS and simple HTML are completely removed. A new Hugo theme is implemented.
2025-12-08 13:46:35 +00:00

122 lines
2.7 KiB
SCSS

.lava-lamp-container {
position: absolute;
bottom: 20%;
left: 20%;
width: 80px;
height: 150px;
display: flex;
flex-direction: column;
align-items: center;
z-index: 999;
}
.lamp-cap {
width: 60%;
height: 10%;
background: linear-gradient(180deg, #c0c0c0 0%, #888 50%, #666 100%);
border-radius: 60px 60px 0 0;
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.5),
inset 0 2px 4px rgba(255, 255, 255, 0.3);
position: relative;
z-index: 10;
}
.lava-lamp {
position: relative;
width: 100%;
height: 102%; /*Being above 100% fixes the occasional gap when resizing the page, theoretically */
background: var(--lamp-bg, linear-gradient(180deg, #2a1a4a 0%, #1a0a3a 100%));
clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%);
overflow: hidden;
box-shadow:
inset 0 0 60px rgba(0, 0, 0, 0.3),
inset -10px 0 40px rgba(255, 255, 255, 0.1),
inset 10px 0 40px rgba(0, 0, 0, 0.2);
filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.5));
}
.lava-lamp::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(
90deg,
transparent 0%,
rgba(255, 255, 255, 0.15) 20%,
rgba(255, 255, 255, 0.05) 40%,
transparent 60%
);
pointer-events: none;
}
.lamp-base {
width: 100%;
height: 20%;
background: linear-gradient(180deg, #888 0%, #555 40%, #333 100%);
border-radius: 0 0 40px 40px / 0 0 60px 60px;
box-shadow:
0 10px 30px rgba(0, 0, 0, 0.6),
inset 0 5px 10px rgba(255, 255, 255, 0.2),
inset 0 -5px 10px rgba(0, 0, 0, 0.5);
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.blob {
position: absolute;
border-radius: 50%;
background: var(
--blob-color,
radial-gradient(circle at 30% 30%, #ff6b9d, #c44569)
);
filter: url(#goo);
animation: float var(--duration) ease-in-out infinite;
opacity: 0.95;
mix-blend-mode: normal;
z-index: 3;
}
@keyframes float {
0%,
100% {
transform: translate(var(--start-x), var(--start-y)) scale(1);
}
25% {
transform: translate(var(--mid1-x), var(--mid1-y)) scale(var(--scale1, 1.1));
}
50% {
transform: translate(var(--mid2-x), var(--mid2-y)) scale(var(--scale2, 0.9));
}
75% {
transform: translate(var(--mid3-x), var(--mid3-y))
scale(var(--scale3, 1.05));
}
}
.lamp-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-35%, -50%) rotate(85deg);
font-size: 30px;
font-weight: bold;
color: rgba(224, 27, 36, 0);
transition: color 0.5s ease;
pointer-events: none;
z-index: 1;
letter-spacing: 2px;
}
.lava-lamp:hover .lamp-text {
color: rgba(224, 27, 36, 0.7);
}
.lava-lamp:hover {
cursor: pointer;
}