Files
.profile/entry.html
T
SowinskiBraedenandClaude Opus 5 8595290318 redesign the site as a technical minimalist TUI
Replace the glassy hero treatment with a terminal and TUI vocabulary
while keeping the layout minimal:

- Switch the type stack to JetBrains Mono and flatten every surface:
  hairline borders, square corners, no blur or glow, and a faint
  graph-paper grid in place of the radial gradients.
- Rebuild the home hero as a terminal window whose output is typed in
  on load; the old mouse-parallax glow script becomes that typing
  sequence, and it no-ops under prefers-reduced-motion.
- Give the projects, about, and entry panels title bars, and render
  cards with a metadata strip, status dot, ISO date, and prompt-style
  links.
- Hide the inline nav behind the hamburger on narrow screens; the old
  rule was outranked by the #menu id selector and never applied.
- Add an SVG favicon, which also clears the only 404 on the site.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-17 23:41:38 -07:00

129 lines
5.3 KiB
HTML

<!DOCTYPE html>
<html lang='en'>
<head>
<title>Portfolio Entry | Braeden Sowinski</title>
<meta charset='utf-8'>
<meta name='description' content="Project entry or update from Braeden Sowinski's portfolio site." />
<meta name='author' content="Braeden Sowinski" />
<meta name='keywords' content="Braeden Sowinski, sowinski.dev, portfolio entry, project, update" />
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<meta name='robots' content='index, follow'>
<meta name='theme-color' content='#0c0d10'>
<link rel='canonical' href='https://sowinski.dev/entry.html'>
<meta property='og:type' content='article'>
<meta property='og:title' content='Portfolio Entry | Braeden Sowinski'>
<meta property='og:description' content='Project entry or update from Braeden Sowinski.'>
<meta property='og:url' content='https://sowinski.dev/entry.html'>
<meta property='og:site_name' content='Braeden Sowinski'>
<meta property='og:image' content='https://avatars.githubusercontent.com/u/48144618?v=4'>
<meta property='og:image:alt' content='Braeden Sowinski profile photo'>
<meta name='twitter:card' content='summary_large_image'>
<meta name='twitter:title' content='Portfolio Entry | Braeden Sowinski'>
<meta name='twitter:description' content='Project entry or update from Braeden Sowinski.'>
<meta name='twitter:image' content='https://avatars.githubusercontent.com/u/48144618?v=4'>
<script>
(function() {
var params = new URLSearchParams(window.location.search);
var type = params.get("type");
var slug = params.get("slug");
if (!type || !slug) {
return;
}
var url = "https://sowinski.dev/entry.html?type=" + encodeURIComponent(type) + "&slug=" + encodeURIComponent(slug);
var canonical = document.querySelector("link[rel='canonical']");
var ogUrl = document.querySelector("meta[property='og:url']");
if (canonical) {
canonical.setAttribute("href", url);
}
if (ogUrl) {
ogUrl.setAttribute("content", url);
}
})();
</script>
<link rel="icon" type="image/svg+xml" href="./public/images/favicon.svg">
<link rel="stylesheet" href="./public/css/style.css">
<link rel="stylesheet" href="./public/css/projects.css">
</head>
<body class="js-stop-transition" data-page="projects">
<header class="header">
<nav class="nav">
<div class="logo">
<a href="./" title="sowinski.dev (Alt + H)">
<img src="https://avatars.githubusercontent.com/u/48144618?v=4" alt="Braeden Sowinski profile photo" style="border-radius:50%;"
aria-label="Braeden Sowinski profile photo" height="32">sowinski.dev
</a>
<span class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)">
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z" />
</svg>
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="5" />
<line x1="12" y1="1" x2="12" y2="3" />
<line x1="12" y1="21" x2="12" y2="23" />
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64" />
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78" />
<line x1="1" y1="12" x2="3" y2="12" />
<line x1="21" y1="12" x2="23" y2="12" />
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36" />
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22" />
</svg>
</button>
</span>
</div>
<ul id="menu" class="nav__links">
<li id="home-link">
<a href="./" title="Home">
<span class="active">Home</span>
</a>
</li>
<li id="about-link">
<a href="./about.html" title="About">
<span class="active">About</span>
</a>
</li>
<li id="projects-link">
<a href="./projects.html" title="Projects">
<span class="active">Projects</span>
</a>
</li>
</ul>
<p class="menu cta">Menu</p>
</nav>
<div id="mobile__menu" class="overlay">
<button type="button" class="close" aria-label="Close menu">&times;</button>
<div class="overlay__content">
<a href="./" title="Home"><span class="active">Home</span></a>
<a href="./about.html" title="About"><span class="active">About</span></a>
<a href="./projects.html" title="Projects"><span class="active">Projects</span></a>
</div>
</div>
</header>
<main class="entry-page page-shell">
<div id="entry-shell" class="entry-shell">
<p class="loading-state">Loading entry...</p>
</div>
</main>
<script src="./public/scripts/mobile.js"></script>
<script src="./public/scripts/theme.js"></script>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script src="./public/scripts/content.js"></script>
<script>
window.PORTFOLIO_CONTENT.initEntryPage();
</script>
</body>
</html>