Files
fymio.us/layouts/index.html
2025-09-29 22:55:46 +03:00

218 lines
4.3 KiB
HTML

{{ define "main" }}
<div class="terminal-home">
<pre class="ascii-art">
___ _
| _|_ _ __ ___ (_) ___ _ _ ___
| |_| | '_ ` _ \ | |/ _ \ | | | / __|
| _| | | | | | |_ | | (_) |_| |_| \__ \
|_| |_|_| |_| |_(_)/ |\___/(_)\__,_|___/
|__/
</pre>
<div class="prompt-section">
<p class="terminal-prompt">
<span class="prompt-user">visitor@fymio.us</span>:<span
class="prompt-path"
>~</span
>$ <span class="typed-text"></span><span class="cursor"></span>
</p>
</div>
<div class="info-section">
<h2>> whoami</h2>
<p>Developer, creator, explorer of digital spaces.</p>
<h2>> ls -la ~/interests</h2>
<ul class="file-list">
<li><span class="file-icon">📁</span> coding/</li>
<li><span class="file-icon">📁</span> design/</li>
<li><span class="file-icon">📁</span> automation/</li>
<li><span class="file-icon">📄</span> coffee.txt</li>
</ul>
<h2>> cat ~/links.txt</h2>
<div class="links">
<a href="/blog/" class="terminal-link">[Blog]</a>
<a href="https://github.com/yourusername" class="terminal-link"
>[GitHub]</a
>
<a href="mailto:your@email.com" class="terminal-link">[Email]</a>
</div>
<h2>> echo $STATUS</h2>
<p>System online. All services operational.</p>
<div class="command-hint">
<p class="hint">💡 Type <code>help</code> to see available commands</p>
</div>
</div>
</div>
<style>
.terminal-home {
max-width: 900px;
margin: 0 auto;
padding: 40px 20px;
}
.ascii-art {
color: var(--accent);
font-size: 0.8em;
line-height: 1.2;
margin-bottom: 40px;
overflow-x: auto;
}
.prompt-section {
margin: 30px 0;
}
.terminal-prompt {
font-family: inherit;
margin: 0;
}
.prompt-user {
color: #00ff00;
}
.prompt-path {
color: #0080ff;
}
.typed-text {
color: var(--foreground);
}
.cursor {
animation: blink 1s infinite;
color: var(--accent);
}
@keyframes blink {
0%,
49% {
opacity: 1;
}
50%,
100% {
opacity: 0;
}
}
.info-section h2 {
color: var(--accent);
font-size: 1.2em;
margin-top: 40px;
margin-bottom: 15px;
}
.info-section h2:before {
content: "$ ";
color: var(--foreground);
}
.file-list {
list-style: none;
margin-left: 0;
padding-left: 20px;
}
.file-list li {
margin: 8px 0;
font-family: inherit;
}
.file-icon {
margin-right: 10px;
}
.links {
display: flex;
gap: 20px;
flex-wrap: wrap;
margin: 20px 0;
}
.terminal-link {
display: inline-block;
padding: 8px 16px;
border: 2px solid var(--accent);
color: var(--accent);
text-decoration: none;
transition: all 0.2s;
}
.terminal-link:hover {
background: var(--accent);
color: var(--background);
}
.command-hint {
margin-top: 60px;
padding: 20px;
border: 1px dashed var(--foreground);
opacity: 0.7;
}
.hint {
margin: 0;
font-size: 0.9em;
}
code {
background: rgba(255, 255, 255, 0.1);
padding: 2px 8px;
border-radius: 3px;
}
@media (max-width: 768px) {
.ascii-art {
font-size: 0.5em;
}
.terminal-home {
padding: 20px 10px;
}
}
</style>
<script>
// Typing animation
const phrases = ["ls -la", "cat README.md", "whoami", "pwd"];
let phraseIndex = 0;
let charIndex = 0;
let isDeleting = false;
const typedTextElement = document.querySelector(".typed-text");
function type() {
const currentPhrase = phrases[phraseIndex];
if (isDeleting) {
typedTextElement.textContent = currentPhrase.substring(0, charIndex - 1);
charIndex--;
} else {
typedTextElement.textContent = currentPhrase.substring(0, charIndex + 1);
charIndex++;
}
if (!isDeleting && charIndex === currentPhrase.length) {
setTimeout(() => {
isDeleting = true;
}, 2000);
} else if (isDeleting && charIndex === 0) {
isDeleting = false;
phraseIndex = (phraseIndex + 1) % phrases.length;
}
const typingSpeed = isDeleting ? 50 : 100;
setTimeout(type, typingSpeed);
}
document.addEventListener("DOMContentLoaded", () => {
setTimeout(type, 1000);
});
</script>
{{ end }}