Skip to content

Commit 84af2cb

Browse files
feat: product cohesion redesign + mobile optimization
Design system: - Add --c-surface-raised, --c-stamp-red tokens - New CSS classes: .record-card, .record-label, .record-value, .case-header, .mode-tab/.mode-tab--active Copy + voice (institutional burial-office tone): - CTA: "Issue Death Certificate" → "Declare Dead →" - Mode tabs: "Examine a Subject" / "Certify a Repo" - Random: "↯ exhume at random" - Banner: "@user — case filed" - Loading: "Reviewing commit history...", "Assessing cause of abandonment...", "Filing the paperwork..." - 404: "Record Not Found" / "return to the registry →" - Footer tagline: "official records of abandonment" About page: full rewrite as institutional service document - Sections: About the Service, Method of Examination, Records We Keep, Restricted Access, Support the Undertaker, Contact - Title: "The Undertaker's Office" UserDashboard: case file card redesign - Left-accent border per status (red/amber/green) - Cause of death visible on every card - Section intro lines per tab - Scrollable tab bar for small screens Mobile optimization: - .mode-tab: min-height 44px, full-width segmented control on mobile - .subpage-back-link: min-height 44px - Footer: padding-bottom clears fixed coffee-corner button - UserDashboard tabs: overflow-x scroll on narrow screens - CertificateCard back button: min-height 44px - Certificate mobile scale: 34–46% (was 30–40%) - ReadmeBadge copy button: min-height 44px - All footer nav links: min-height 44px Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent efa92dd commit 84af2cb

17 files changed

Lines changed: 1468 additions & 257 deletions

src/app/about/AboutContent.tsx

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
'use client'
2+
3+
import SubpageShell from '@/components/SubpageShell'
4+
5+
const SECTIONS = [
6+
{
7+
id: 'about-the-service',
8+
heading: 'About the Service',
9+
body: "A parody examination tool for abandoned GitHub repositories. Submit a URL and receive an official-looking certificate of death, complete with cause, date, and last recorded words.",
10+
},
11+
{
12+
id: 'method-of-examination',
13+
heading: 'Method of Examination',
14+
body: "We query the GitHub public API — commit history, star count, open issues, archive status — and run a severity assessment. The cause of death is algorithmic, not editorial. The results are accurate. The framing is not.",
15+
},
16+
{
17+
id: 'records-we-keep',
18+
heading: 'Records We Keep',
19+
body: "No accounts. No signups. We log the most recent burials (repo name, generated cause, score, timestamp) to populate the public record on the homepage. Anonymous usage metrics only.",
20+
},
21+
{
22+
id: 'restricted-access',
23+
heading: 'Restricted Access',
24+
body: "Public repositories only. We do not access private code, credentials, or any data not already available through GitHub's public API.",
25+
},
26+
{
27+
id: 'support-the-undertaker',
28+
heading: 'Support the Undertaker',
29+
body: "This service runs on a cheap server and a questionable amount of free time. If it made you laugh, a coffee keeps the lights on.",
30+
coffee: true,
31+
},
32+
{
33+
id: 'contact',
34+
heading: 'Contact',
35+
body: 'For anything that could not wait: ',
36+
email: 'dot.systems@proton.me',
37+
},
38+
]
39+
40+
export default function AboutContent() {
41+
return (
42+
<SubpageShell
43+
title="The Undertaker's Office"
44+
subtitle={
45+
<span style={{
46+
fontFamily: `var(--font-courier), system-ui, sans-serif`,
47+
fontSize: '12px',
48+
color: 'var(--c-muted)',
49+
letterSpacing: '0.04em',
50+
}}>
51+
Everything you need to know before the burial.
52+
</span>
53+
}
54+
microcopy={null}
55+
>
56+
<div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>
57+
{SECTIONS.map(({ id, heading, body, email, coffee }) => (
58+
<div
59+
key={id}
60+
className="record-card"
61+
style={{ border: '2px solid var(--c-border)' }}
62+
>
63+
<p className="record-label">{heading}</p>
64+
<p className="record-value" style={{ fontSize: 'clamp(14px, 3.8vw, 15px)', lineHeight: 1.75, color: 'var(--c-ink-2)' }}>
65+
{body}
66+
{email && (
67+
<a
68+
href={`mailto:${email}`}
69+
className="subpage-inline-mail"
70+
style={{ fontFamily: `var(--font-courier), system-ui, sans-serif` }}
71+
>
72+
{email}
73+
</a>
74+
)}
75+
</p>
76+
{coffee && (
77+
<a
78+
href="https://buymeacoffee.com/commitmentissues"
79+
target="_blank"
80+
rel="noopener noreferrer"
81+
className="subpage-faq-cta"
82+
style={{ marginTop: '14px', display: 'inline-flex' }}
83+
>
84+
☕ don&apos;t let us die
85+
</a>
86+
)}
87+
</div>
88+
))}
89+
</div>
90+
</SubpageShell>
91+
)
92+
}

0 commit comments

Comments
 (0)