|
16 | 16 | <meta name="twitter:description" content="The fastest, minimal Go autonomous agent runtime. ~11 MB static binary, zero frameworks."> |
17 | 17 | <meta name="keywords" content="Go, autonomous agent, AI agent, LLM, ReAct, MCP, Docker sandbox, CLI, zero-dependency, open-source"> |
18 | 18 | <meta name="robots" content="index, follow"> |
19 | | - <link rel="preconnect" href="https://fonts.googleapis.com"> |
20 | | - <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Outfit:wght@400;500;600;700;800&display=swap" rel="stylesheet"> |
| 19 | + <link rel="stylesheet" href="https://assets.21no.de/fonts/fonts.css"> |
| 20 | + <link rel="stylesheet" href="https://assets.21no.de/css/tokens.css"> |
21 | 21 | <style> |
22 | | - :root { |
23 | | - --bg: #0a0a0b; |
24 | | - --bg2: #121214; |
25 | | - --bg3: #1a1a1e; |
26 | | - --border: #252529; |
27 | | - --text: #e4e4e7; |
28 | | - --text2: #a1a1aa; |
29 | | - --accent: #38bdf8; |
30 | | - --accent2: #818cf8; |
31 | | - --green: #4ade80; |
32 | | - --amber: #fbbf24; |
33 | | - --red: #f87171; |
34 | | - } |
35 | 22 | * { margin: 0; padding: 0; box-sizing: border-box; } |
36 | 23 | body { |
37 | | - background: var(--bg); |
38 | | - color: var(--text); |
39 | | - font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif; |
| 24 | + background: var(--bg-primary); |
| 25 | + color: var(--text-primary); |
| 26 | + font-family: var(--font-sans); |
40 | 27 | line-height: 1.6; |
41 | 28 | -webkit-font-smoothing: antialiased; |
42 | 29 | } |
|
48 | 35 | padding: 16px 24px; max-width: 1008px; margin: 0 auto; |
49 | 36 | } |
50 | 37 | nav .logo { font-weight: 700; font-size: 1.25rem; color: var(--accent); } |
51 | | - nav .logo span { color: var(--text2); font-weight: 400; } |
52 | | - nav a { color: var(--text2); text-decoration: none; font-size: 0.875rem; transition: color .15s; margin-left: 24px; } |
53 | | - nav a:hover { color: var(--text); } |
| 38 | + nav .logo span { color: var(--text-secondary); font-weight: 400; } |
| 39 | + nav a { color: var(--text-secondary); text-decoration: none; font-size: 0.875rem; transition: color .15s; margin-left: 24px; } |
| 40 | + nav a:hover { color: var(--text-primary); } |
54 | 41 |
|
55 | 42 | /* ── Hero ── */ |
56 | 43 | .hero { |
|
59 | 46 | } |
60 | 47 | .hero h1 { |
61 | 48 | font-size: 3.5rem; font-weight: 800; letter-spacing: -.03em; |
62 | | - background: linear-gradient(135deg, var(--accent), var(--accent2)); |
| 49 | + background: linear-gradient(135deg, var(--accent), var(--purple)); |
63 | 50 | -webkit-background-clip: text; -webkit-text-fill-color: transparent; |
64 | 51 | background-clip: text; |
65 | 52 | } |
66 | 53 | .hero .sub { |
67 | | - font-size: 1.15rem; color: var(--text2); margin-top: 16px; max-width: 600px; margin-inline: auto; |
| 54 | + font-size: 1.15rem; color: var(--text-secondary); margin-top: 16px; max-width: 600px; margin-inline: auto; |
68 | 55 | } |
69 | 56 | .hero .sub .size { color: var(--green); font-weight: 600; } |
70 | 57 | .install-block { |
71 | 58 | display: inline-flex; align-items: center; padding: 4px 4px 4px 20px; |
72 | | - background: var(--bg3); border: 1px solid var(--border); border-radius: 12px; |
73 | | - font-family: 'JetBrains Mono', monospace; font-size: 0.875rem; |
| 59 | + background: var(--bg-card); border: 1px solid var(--border-subtle); border-radius: 12px; |
| 60 | + font-family: var(--font-mono); font-size: 0.875rem; |
74 | 61 | position: relative; |
75 | 62 | } |
76 | 63 | .hero .install-block { |
|
87 | 74 |
|
88 | 75 | /* ── Copy button ── */ |
89 | 76 | .copy-btn { |
90 | | - background: transparent; border: 1px solid var(--border); color: var(--text2); |
| 77 | + background: transparent; border: 1px solid var(--border-subtle); color: var(--text-secondary); |
91 | 78 | padding: 6px 10px; border-radius: 6px; cursor: pointer; font-size: 0.75rem; |
92 | | - font-family: 'Outfit', sans-serif; transition: all .15s; margin-left: 12px; |
| 79 | + font-family: var(--font-sans); transition: all .15s; margin-left: 12px; |
93 | 80 | white-space: nowrap; line-height: 1; |
94 | 81 | } |
95 | 82 | .copy-btn:hover { border-color: var(--accent); color: var(--accent); } |
|
98 | 85 |
|
99 | 86 | /* ── Sections ── */ |
100 | 87 | section { padding: 64px 0; } |
101 | | - section + section { border-top: 1px solid var(--border); } |
| 88 | + section + section { border-top: 1px solid var(--border-subtle); } |
102 | 89 | h2 { |
103 | 90 | font-size: 1.75rem; font-weight: 700; margin-bottom: 24px; |
104 | 91 | letter-spacing: -.02em; |
|
107 | 94 | h3 { |
108 | 95 | font-size: 1.125rem; font-weight: 600; margin-bottom: 8px; margin-top: 28px; |
109 | 96 | } |
110 | | - p, li { color: var(--text2); font-size: 0.9375rem; } |
| 97 | + p, li { color: var(--text-secondary); font-size: 0.9375rem; } |
111 | 98 | a { color: var(--accent); text-decoration: none; } |
112 | 99 | a:hover { text-decoration: underline; } |
113 | 100 |
|
114 | 101 | /* ── Five Whys ── */ |
115 | 102 | .whys { list-style: none; } |
116 | 103 | .whys li { |
117 | | - padding: 20px 0; border-bottom: 1px solid var(--border); |
| 104 | + padding: 20px 0; border-bottom: 1px solid var(--border-subtle); |
118 | 105 | display: flex; gap: 16px; align-items: flex-start; |
119 | 106 | } |
120 | 107 | .whys li:last-child { border-bottom: none; } |
121 | 108 | .whys li .q { font-weight: 700; color: var(--accent); min-width: 60px; font-size: 1rem; } |
122 | | - .whys li .a { color: var(--text2); } |
123 | | - .whys li .a strong { color: var(--text); } |
| 109 | + .whys li .a { color: var(--text-secondary); } |
| 110 | + .whys li .a strong { color: var(--text-primary); } |
124 | 111 |
|
125 | 112 | /* ── Feature grid ── */ |
126 | 113 | .features { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; } |
127 | 114 | .features .card { |
128 | | - background: var(--bg2); border: 1px solid var(--border); border-radius: 12px; |
| 115 | + background: var(--bg-secondary); border: 1px solid var(--border-subtle); border-radius: 12px; |
129 | 116 | padding: 24px; |
130 | 117 | } |
131 | 118 | .features .card .icon { font-size: 1.5rem; margin-bottom: 8px; } |
|
134 | 121 |
|
135 | 122 | /* ── Terminal carousel ── */ |
136 | 123 | .carousel { |
137 | | - background: #0d0d11; border: 1px solid var(--border); border-radius: 12px; |
| 124 | + background: #0d0d11; border: 1px solid var(--border-subtle); border-radius: 12px; |
138 | 125 | overflow: hidden; margin: 20px 0; |
139 | 126 | } |
140 | 127 | .carousel .bar { |
141 | 128 | display: flex; align-items: center; gap: 8px; |
142 | | - padding: 8px 16px; background: var(--bg2); |
143 | | - border-bottom: 1px solid var(--border); |
| 129 | + padding: 8px 16px; background: var(--bg-secondary); |
| 130 | + border-bottom: 1px solid var(--border-subtle); |
144 | 131 | } |
145 | 132 | .carousel .bar .dot { width: 10px; height: 10px; border-radius: 50%; } |
146 | 133 | .carousel .bar .dot:nth-child(1) { background: #ff5f56; } |
147 | 134 | .carousel .bar .dot:nth-child(2) { background: #ffbd2e; } |
148 | 135 | .carousel .bar .dot:nth-child(3) { background: #27c93f; } |
149 | 136 | .carousel .bar .label { |
150 | | - margin-left: auto; font-size: 0.75rem; color: var(--text2); |
151 | | - font-family: 'JetBrains Mono', monospace; |
| 137 | + margin-left: auto; font-size: 0.75rem; color: var(--text-secondary); |
| 138 | + font-family: var(--font-mono); |
152 | 139 | } |
153 | 140 | .carousel .slides { |
154 | 141 | position: relative; min-height: 280px; |
155 | 142 | } |
156 | 143 | .carousel .slide { |
157 | 144 | position: absolute; inset: 0; padding: 20px 24px; |
158 | 145 | opacity: 0; transition: opacity .6s ease; |
159 | | - font-family: 'JetBrains Mono', monospace; font-size: 0.8125rem; |
| 146 | + font-family: var(--font-mono); font-size: 0.8125rem; |
160 | 147 | line-height: 1.7; overflow-y: auto; |
161 | 148 | pointer-events: none; |
162 | 149 | } |
163 | 150 | .carousel .slide.active { opacity: 1; position: relative; pointer-events: auto; } |
164 | 151 | .carousel .slide .prompt { color: var(--green); } |
165 | | - .carousel .slide .output { color: var(--text2); } |
| 152 | + .carousel .slide .output { color: var(--text-secondary); } |
166 | 153 | .carousel .slide .info { color: #6b7280; font-style: italic; } |
167 | 154 | .carousel .nav { |
168 | 155 | display: flex; justify-content: center; gap: 8px; |
169 | 156 | padding: 8px 0 16px; |
170 | 157 | } |
171 | 158 | .carousel .nav button { |
172 | | - background: var(--bg3); border: 1px solid var(--border); color: var(--text2); |
| 159 | + background: var(--bg-card); border: 1px solid var(--border-subtle); color: var(--text-secondary); |
173 | 160 | width: 32px; height: 32px; border-radius: 50%; cursor: pointer; |
174 | 161 | font-size: 0.75rem; transition: all .15s; |
175 | 162 | } |
|
179 | 166 | /* ── Install steps ── */ |
180 | 167 | .steps { list-style: none; } |
181 | 168 | .steps li { |
182 | | - padding: 16px 0; border-bottom: 1px solid var(--border); |
| 169 | + padding: 16px 0; border-bottom: 1px solid var(--border-subtle); |
183 | 170 | display: flex; gap: 16px; |
184 | 171 | } |
185 | 172 | .steps li:last-child { border-bottom: none; } |
|
189 | 176 | font-weight: 700; font-size: 0.8125rem; flex-shrink: 0; margin-top: 2px; |
190 | 177 | } |
191 | 178 | .steps li code { |
192 | | - background: var(--bg3); padding: 2px 8px; border-radius: 4px; |
193 | | - font-family: 'JetBrains Mono', monospace; font-size: 0.8125rem; |
| 179 | + background: var(--bg-card); padding: 2px 8px; border-radius: 4px; |
| 180 | + font-family: var(--font-mono); font-size: 0.8125rem; |
194 | 181 | } |
195 | 182 |
|
196 | 183 | /* ── Code blocks ── */ |
197 | 184 | pre { |
198 | | - background: var(--bg3); border: 1px solid var(--border); border-radius: 10px; |
| 185 | + background: var(--bg-card); border: 1px solid var(--border-subtle); border-radius: 10px; |
199 | 186 | padding: 20px; overflow-x: auto; font-size: 0.8125rem; margin: 16px 0; |
200 | 187 | position: relative; |
201 | 188 | } |
202 | | - pre code { font-family: 'JetBrains Mono', monospace; color: var(--text); } |
| 189 | + pre code { font-family: var(--font-mono); color: var(--text-primary); } |
203 | 190 | pre .clip { |
204 | 191 | position: absolute; top: 12px; right: 12px; |
205 | | - background: var(--bg2); border: 1px solid var(--border); color: var(--text2); |
| 192 | + background: var(--bg-secondary); border: 1px solid var(--border-subtle); color: var(--text-secondary); |
206 | 193 | padding: 4px 10px; border-radius: 5px; cursor: pointer; font-size: 0.6875rem; |
207 | | - font-family: 'Outfit', sans-serif; transition: all .15s; |
| 194 | + font-family: var(--font-sans); transition: all .15s; |
208 | 195 | } |
209 | 196 | pre .clip:hover { border-color: var(--accent); color: var(--accent); } |
210 | 197 | pre .clip.copied { border-color: var(--green); color: var(--green); } |
211 | 198 | .hljs-comment { color: #6b7280; } |
212 | 199 | .hljs-string { color: var(--green); } |
213 | 200 | .hljs-keyword { color: var(--accent); } |
214 | | - .hljs-number { color: var(--amber); } |
| 201 | + .hljs-number { color: var(--yellow); } |
215 | 202 |
|
216 | 203 | /* ── Platform tags ── */ |
217 | 204 | .platform-tags { |
218 | 205 | display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; |
219 | 206 | } |
220 | 207 | .platform-tags .tag { |
221 | | - background: var(--bg3); border: 1px solid var(--border); border-radius: 6px; |
222 | | - padding: 6px 12px; font-size: 0.75rem; font-family: 'JetBrains Mono', monospace; |
223 | | - color: var(--text2); |
| 208 | + background: var(--bg-card); border: 1px solid var(--border-subtle); border-radius: 6px; |
| 209 | + padding: 6px 12px; font-size: 0.75rem; font-family: var(--font-mono); |
| 210 | + color: var(--text-secondary); |
224 | 211 | } |
225 | 212 | .platform-tags .tag .ok { color: var(--green); } |
226 | 213 |
|
227 | 214 | /* ── Table comparison ── */ |
228 | 215 | .compare { width: 100%; border-collapse: collapse; font-size: 0.875rem; } |
229 | 216 | .compare th, .compare td { |
230 | | - text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--border); |
| 217 | + text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--border-subtle); |
231 | 218 | } |
232 | | - .compare th { color: var(--text2); font-weight: 500; } |
233 | | - .compare td:first-child { font-weight: 500; color: var(--text); } |
| 219 | + .compare th { color: var(--text-secondary); font-weight: 500; } |
| 220 | + .compare td:first-child { font-weight: 500; color: var(--text-primary); } |
234 | 221 | .compare .win { color: var(--green); font-weight: 600; } |
235 | 222 |
|
236 | 223 | /* ── Command list ── */ |
237 | 224 | .cmd-list { list-style: none; } |
238 | 225 | .cmd-list li { |
239 | 226 | padding: 10px 0; display: flex; gap: 16px; |
240 | | - border-bottom: 1px solid var(--border); font-family: 'JetBrains Mono', monospace; font-size: 0.8125rem; |
| 227 | + border-bottom: 1px solid var(--border-subtle); font-family: var(--font-mono); font-size: 0.8125rem; |
241 | 228 | } |
242 | 229 | .cmd-list li:last-child { border-bottom: none; } |
243 | 230 | .cmd-list li .cmd { color: var(--green); white-space: nowrap; min-width: 220px; } |
244 | | - .cmd-list li .desc { color: var(--text2); } |
| 231 | + .cmd-list li .desc { color: var(--text-secondary); } |
245 | 232 |
|
246 | 233 | /* ── Doc links ── */ |
247 | 234 | .doc-links { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; } |
248 | 235 | .doc-links a { |
249 | | - background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; |
| 236 | + background: var(--bg-secondary); border: 1px solid var(--border-subtle); border-radius: 8px; |
250 | 237 | padding: 14px 16px; font-size: 0.8125rem; font-weight: 500; transition: border-color .15s; |
251 | 238 | } |
252 | 239 | .doc-links a:hover { border-color: var(--accent); text-decoration: none; } |
253 | | - .doc-links a span { display: block; font-weight: 400; color: var(--text2); font-size: 0.75rem; margin-top: 2px; } |
| 240 | + .doc-links a span { display: block; font-weight: 400; color: var(--text-secondary); font-size: 0.75rem; margin-top: 2px; } |
254 | 241 |
|
255 | 242 | /* ── Footer ── */ |
256 | 243 | footer { |
257 | | - border-top: 1px solid var(--border); padding: 32px 0; text-align: center; |
258 | | - color: var(--text2); font-size: 0.8125rem; |
| 244 | + border-top: 1px solid var(--border-subtle); padding: 32px 0; text-align: center; |
| 245 | + color: var(--text-secondary); font-size: 0.8125rem; |
259 | 246 | } |
260 | 247 | footer a { color: var(--accent); } |
261 | 248 |
|
@@ -368,7 +355,7 @@ <h2>The <span class="hl">Five Whys</span></h2> |
368 | 355 | <!-- ═══ Terminal Demos Carousel ═══ --> |
369 | 356 | <section id="demos"> |
370 | 357 | <h2>See it in <span class="hl">action</span></h2> |
371 | | - <p style="margin-bottom:20px;color:var(--text2);font-size:0.9375rem"> |
| 358 | + <p style="margin-bottom:20px;color:var(--text-secondary);font-size:0.9375rem"> |
372 | 359 | Real terminal output from real runs. Click through the examples. |
373 | 360 | </p> |
374 | 361 |
|
@@ -575,7 +562,7 @@ <h2>Install in <span class="hl">5 seconds</span></h2> |
575 | 562 | </ul> |
576 | 563 |
|
577 | 564 | <h3>One-line binary install</h3> |
578 | | - <p style="color:var(--text2);font-size:0.875rem;margin-bottom:16px"> |
| 565 | + <p style="color:var(--text-secondary);font-size:0.875rem;margin-bottom:16px"> |
579 | 566 | No Go toolchain? Auto-detects your OS and architecture: |
580 | 567 | </p> |
581 | 568 |
|
|
0 commit comments