Files
.profile/entry.html
T
SowinskiBraedenandClaude Opus 5 7078cda6c5 render an ASCII torus behind thicker glass, drop the light theme
- Replace the flat dither backdrop with a lit, rotating torus drawn the
  way donut.c does it: a z-buffer per cell and a luminance ramp from a
  dot to a solid block, sized against the shorter viewport axis. The
  dither field stays underneath as dust. It leads on the landing page
  and fades back where there is reading to do, and a scrim keeps the
  projects heading legible over it.
- Thicken the glass: one .surface treatment with a heavier blur, more
  transparency and an SVG film grain, shared by the header, hero,
  cards, panels and footer.
- Give the landing page labelled contact cards for LinkedIn, Gitea and
  email in place of three bare icons.
- Drop the status chips from project cards and entry headers.
- Remove the light theme, its toggle and theme.js outright.
- Add restrained motion: underlines growing from the left on links and
  nav items, a lift on cards, buttons and contact cards, and tags
  brightening with their card. All of it is off under
  prefers-reduced-motion.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-10-18 00:10:00 -07:00

110 lines
4.1 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 data-page="projects">
<canvas id="ascii-bg" aria-hidden="true"></canvas>
<header class="header surface">
<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>
</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 surface">
<p class="loading-state">Loading entry...</p>
</div>
</main>
<script src="./public/scripts/mobile.js"></script>
<script src="./public/scripts/ascii-bg.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>