Skip to content

Commit e7688c9

Browse files
polish(web): hero h1, JP cursor labels, sitemap cleanup
- promote hero title to h1, rewrite lede so the subject leads - drop redundant 朱 paperStamp on hero canvas; masthead carries the mark - cursor labels become 朱 / 読 / → with JP serif sizing - sitemap drops fragment URLs (Google ignores them); remove unused /og/[section] route and its stale comment in layout
1 parent 96b2cbb commit e7688c9

7 files changed

Lines changed: 31 additions & 165 deletions

File tree

web/app/globals.css

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,11 +438,27 @@ em { font-style: normal; color: var(--vermilion); font-weight: 600; font-family:
438438
box-shadow: 0 0 18px -2px rgba(232, 80, 58, 0.55);
439439
}
440440
#cursor .label {
441-
opacity: 0;
442-
transition: opacity 180ms;
441+
opacity: 0.7;
442+
transition: opacity 180ms, font-size 180ms var(--ease-out);
443+
font-family: var(--f-jp), 'Noto Serif JP', serif;
444+
font-size: 13px;
445+
letter-spacing: 0;
446+
text-transform: none;
447+
font-weight: 600;
448+
line-height: 1;
443449
}
444450
#cursor.is-link .label,
445451
#cursor.is-card .label { opacity: 1; }
452+
#cursor.is-link .label {
453+
font-family: var(--f-mono);
454+
font-size: 14px;
455+
font-weight: 400;
456+
}
457+
#cursor.is-card .label {
458+
font-family: var(--f-jp), 'Noto Serif JP', serif;
459+
font-size: 22px;
460+
font-weight: 600;
461+
}
446462
@media (pointer: coarse) {
447463
#cursor,
448464
#cursor-dot { display: none; }

web/app/layout.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@ export const metadata: Metadata = {
6161
},
6262
};
6363

64-
// Authors can hand-share per-section OG cards via /og/{hero,kg2,demo,manifest}.
65-
// These dynamic routes are statically rendered at build time (see app/og/[section]/route.tsx).
6664
const SCHEMA = {
6765
"@context": "https://schema.org",
6866
"@type": "SoftwareApplication",

web/app/og/[section]/route.tsx

Lines changed: 0 additions & 142 deletions
This file was deleted.

web/app/sitemap.ts

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,14 @@ import type { MetadataRoute } from "next";
33
export const dynamic = "force-static";
44

55
const BASE = "https://yuholens.site";
6-
const ANCHORS = ["problem", "how", "demo", "kg2", "manifest", "faq"] as const;
76

87
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
9-
const now = new Date();
108
return [
119
{
1210
url: `${BASE}/`,
13-
lastModified: now,
11+
lastModified: new Date(),
1412
changeFrequency: "weekly",
1513
priority: 1,
1614
},
17-
...ANCHORS.map((anchor) => ({
18-
url: `${BASE}/#${anchor}`,
19-
lastModified: now,
20-
changeFrequency: "weekly" as const,
21-
priority: 0.7,
22-
})),
2315
];
2416
}

web/components/canvas/paper-rail.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -319,9 +319,6 @@ const buildHero = (g: CanvasRenderingContext2D) => {
319319
g.fillText("[1] 営業利益率, p.23 §2.1", 70, y + 36);
320320
g.fillText("[2] 為替予約, p.24 §2.1", 70, y + 64);
321321

322-
// Vermilion 朱 hanko at the lower right — signs the page like a
323-
// chop on a real filing.
324-
paperStamp(g, TEX_W - 180, TEX_H - 220, "朱");
325322
paperFooter(g, "YUHOLENS · ingest", "span-cited · ✓");
326323
};
327324

web/components/sections/hero.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,10 @@ export function Hero() {
170170
<span className="hero-stage__sep">·</span>
171171
<span className="jp" lang="ja">有価証券報告書、英訳</span>
172172
</p>
173-
<h2 className="hero-stage__title">
174-
<span className="line">Translated with</span>
175-
<span className="line"><em>span-cited</em> receipts.</span>
176-
</h2>
173+
<h1 className="hero-stage__title">
174+
<span className="line">Japan&rsquo;s annual reports.</span>
175+
<span className="line">Read in English. With <em>span-cited</em> receipts.</span>
176+
</h1>
177177
<p className="hero-stage__sub">
178178
<span className="jp-loan">Yūhō</span> are Japan&rsquo;s annual securities reports: the equivalent of US 10-Ks, ~88,000 pages filed each year by listed companies. <strong>YuhoLens</strong> reads them in English with every claim, currency, margin, and segment linked back to a page and span in the source. Open weights, GGUF on AMD silicon.
179179
</p>

web/components/ui/custom-cursor.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export function CustomCursor() {
4040
const previewMeta = previewMetaRef.current;
4141
if (!ring || !dot || !label) return;
4242
if (!preview || !previewEyebrow || !previewTitle || !previewMeta) return;
43+
label.textContent = "朱";
4344

4445
let mx = window.innerWidth / 2;
4546
let my = window.innerHeight / 2;
@@ -111,13 +112,17 @@ export function CustomCursor() {
111112
const setCard = () => {
112113
ring.classList.add("is-card");
113114
ring.classList.remove("is-link");
114-
label.textContent = "READ";
115+
label.textContent = "";
115116
};
116117
const setLink = () => {
117118
ring.classList.add("is-link");
118119
ring.classList.remove("is-card");
119120
label.textContent = "→";
120121
};
122+
const setIdle = () => {
123+
ring.classList.remove("is-link", "is-card");
124+
label.textContent = "朱";
125+
};
121126

122127
const showPreview = (key: string) => {
123128
const data = lookupPreview(key);
@@ -168,7 +173,7 @@ export function CustomCursor() {
168173
setLink();
169174
return;
170175
}
171-
ring.classList.remove("is-link", "is-card");
176+
setIdle();
172177
};
173178

174179
const onOut = (e: MouseEvent) => {
@@ -183,7 +188,7 @@ export function CustomCursor() {
183188
) {
184189
return;
185190
}
186-
ring.classList.remove("is-link", "is-card");
191+
setIdle();
187192
};
188193

189194
const onKeyDown = (e: KeyboardEvent) => {

0 commit comments

Comments
 (0)