TomLii Claude Sonnet 4.6 commited on
Commit
0abb551
·
1 Parent(s): 5312454

Simplify hero header and strip extra copy

Browse files

Replace dark cover with a light header (Q mark + title + OSU NLP byline
link), drop subtitle/release tagline, and remove "Section 02/03 ·" prefixes.

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

Files changed (1) hide show
  1. app.py +45 -124
app.py CHANGED
@@ -267,105 +267,55 @@ gradio-app > div {
267
  white-space: pre-wrap !important;
268
  }
269
 
270
- /* === Quest-style hero cover ============================================== */
271
- .quest-cover {
272
- position: relative;
273
- border: 1px solid var(--q-line);
274
- border-radius: var(--q-radius-xl);
275
- background: var(--q-cover-bg);
276
- box-shadow: var(--q-shadow);
277
- padding: 14px;
278
  margin: 8px 0 24px;
279
- color: #F1F5F9;
280
- overflow: hidden;
 
 
281
  }
282
- .quest-cover-inner {
283
  display: grid;
284
- grid-template-columns: repeat(3, minmax(0, 1fr));
285
- gap: 10px;
286
- }
287
- .quest-cover-panel {
288
- padding: 18px 20px;
289
- border: 1px solid rgba(255, 255, 255, 0.07);
290
- border-radius: 14px;
291
- background: rgba(255, 255, 255, 0.04);
292
- min-height: 110px;
 
293
  }
294
- .quest-cover-panel.wide {
295
- grid-column: span 3;
296
- min-height: 220px;
297
  display: flex;
298
  flex-direction: column;
299
- justify-content: space-between;
300
- background:
301
- radial-gradient(ellipse at top right, rgba(190, 91, 43, 0.22), transparent 48%),
302
- radial-gradient(ellipse at bottom left, rgba(11, 158, 138, 0.18), transparent 48%),
303
- rgba(255, 255, 255, 0.04);
304
- }
305
- .quest-cover-kicker {
306
- display: flex;
307
- align-items: center;
308
- gap: 12px;
309
- color: rgba(255, 255, 255, 0.55);
310
- font-size: 0.68rem;
311
- font-weight: 700;
312
- letter-spacing: 0.14em;
313
- text-transform: uppercase;
314
  }
315
- .quest-cover-kicker .dot {
316
- width: 8px; height: 8px; border-radius: 999px;
317
- background: var(--q-accent);
318
- box-shadow: 0 0 0 3px rgba(190, 91, 43, 0.22);
319
- }
320
- .quest-cover-title {
321
  font-family: "Source Serif 4", "Source Serif Pro", ui-serif, Georgia, serif;
322
  font-weight: 600;
323
- font-size: clamp(1.8rem, 3.5vw, 2.8rem);
324
- line-height: 1.05;
325
- letter-spacing: -0.02em;
326
- color: #FFFFFF;
327
- margin: 14px 0 8px;
328
- max-width: 26ch;
329
- }
330
- .quest-cover-subtitle {
331
- color: rgba(255, 255, 255, 0.72);
332
- font-size: 1rem;
333
- line-height: 1.6;
334
- max-width: 48ch;
335
- }
336
- .quest-cover-panel span.label {
337
- display: block;
338
- margin-bottom: 8px;
339
- color: rgba(255, 255, 255, 0.45);
340
- font-size: 0.66rem;
341
- font-weight: 700;
342
- letter-spacing: 0.14em;
343
- text-transform: uppercase;
344
- }
345
- .quest-cover-panel strong.headline {
346
- display: block;
347
- font-family: "Source Serif 4", "Source Serif Pro", ui-serif, Georgia, serif;
348
- font-weight: 600;
349
- font-size: 1.15rem;
350
- line-height: 1.15;
351
- color: #FFFFFF;
352
- max-width: 20ch;
353
  }
354
- .quest-cover-byline {
355
- display: inline-flex;
356
- align-items: center;
357
- gap: 10px;
358
- padding: 6px 14px;
359
- border: 1px solid rgba(255, 255, 255, 0.16);
360
- border-radius: 999px;
361
- color: rgba(255, 255, 255, 0.82);
362
- font-size: 0.78rem;
363
- font-weight: 600;
364
- letter-spacing: 0.04em;
365
  text-decoration: none;
366
  width: fit-content;
 
367
  }
368
- .quest-cover-byline:hover { background: rgba(255, 255, 255, 0.08); color: #fff; }
369
 
370
  /* === Cards (section-card) =============================================== */
371
  .section-card {
@@ -1608,43 +1558,16 @@ with gr.Blocks(
1608
  css=CUSTOM_CSS,
1609
  fill_width=True,
1610
  ) as demo:
1611
- # --- Quest-style hero cover (mirrors the Quest paper microsite cover) ---
1612
  gr.HTML(
1613
  """
1614
- <section class="quest-cover" aria-label="Quest hero">
1615
- <div class="quest-cover-inner">
1616
- <div class="quest-cover-panel wide">
1617
- <div class="quest-cover-kicker">
1618
- <span class="dot" aria-hidden="true"></span>
1619
- <span>Quest &nbsp;·&nbsp; OSU NLP Group</span>
1620
- </div>
1621
- <div>
1622
- <h1 class="quest-cover-title">Deep Research Agent, live in your browser.</h1>
1623
- <p class="quest-cover-subtitle">
1624
- A fully open recipe for training deep research agents &mdash; now
1625
- hosted as an interactive Space. Ask a question, watch the agent
1626
- search, read, and reason across sources, then return a grounded
1627
- answer.
1628
- </p>
1629
- </div>
1630
- <a class="quest-cover-byline" href="https://nlp.osu.edu/" target="_blank" rel="noopener noreferrer">
1631
- <span>Built by OSU NLP &rarr;</span>
1632
- </a>
1633
- </div>
1634
- <div class="quest-cover-panel">
1635
- <span class="label">Data synthesis</span>
1636
- <strong class="headline">Objective and open-ended tasks</strong>
1637
- </div>
1638
- <div class="quest-cover-panel">
1639
- <span class="label">Memory management</span>
1640
- <strong class="headline">Structured long-horizon reasoning</strong>
1641
- </div>
1642
- <div class="quest-cover-panel">
1643
- <span class="label">Training recipe</span>
1644
- <strong class="headline">Mid-training, SFT, and RL</strong>
1645
- </div>
1646
  </div>
1647
- </section>
1648
  """
1649
  )
1650
 
@@ -1655,7 +1578,6 @@ with gr.Blocks(
1655
  gr.HTML(
1656
  '<div class="section-heading">Ask the agent</div>'
1657
  '<div class="hero-heading">What can I research for you?</div>'
1658
- '<p class="hero-subtitle">Describe a question, claim, or open-ended prompt. The agent will search the web, visit sources, and synthesize a grounded answer.</p>'
1659
  )
1660
  question = gr.Textbox(
1661
  show_label=False,
@@ -1669,7 +1591,7 @@ with gr.Blocks(
1669
 
1670
  with gr.Group(elem_classes="section-card"):
1671
  gr.HTML(
1672
- '<div class="section-heading">Section 02 · Try examples</div>'
1673
  '<div class="example-note">Each prompt shows the kind of query it represents. Click one to auto-fill.</div>'
1674
  )
1675
  with gr.Column(elem_classes="example-buttons"):
@@ -1679,7 +1601,7 @@ with gr.Blocks(
1679
  ]
1680
 
1681
  with gr.Group(elem_classes="section-card"):
1682
- gr.HTML('<div class="section-heading">Section 03 · Output</div>')
1683
  with gr.Tabs():
1684
  with gr.TabItem("Result"):
1685
  answer = gr.Markdown(label="Final Answer")
@@ -1691,7 +1613,6 @@ with gr.Blocks(
1691
  gr.HTML(
1692
  f"""
1693
  <div class="section-heading">Open release</div>
1694
- <div class="hero-heading" style="font-size:1.2rem;margin-bottom:12px;">Data, code, and weights &mdash; all public.</div>
1695
  <div class="icon-grid">
1696
  <a class="icon-link" href="{PAPER_URL}" target="_blank" rel="noopener noreferrer">Paper</a>
1697
  <a class="icon-link" href="{CODE_URL}" target="_blank" rel="noopener noreferrer">Code</a>
 
267
  white-space: pre-wrap !important;
268
  }
269
 
270
+ /* === Quest-style header ================================================= */
271
+ .quest-header {
272
+ display: flex;
273
+ align-items: center;
274
+ gap: 18px;
275
+ padding: 18px 22px;
 
 
276
  margin: 8px 0 24px;
277
+ border: 1px solid var(--q-line);
278
+ border-radius: var(--q-radius-lg);
279
+ background: var(--q-paper);
280
+ box-shadow: var(--q-shadow-card);
281
  }
282
+ .quest-header-mark {
283
  display: grid;
284
+ place-items: center;
285
+ width: 48px;
286
+ height: 48px;
287
+ flex-shrink: 0;
288
+ border-radius: 12px;
289
+ background: var(--q-text);
290
+ color: #FFFFFF;
291
+ font-family: "Source Serif 4", "Source Serif Pro", ui-serif, Georgia, serif;
292
+ font-weight: 700;
293
+ font-size: 1.55rem;
294
  }
295
+ .quest-header-text {
 
 
296
  display: flex;
297
  flex-direction: column;
298
+ gap: 4px;
299
+ min-width: 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
300
  }
301
+ .quest-header-title {
302
+ margin: 0;
 
 
 
 
303
  font-family: "Source Serif 4", "Source Serif Pro", ui-serif, Georgia, serif;
304
  font-weight: 600;
305
+ font-size: clamp(1.25rem, 2vw, 1.75rem);
306
+ line-height: 1.2;
307
+ letter-spacing: -0.01em;
308
+ color: var(--q-text);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
309
  }
310
+ .quest-header-byline {
311
+ color: var(--q-muted);
312
+ font-size: 0.9rem;
313
+ font-weight: 500;
 
 
 
 
 
 
 
314
  text-decoration: none;
315
  width: fit-content;
316
+ transition: color 140ms ease;
317
  }
318
+ .quest-header-byline:hover { color: var(--q-accent); }
319
 
320
  /* === Cards (section-card) =============================================== */
321
  .section-card {
 
1558
  css=CUSTOM_CSS,
1559
  fill_width=True,
1560
  ) as demo:
1561
+ # --- Quest-style header (Q mark + title + byline) ---
1562
  gr.HTML(
1563
  """
1564
+ <header class="quest-header">
1565
+ <span class="quest-header-mark" aria-hidden="true">Q</span>
1566
+ <div class="quest-header-text">
1567
+ <h1 class="quest-header-title">Quest: A Fully Open Recipe for Training Search Agents</h1>
1568
+ <a class="quest-header-byline" href="https://x.com/osunlp" target="_blank" rel="noopener noreferrer">built by OSU NLP Group</a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1569
  </div>
1570
+ </header>
1571
  """
1572
  )
1573
 
 
1578
  gr.HTML(
1579
  '<div class="section-heading">Ask the agent</div>'
1580
  '<div class="hero-heading">What can I research for you?</div>'
 
1581
  )
1582
  question = gr.Textbox(
1583
  show_label=False,
 
1591
 
1592
  with gr.Group(elem_classes="section-card"):
1593
  gr.HTML(
1594
+ '<div class="section-heading">Try examples</div>'
1595
  '<div class="example-note">Each prompt shows the kind of query it represents. Click one to auto-fill.</div>'
1596
  )
1597
  with gr.Column(elem_classes="example-buttons"):
 
1601
  ]
1602
 
1603
  with gr.Group(elem_classes="section-card"):
1604
+ gr.HTML('<div class="section-heading">Output</div>')
1605
  with gr.Tabs():
1606
  with gr.TabItem("Result"):
1607
  answer = gr.Markdown(label="Final Answer")
 
1613
  gr.HTML(
1614
  f"""
1615
  <div class="section-heading">Open release</div>
 
1616
  <div class="icon-grid">
1617
  <a class="icon-link" href="{PAPER_URL}" target="_blank" rel="noopener noreferrer">Paper</a>
1618
  <a class="icon-link" href="{CODE_URL}" target="_blank" rel="noopener noreferrer">Code</a>