ReviewOS

also looking at this

stacks/uplink

feat(homepage): say what a text can actually do

#64
Merged glennmichael123 wants to merge feat/say-what-a-text-can-do into main
11 files +149 -22

Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.

public/fonts/geist-latin-ext.woff2added+0-0

Binary file. Nothing to show line by line.

public/fonts/geist-latin.woff2added+0-0

Binary file. Nothing to show line by line.

public/fonts/geist-mono-latin-ext.woff2added+0-0

Binary file. Nothing to show line by line.

public/fonts/geist-mono-latin.woff2added+0-0

Binary file. Nothing to show line by line.

resources/partials/site-head.stxmodified+40-3
Changes to resources/partials/site-head.stx
@@ -76,10 +76,47 @@ const seo = {
7676<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
7777<link rel="apple-touch-icon" href="/apple-touch-icon.png">
7878<link rel="manifest" href="/site.webmanifest">
79<link rel="preconnect" href="https://fonts.googleapis.com">
80<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
81<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Geist:wght@400..700&family=Geist+Mono:wght@400..600&display=swap">
79<!-- Served from here rather than from Google. The stylesheet used to be
80 fetched from Google Fonts, with a preconnect to its CDN, so every
81 visitor's IP address and browser reached Google before a word rendered,
82 on a site whose privacy page is about your texts staying yours. Two
83 families, latin and latin-ext, 92 KB in total. -->
84<link rel="preload" href="/fonts/geist-latin.woff2" as="font" type="font/woff2" crossorigin>
85<link rel="preload" href="/fonts/geist-mono-latin.woff2" as="font" type="font/woff2" crossorigin>
8286<style>
87 @font-face {
88 font-family: "Geist";
89 font-style: normal;
90 font-weight: 400 700;
91 font-display: swap;
92 src: url("/fonts/geist-latin-ext.woff2") format("woff2");
93 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
94 }
95 @font-face {
96 font-family: "Geist";
97 font-style: normal;
98 font-weight: 400 700;
99 font-display: swap;
100 src: url("/fonts/geist-latin.woff2") format("woff2");
101 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
102 }
103 @font-face {
104 font-family: "Geist Mono";
105 font-style: normal;
106 font-weight: 400 600;
107 font-display: swap;
108 src: url("/fonts/geist-mono-latin-ext.woff2") format("woff2");
109 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
110 }
111 @font-face {
112 font-family: "Geist Mono";
113 font-style: normal;
114 font-weight: 400 600;
115 font-display: swap;
116 src: url("/fonts/geist-mono-latin.woff2") format("woff2");
117 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
118 }
119
83120 /* Tokens. One accent: sodium amber, the colour of the city lights in the photos. */
84121 :root {
85122 --paper: #fafaf9;
resources/views/404.stxmodified+35-3
Changes to resources/views/404.stx
@@ -24,10 +24,42 @@ notFound()
2424 <link rel="icon" href="/favicon.ico" sizes="48x48">
2525 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
2626 <link rel="apple-touch-icon" href="/apple-touch-icon.png">
27 <link rel="preconnect" href="https://fonts.googleapis.com">
28 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
29 <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Geist:wght@400..700&display=swap">
27 <!-- Self-hosted, like the shared head. This page has its own. -->
28 <link rel="preload" href="/fonts/geist-latin.woff2" as="font" type="font/woff2" crossorigin>
3029 <style>
30 @font-face {
31 font-family: "Geist";
32 font-style: normal;
33 font-weight: 400 700;
34 font-display: swap;
35 src: url("/fonts/geist-latin-ext.woff2") format("woff2");
36 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
37 }
38 @font-face {
39 font-family: "Geist";
40 font-style: normal;
41 font-weight: 400 700;
42 font-display: swap;
43 src: url("/fonts/geist-latin.woff2") format("woff2");
44 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
45 }
46 @font-face {
47 font-family: "Geist Mono";
48 font-style: normal;
49 font-weight: 400 600;
50 font-display: swap;
51 src: url("/fonts/geist-mono-latin-ext.woff2") format("woff2");
52 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
53 }
54 @font-face {
55 font-family: "Geist Mono";
56 font-style: normal;
57 font-weight: 400 600;
58 font-display: swap;
59 src: url("/fonts/geist-mono-latin.woff2") format("woff2");
60 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
61 }
62
3163 :root { --paper: #fafaf9; --ink: #18181b; --muted: #52525b; --accent: #f59e0b; --accent-ink: #b45309; }
3264 @media (prefers-color-scheme: dark) { :root { --paper: #0c0c0e; --ink: #f4f4f5; --muted: #a1a1aa; --accent-ink: #fbbf24; } }
3365 html body.uplink { background: var(--paper); color: var(--ink); font-family: 'Geist', ui-sans-serif, system-ui, sans-serif; }