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.
122 lines
2.7 KiB
SCSS
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;
|
|
}
|