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