umanggarg Claude Sonnet 4.6 commited on
Commit
95f2e5f
Β·
1 Parent(s): 7521e38

fix+style: homepage UX fixes and Anthropic Sans font

Browse files

- Switch to Anthropic Sans + Anthropic Mono (same as rag-research-copilot)
for a dramatically more premium, refined typographic feel
- Landing page headline: 26px β†’ 38px, tighter line-height and tracking
- Onboarding steps: always show 1/2/3 (never auto-check step 1 on landing page)
- All repos: clicking active "All repos" now toggles back to homepage (null)
- Active repo: clicking it again now goes to homepage (null) not "all"
- Delete repo: still goes to "all" (makes sense, repo is gone)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

ui/src/App.jsx CHANGED
@@ -728,15 +728,15 @@ export default function App() {
728
  <div className="onboarding-headline">Understand any GitHub repository</div>
729
  <div className="onboarding-sub">Index any public repo and ask questions about the code β€” architecture, data flow, classes, functions, and more.</div>
730
  </div>
731
- <div className={`onboarding-step ${repos.length === 0 ? "active" : "done"}`}>
732
- <span className="step-num">{repos.length > 0 ? "βœ“" : "1"}</span>
733
  <div>
734
  <strong>Paste a GitHub URL in the sidebar</strong>
735
  <p>e.g. <code>github.com/karpathy/nanoGPT</code> or <code>github.com/langchain-ai/langchain</code></p>
736
  <p>The app downloads and indexes every function and class.</p>
737
  </div>
738
  </div>
739
- <div className={`onboarding-step ${repos.length > 0 ? "active" : ""}`}>
740
  <span className="step-num">2</span>
741
  <div>
742
  <strong>Ask anything about the repo</strong>
 
728
  <div className="onboarding-headline">Understand any GitHub repository</div>
729
  <div className="onboarding-sub">Index any public repo and ask questions about the code β€” architecture, data flow, classes, functions, and more.</div>
730
  </div>
731
+ <div className="onboarding-step active">
732
+ <span className="step-num">1</span>
733
  <div>
734
  <strong>Paste a GitHub URL in the sidebar</strong>
735
  <p>e.g. <code>github.com/karpathy/nanoGPT</code> or <code>github.com/langchain-ai/langchain</code></p>
736
  <p>The app downloads and indexes every function and class.</p>
737
  </div>
738
  </div>
739
+ <div className="onboarding-step">
740
  <span className="step-num">2</span>
741
  <div>
742
  <strong>Ask anything about the repo</strong>
ui/src/components/Sidebar.jsx CHANGED
@@ -437,7 +437,7 @@ export default function Sidebar({ repos, reposLoading, activeRepo, onSelectRepo,
437
  <div className="repo-list">
438
  <div
439
  className={`repo-item ${activeRepo === "all" ? "active" : ""}`}
440
- onClick={() => onSelectRepo("all")}
441
  >
442
  <span className="repo-slug">All repos</span>
443
  </div>
@@ -449,7 +449,7 @@ export default function Sidebar({ repos, reposLoading, activeRepo, onSelectRepo,
449
  <div
450
  key={r.slug}
451
  className={`repo-item ${activeRepo === r.slug ? "active" : ""}`}
452
- onClick={() => onSelectRepo(activeRepo === r.slug ? "all" : r.slug)}
453
  >
454
  <div className="repo-item-main">
455
  <span className="repo-slug">{r.slug}</span>
 
437
  <div className="repo-list">
438
  <div
439
  className={`repo-item ${activeRepo === "all" ? "active" : ""}`}
440
+ onClick={() => onSelectRepo(activeRepo === "all" ? null : "all")}
441
  >
442
  <span className="repo-slug">All repos</span>
443
  </div>
 
449
  <div
450
  key={r.slug}
451
  className={`repo-item ${activeRepo === r.slug ? "active" : ""}`}
452
+ onClick={() => onSelectRepo(activeRepo === r.slug ? null : r.slug)}
453
  >
454
  <div className="repo-item-main">
455
  <span className="repo-slug">{r.slug}</span>
ui/src/index.css CHANGED
@@ -8,7 +8,27 @@
8
  Warmer and earthier than amber, more "drawn" than digital.
9
  Every surface is slightly warm β€” no cold values anywhere.
10
  ════════════════════════════════════════════════════════════════════════ */
11
- @import url('https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
 
13
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
14
  html { height: 100dvh; background: #1A1916; overflow: hidden; }
@@ -62,8 +82,8 @@ html { height: 100dvh; background: #1A1916; overflow: hidden; }
62
  --pill-bg: var(--surface-3);
63
 
64
  /* Typography */
65
- --sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
66
- --mono: "Geist Mono", "JetBrains Mono", "Fira Code", monospace;
67
 
68
  /* Spacing (8px grid) */
69
  --space-1: 4px; --space-2: 8px; --space-3: 12px;
@@ -1254,21 +1274,22 @@ textarea:focus-visible {
1254
  display: flex;
1255
  flex-direction: column;
1256
  gap: 12px;
1257
- max-width: 500px;
1258
  width: 100%;
1259
  }
1260
 
1261
  /* Header for onboarding section */
1262
  .onboarding-header {
1263
  text-align: center;
1264
- margin-bottom: 8px;
1265
  }
1266
 
1267
  .onboarding-headline {
1268
- font-size: 26px;
1269
  font-weight: 700;
1270
- letter-spacing: -0.04em;
1271
- margin-bottom: 8px;
 
1272
  /* warm parchment β†’ sienna β€” no cold grays */
1273
  background: linear-gradient(120deg, #EDE4CE 20%, var(--accent-soft) 80%);
1274
  -webkit-background-clip: text;
@@ -1277,9 +1298,10 @@ textarea:focus-visible {
1277
  }
1278
 
1279
  .onboarding-sub {
1280
- font-size: 14px;
1281
  color: var(--text-2);
1282
- line-height: 1.6;
 
1283
  }
1284
 
1285
  .onboarding-step {
 
8
  Warmer and earthier than amber, more "drawn" than digital.
9
  Every surface is slightly warm β€” no cold values anywhere.
10
  ════════════════════════════════════════════════════════════════════════ */
11
+ @font-face {
12
+ font-family: "Anthropic Sans";
13
+ src: url(https://cdn.prod.website-files.com/67ce28cfec624e2b733f8a52/69971a00a3295036497e1a28_AnthropicSans-Roman-Web.woff2) format("woff2");
14
+ font-weight: 300 800;
15
+ font-style: normal;
16
+ font-display: swap;
17
+ }
18
+ @font-face {
19
+ font-family: "Anthropic Sans";
20
+ src: url(https://cdn.prod.website-files.com/67ce28cfec624e2b733f8a52/69971a016067bf14b9b8f48d_AnthropicSans-Italic-Web.woff2) format("woff2");
21
+ font-weight: 300 800;
22
+ font-style: italic;
23
+ font-display: swap;
24
+ }
25
+ @font-face {
26
+ font-family: "Anthropic Mono";
27
+ src: url(https://cdn.prod.website-files.com/67ce28cfec624e2b733f8a52/69971a1438a2ed14d4acca5f_AnthropicMono-Roman-Web.woff2) format("woff2");
28
+ font-weight: 300 800;
29
+ font-style: normal;
30
+ font-display: swap;
31
+ }
32
 
33
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
34
  html { height: 100dvh; background: #1A1916; overflow: hidden; }
 
82
  --pill-bg: var(--surface-3);
83
 
84
  /* Typography */
85
+ --sans: "Anthropic Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
86
+ --mono: "Anthropic Mono", "JetBrains Mono", "Fira Code", monospace;
87
 
88
  /* Spacing (8px grid) */
89
  --space-1: 4px; --space-2: 8px; --space-3: 12px;
 
1274
  display: flex;
1275
  flex-direction: column;
1276
  gap: 12px;
1277
+ max-width: 540px;
1278
  width: 100%;
1279
  }
1280
 
1281
  /* Header for onboarding section */
1282
  .onboarding-header {
1283
  text-align: center;
1284
+ margin-bottom: 16px;
1285
  }
1286
 
1287
  .onboarding-headline {
1288
+ font-size: 38px;
1289
  font-weight: 700;
1290
+ letter-spacing: -0.03em;
1291
+ line-height: 1.1;
1292
+ margin-bottom: 12px;
1293
  /* warm parchment β†’ sienna β€” no cold grays */
1294
  background: linear-gradient(120deg, #EDE4CE 20%, var(--accent-soft) 80%);
1295
  -webkit-background-clip: text;
 
1298
  }
1299
 
1300
  .onboarding-sub {
1301
+ font-size: 15px;
1302
  color: var(--text-2);
1303
+ line-height: 1.65;
1304
+ letter-spacing: -0.01em;
1305
  }
1306
 
1307
  .onboarding-step {