Skip to content

Commit 2b4b352

Browse files
committed
feat(website): wire blog.weids.dev into main site navigation
1 parent 114cad4 commit 2b4b352

5 files changed

Lines changed: 71 additions & 795 deletions

File tree

src/routes/+layout.svelte

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,25 @@
1313
const navLinks = [
1414
{ label: 'Home', href: '/', external: false },
1515
{ label: 'Wrappers', href: '/#wrappers', external: false },
16-
{ label: 'About', href: '/about', external: false },
17-
{ label: 'Blog', href: 'https://org.weids.dev', external: true },
16+
{ label: 'About', href: 'https://org.weids.dev', external: true },
17+
{ label: 'Blog', href: 'https://blog.weids.dev', external: true },
1818
];
1919
2020
const overlayExtras = [
21-
{ label: 'Developers', href: 'https://docs.weids.dev', external: true },
21+
{ label: 'Developers', href: 'https://github.com/weids-dev/wrappers', external: true },
2222
{ label: 'Paper', href: '/papers/a_survey_of_verifiable_computing.pdf', external: true },
2323
];
2424
2525
const blogEntries = [
2626
{
27-
title: 'A Survey of Interactive Verifiable Computing',
28-
meta: 'IACR ePrint 2025/008 · Jan 2025',
29-
link: '/papers/a_survey_of_verifiable_computing.pdf',
27+
title: 'Wrappers — A Manifesto',
28+
meta: 'blog.weids.dev · Apr 2026',
29+
link: 'https://blog.weids.dev/2026/04/25/manifesto.html',
3030
},
3131
{
32-
title: 'Notes on Wrappers, sum-check, and verifiable computing',
33-
meta: 'org.weids.dev — ongoing',
34-
link: 'https://org.weids.dev',
32+
title: 'GKR Explained: From Cubes to Curves',
33+
meta: 'org.weids.dev · tutorial',
34+
link: 'https://org.weids.dev/agenda/notes/gkr-sum-check-tutorial.html',
3535
},
3636
];
3737
@@ -43,6 +43,22 @@
4343
menuOpen = !menuOpen;
4444
}
4545
46+
// Hover-to-open (comma.ai-style). A small close delay lets the cursor
47+
// hand off from the hamburger into the fullscreen overlay without the
48+
// menu flickering closed in the process.
49+
let closeTimer;
50+
function openMenu() {
51+
if (closeTimer) { clearTimeout(closeTimer); closeTimer = null; }
52+
menuOpen = true;
53+
}
54+
function scheduleClose() {
55+
if (closeTimer) clearTimeout(closeTimer);
56+
closeTimer = setTimeout(() => { menuOpen = false; closeTimer = null; }, 150);
57+
}
58+
function cancelClose() {
59+
if (closeTimer) { clearTimeout(closeTimer); closeTimer = null; }
60+
}
61+
4662
$: activePath = $page.url.pathname;
4763
</script>
4864

@@ -56,6 +72,8 @@
5672
aria-label={menuOpen ? 'Close menu' : 'Open menu'}
5773
aria-expanded={menuOpen}
5874
on:click={toggleMenu}
75+
on:mouseenter={openMenu}
76+
on:mouseleave={scheduleClose}
5977
>
6078
<span></span>
6179
<span></span>
@@ -88,7 +106,7 @@
88106
</nav>
89107

90108
<div class="nav__right">
91-
<a class="nav__cta" href="https://docs.weids.dev" target="_blank" rel="noopener noreferrer">
109+
<a class="nav__cta" href="https://github.com/weids-dev/wrappers" target="_blank" rel="noopener noreferrer">
92110
<span class="nav__cta-label">Developers</span>
93111
<span class="nav__cta-arrow" aria-hidden="true">→</span>
94112
</a>
@@ -97,7 +115,14 @@
97115
</header>
98116

99117
{#if menuOpen}
100-
<div class="nav__overlay" role="dialog" aria-modal="true" aria-label="Site navigation">
118+
<div
119+
class="nav__overlay"
120+
role="dialog"
121+
aria-modal="true"
122+
aria-label="Site navigation"
123+
on:mouseenter={cancelClose}
124+
on:mouseleave={scheduleClose}
125+
>
101126
<div class="nav__overlay-inner">
102127
<div class="nav__overlay-links">
103128
{#each navLinks as link}

src/routes/+page.svelte

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -365,9 +365,9 @@
365365
<div class="hero__header">
366366
<span class="hero__intro-tag">[ introducing <a class="hero__intro-icon-link" href="https://github.com/weids-dev/wrappers" target="_blank" rel="noopener noreferrer" aria-label="Wrappers on GitHub"><img class="hero__intro-icon" src="/brand/icon-electric-anim.svg" alt="W" /></a>rappers ]</span>
367367
<h2 class="hero__slogan">{wrappers.tagline}</h2>
368-
<a class="hero__manifesto" href="/wrappers">
368+
<a class="hero__read-cta" href="https://blog.weids.dev/2026/04/25/manifesto.html" target="_blank" rel="noopener noreferrer">
369369
<span>Read the manifesto</span>
370-
<span class="hero__manifesto-arrow" aria-hidden="true"></span>
370+
<span class="hero__read-cta-arrow" aria-hidden="true"></span>
371371
</a>
372372
</div>
373373
@@ -743,47 +743,41 @@
743743
white-space: nowrap;
744744
}
745745
746-
.hero__manifesto {
746+
/* Secondary CTA under the slogan — mirrors .lab__cta style (quiet mono,
747+
muted → white on hover), with the brand-red arrow tilted for "outbound"
748+
semantics (opens blog.weids.dev/…/manifesto in a new tab). */
749+
.hero__read-cta {
747750
display: inline-flex;
748751
align-items: center;
749752
gap: 0.55rem;
750-
margin-top: 0.25rem;
751-
padding: 8px 18px;
752-
background-color: transparent;
753-
border: 1px solid var(--card-border);
754-
border-radius: 999px;
753+
margin-top: clamp(0.6rem, 1.4vh, 1.1rem);
754+
color: var(--fg-muted);
755755
font-family: var(--font-mono);
756-
font-size: 10.5px;
756+
font-size: 11px;
757757
font-weight: 500;
758-
letter-spacing: 0.12em;
758+
letter-spacing: 0.18em;
759759
text-transform: uppercase;
760-
color: var(--fg-secondary);
761760
text-decoration: none;
762-
cursor: pointer;
763-
transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
761+
transition: color 0.22s ease;
764762
}
765763
766-
.hero__manifesto:hover {
767-
border-color: rgba(227, 32, 41, 0.3);
764+
.hero__read-cta:hover {
768765
color: var(--fg-primary);
769-
background-color: rgba(227, 32, 41, 0.04);
770766
}
771767
772-
.hero__manifesto-arrow {
768+
.hero__read-cta-arrow {
769+
font-family: var(--font-sans);
773770
font-size: 13px;
774771
line-height: 1;
775772
color: var(--brand-red);
776-
transition: transform 0.2s ease;
773+
transition: transform 0.22s ease;
777774
}
778775
779-
.hero__manifesto:hover .hero__manifesto-arrow {
780-
transform: translateX(3px);
776+
.hero__read-cta:hover .hero__read-cta-arrow {
777+
transform: translate(2px, -2px);
781778
}
782779
783-
/* Stage is a flex row with endpoints flanking the cards.
784-
The pipeline line runs across the full stage width at y=50%,
785-
occluded by cards and endpoint labels (which sit at z-index 1)
786-
so the traveling dot appears to pulse through the gaps between nodes. */
780+
/* Stage is a flex row with endpoints flanking the cards. */
787781
.hero__stage {
788782
order: 1;
789783
position: relative;

0 commit comments

Comments
 (0)