new file: index1.html <- ts a fakin ai SLOP
This commit is contained in:
parent
09e2751ac1
commit
d83418bb0b
1 changed files with 307 additions and 0 deletions
307
index1.html
Normal file
307
index1.html
Normal file
|
|
@ -0,0 +1,307 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>shellgod.icu</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/@fontsource/fira-code@5.1.0/400.min.css" rel="stylesheet">
|
||||
<style>
|
||||
:root {
|
||||
--bg: #050c05;
|
||||
--panel-bg: #0e150c;
|
||||
--border: #00e639;
|
||||
--text: #00e639;
|
||||
--text-dim: #ffffff;
|
||||
--text-bright: #00ff99;
|
||||
--gray: #a9d0b4;
|
||||
--font: 'Fira Code', 'Courier New', monospace;
|
||||
--glow: 0 0 8px rgba(0, 255, 65, 0.25);
|
||||
--radius: 10px;
|
||||
--transition: all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
font-family: var(--font);
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 24px;
|
||||
line-height: 1.5;
|
||||
< !-- text-transform: uppercase;
|
||||
-->
|
||||
}
|
||||
|
||||
.layout {
|
||||
width: 100%;
|
||||
max-width: 680px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
/* Base Panel Style */
|
||||
.panel {
|
||||
background: var(--panel-bg);
|
||||
border-radius: var(--radius);
|
||||
border-color: var(--bg);
|
||||
padding: 20px;
|
||||
position: relative;
|
||||
transition: border-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
|
||||
|
||||
/* Animation Initial State */
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
animation: panelFadeIn 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
|
||||
}
|
||||
|
||||
/* Staggered Animation Delays */
|
||||
.panel:first-child {
|
||||
animation-delay: 0.1s;
|
||||
}
|
||||
|
||||
.contact-panel {
|
||||
animation-delay: 0.3s;
|
||||
}
|
||||
|
||||
/* Unified hover effect for both .panel and .contact-panel */
|
||||
.panel:hover {
|
||||
|
||||
border-color: var(--text-bright);
|
||||
box-shadow: 0 0 12px rgba(0, 230, 57, 0.3);
|
||||
color: var(--text-bright);
|
||||
}
|
||||
|
||||
.prompt {
|
||||
font-size: 0.9rem;
|
||||
margin-bottom: 18px;
|
||||
color: var(--text);
|
||||
letter-spacing: 0.5px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
transition: color 0.3s ease;
|
||||
}
|
||||
|
||||
.cursor {
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 1em;
|
||||
background: var(--text);
|
||||
margin-left: 4px;
|
||||
animation: blink 1s step-end infinite;
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
|
||||
.panel:hover .cursor {
|
||||
background-color: var(--text-bright);
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes panelFadeIn {
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-size: 0.75rem;
|
||||
color: var(--text-dim);
|
||||
margin-bottom: 14px;
|
||||
padding-left: 2px;
|
||||
letter-spacing: 2px;
|
||||
border-left: 0px solid var(--text-dim);
|
||||
}
|
||||
|
||||
.links {
|
||||
display: grid;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 10px 12px;
|
||||
background: rgba(0, 255, 65, 0.02);
|
||||
border: 0px solid rgba(0, 255, 65, 0.08);
|
||||
border-radius: var(--radius);
|
||||
color: var(--text);
|
||||
text-decoration: none;
|
||||
transition: var(--transition);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.link::before {
|
||||
content: '>';
|
||||
margin-right: 10px;
|
||||
color: var(--text-dim);
|
||||
font-weight: bold;
|
||||
transition: var(--transition);
|
||||
}
|
||||
|
||||
.link:hover {
|
||||
background: rgba(0, 255, 65, 0.08);
|
||||
border-color: var(--text);
|
||||
transform: translateX(4px);
|
||||
}
|
||||
|
||||
.link:hover::before {
|
||||
color: var(--text-bright);
|
||||
}
|
||||
|
||||
.link:focus-visible {
|
||||
outline: 2px solid var(--text-bright);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.label {
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.url {
|
||||
margin-left: auto;
|
||||
color: var(--gray);
|
||||
font-size: 0.75rem;
|
||||
white-space: nowrap;
|
||||
padding-left: 8px;
|
||||
transition: var(--transition);
|
||||
}
|
||||
|
||||
.link:hover .url {
|
||||
color: var(--text-dim);
|
||||
}
|
||||
|
||||
.contact-panel .prompt {
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
|
||||
/* Hide URLs specifically in the contacts panel */
|
||||
.contact-panel .url {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.footer {
|
||||
text-align: center;
|
||||
font-size: 0.7rem;
|
||||
color: #a9d0b4;
|
||||
margin-top: 8px;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
body {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.panel {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.url {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.prompt {
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="layout">
|
||||
<!-- Services Panel -->
|
||||
<div class="panel">
|
||||
<div class="prompt">❯ bx ~/scr/welcome.sh<span class="cursor"></span></div>
|
||||
<div class="links" id="services-container"></div>
|
||||
</div>
|
||||
|
||||
<!-- Contacts Panel -->
|
||||
<div class="panel contact-panel">
|
||||
<div class="prompt">❯ ls ~/contacts </div>
|
||||
<div class="links" id="contacts-container"></div>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
shellgod.icu • <span id="year"></span> • all systems operational
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
document.getElementById('year').textContent = new Date().getFullYear();
|
||||
|
||||
const services = [
|
||||
{label: "lbnt.wiki", url: "https://wiki.lbnt.shellgod.icu"},
|
||||
{label: "file sharing", url: "https://files.shellgod.icu"},
|
||||
{label: "git server", url: "https://git.shellgod.icu"},
|
||||
{label: "search without spying", url: "https://search.shellgod.icu/"},
|
||||
{label: "draw ur thinking", url: "https://exdw.shellgod.icu/"}
|
||||
];
|
||||
|
||||
const contacts = [
|
||||
{label: "text me via simplex", url: "https://smp8.simplex.im/a#fLY8c1DUreljqVyoZ1kFU6CTIEz4FlOClUw6739Kye4"},
|
||||
{label: "text me via matrix", url: "https://matrix.to/#/@shellgod:shellgod.icu"},
|
||||
{label: "my matrix channel", url: "https://matrix.to/#/#frikinlarpin:shellgod.icu"},
|
||||
{label: "register on matrix server", url: "https://app.element.io/#/register"}
|
||||
];
|
||||
|
||||
function createLink(item, index, baseDelay) {
|
||||
const a = document.createElement('a');
|
||||
a.href = item.url;
|
||||
a.target = "_blank";
|
||||
a.rel = "noopener noreferrer";
|
||||
a.className = "link fade-in";
|
||||
a.style.animationDelay = `${baseDelay + (index * 70)}ms`;
|
||||
a.style.opacity = '0'; // Start hidden for JS animation
|
||||
a.style.transform = 'translateY(10px)';
|
||||
a.style.transition = `opacity 0.4s ease ${baseDelay + (index * 70)}ms, transform 0.4s ease ${baseDelay + (index * 70)}ms`;
|
||||
|
||||
// Trigger reflow or use timeout to apply transition
|
||||
setTimeout(() => {
|
||||
a.style.opacity = '1';
|
||||
a.style.transform = 'translateY(0)';
|
||||
}, 50);
|
||||
|
||||
const domain = item.url.replace(/^https?:\/\//, '').replace(/\/$/, '');
|
||||
a.innerHTML = `<span class="label">${item.label}</span><span class="url">${domain}</span>`;
|
||||
return a;
|
||||
}
|
||||
|
||||
const svcContainer = document.getElementById('services-container');
|
||||
const contactContainer = document.getElementById('contacts-container');
|
||||
|
||||
// Adjust base delays to match panel entrance
|
||||
services.forEach((s, i) => svcContainer.appendChild(createLink(s, i, 300)));
|
||||
contacts.forEach((c, i) => contactContainer.appendChild(createLink(c, i, 600)));
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue