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.
This commit is contained in:
parent
d22b4ec65a
commit
23369f4ace
46 changed files with 3524 additions and 860 deletions
122
assets/sass/partials/_lavalamp.scss
Normal file
122
assets/sass/partials/_lavalamp.scss
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
.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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue