Spaces:
Running
Align 'Try it' pill + tighten poolside.ai styling
Browse filesPills:
- 'Try it:' label pill was wrapping onto two lines because its inner
gradient span broke the inline-flex. Wrap the label + colon in a
dedicated nowrap .try container with its own leading dot so it reads
horizontally on every viewport.
- Update click handler to skip pills that contain the .try marker.
Color / design (closer to poolside.ai):
- Page background switches to a subtle dotted texture (radial-gradient
18px grid) on #fafafa, matching the textured gray panel under the
terminal card in the poolside screenshot.
- Card and terminal body are pure white; brand strip keeps the indigoβmagenta
vertical accent.
- macOS chrome title strips magenta β 'pool β website β ~' is plain
mono ink, matching the original pool β website screenshot.
- Send button is solid indigo and gets the right-side 12px radius on the
prompt bar (rounded only on mobile via media query).
Co-Authored-By: Claude <noreply@anthropic.com>
- index.html +28 -20
|
@@ -7,29 +7,28 @@
|
|
| 7 |
<link rel="icon" href="https://cdn-avatars.huggingface.co/v1/production/uploads/699484cbe85a4b61cbc5ee0f/GpYWuz-CovEFgbPOW21dZ.png" />
|
| 8 |
<style>
|
| 9 |
:root {
|
| 10 |
-
/* poolside-aligned palette: indigo
|
| 11 |
--indigo: #4f46e5;
|
| 12 |
--indigo-700: #4338ca;
|
| 13 |
--magenta: #d946ef;
|
| 14 |
-
--pink: #ec4899;
|
| 15 |
--ink: #0f1020;
|
| 16 |
--ink-soft: #1c1d2e;
|
| 17 |
-
--paper: #
|
| 18 |
--paper-2: #ffffff;
|
| 19 |
--paper-line: #ececf3;
|
| 20 |
--paper-line-2: #d9d9e6;
|
| 21 |
--muted: #6b6c80;
|
| 22 |
--dim: #9f9fb3;
|
| 23 |
-
--bg: #
|
| 24 |
|
| 25 |
-
/* terminal ANSI palette mapped onto
|
| 26 |
--term-bg: #ffffff;
|
| 27 |
--term-divider: #efeff6;
|
| 28 |
--term-fg: #0f1020;
|
| 29 |
--term-muted: #6b6c80;
|
| 30 |
-
--term-cyan: #0e7490;
|
| 31 |
--term-yellow: #b45309;
|
| 32 |
-
--term-green: #047857;
|
| 33 |
--term-bold-green: #059669;
|
| 34 |
--term-grey: #9ca3af;
|
| 35 |
--term-red: #b91c1c;
|
|
@@ -37,7 +36,10 @@
|
|
| 37 |
* { box-sizing: border-box; }
|
| 38 |
html, body { margin: 0; padding: 0; height: 100%; }
|
| 39 |
body {
|
| 40 |
-
background:
|
|
|
|
|
|
|
|
|
|
| 41 |
color: var(--ink);
|
| 42 |
font-family: 'Inter','SF Pro Display','Helvetica Neue',Arial,sans-serif;
|
| 43 |
-webkit-font-smoothing: antialiased;
|
|
@@ -124,12 +126,9 @@
|
|
| 124 |
.dot.g { background: #28c840; }
|
| 125 |
.mactitle {
|
| 126 |
flex: 1; text-align: center; font-size: 12px; color: var(--muted);
|
|
|
|
| 127 |
}
|
| 128 |
-
.mactitle
|
| 129 |
-
background: linear-gradient(90deg, var(--indigo) 0%, var(--magenta) 100%);
|
| 130 |
-
-webkit-background-clip: text; background-clip: text; color: transparent;
|
| 131 |
-
font-weight: 600;
|
| 132 |
-
}
|
| 133 |
|
| 134 |
/* --------- Terminal body (white) --------- */
|
| 135 |
.term {
|
|
@@ -188,9 +187,9 @@
|
|
| 188 |
}
|
| 189 |
.promptbar button.send {
|
| 190 |
background: var(--indigo); color: #fff; border: none;
|
| 191 |
-
border-left: 1px solid var(--indigo-700);
|
| 192 |
padding: 0 22px; font: inherit; font-weight: 600; cursor: pointer;
|
| 193 |
transition: background 120ms ease, transform 120ms ease;
|
|
|
|
| 194 |
}
|
| 195 |
.promptbar button.send:hover { background: var(--indigo-700); }
|
| 196 |
.promptbar button.send:disabled { opacity: 0.55; cursor: not-allowed; }
|
|
@@ -219,6 +218,13 @@
|
|
| 219 |
-webkit-background-clip: text; background-clip: text; color: transparent;
|
| 220 |
font-weight: 600;
|
| 221 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 222 |
.footline {
|
| 223 |
color: var(--muted); font-size: 12px; margin-top: 18px;
|
| 224 |
padding-top: 14px; border-top: 1px solid var(--paper-line);
|
|
@@ -273,6 +279,7 @@
|
|
| 273 |
.promptbar button.send {
|
| 274 |
flex: 1 1 70%; padding: 12px 12px; font-size: 14px;
|
| 275 |
border-top: 1px solid var(--paper-line); border-left: 1px solid var(--indigo-700);
|
|
|
|
| 276 |
}
|
| 277 |
|
| 278 |
.pillrow { gap: 6px; margin-top: 12px; }
|
|
@@ -314,7 +321,7 @@
|
|
| 314 |
<span class="dots">
|
| 315 |
<span class="dot r"></span><span class="dot y"></span><span class="dot g"></span>
|
| 316 |
</span>
|
| 317 |
-
<div class="mactitle">
|
| 318 |
</div>
|
| 319 |
|
| 320 |
<div id="term" class="term" aria-live="polite"></div>
|
|
@@ -330,7 +337,7 @@
|
|
| 330 |
</div>
|
| 331 |
|
| 332 |
<div class="pillrow">
|
| 333 |
-
<span class="pill dot"><span class="grad">Try
|
| 334 |
<span class="pill">How many r's are in <code style="color:var(--ink)">'strawberry'</code>?</span>
|
| 335 |
<span class="pill">Write a recursive Fibonacci in Python.</span>
|
| 336 |
<span class="pill">Explain backprop in one paragraph.</span>
|
|
@@ -363,10 +370,10 @@
|
|
| 363 |
};
|
| 364 |
|
| 365 |
const banner = [
|
| 366 |
-
`${ANSI.green}β Connected to agent server
|
| 367 |
-
`${ANSI.dim}
|
| 368 |
"",
|
| 369 |
-
`${ANSI.cyan}>${ANSI.reset}
|
| 370 |
"",
|
| 371 |
`${ANSI.dim}βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ${ANSI.reset}`,
|
| 372 |
"",
|
|
@@ -521,8 +528,9 @@
|
|
| 521 |
// pill-driven seeds
|
| 522 |
document.querySelectorAll('.pill').forEach(p => {
|
| 523 |
p.addEventListener('click', () => {
|
|
|
|
|
|
|
| 524 |
const txt = p.textContent.trim();
|
| 525 |
-
if (p.querySelector('.grad')) return; // the "Try it:" pill isn't a seed
|
| 526 |
if (txt.startsWith('β’') || txt.length < 4) return;
|
| 527 |
input.value = txt;
|
| 528 |
input.focus();
|
|
|
|
| 7 |
<link rel="icon" href="https://cdn-avatars.huggingface.co/v1/production/uploads/699484cbe85a4b61cbc5ee0f/GpYWuz-CovEFgbPOW21dZ.png" />
|
| 8 |
<style>
|
| 9 |
:root {
|
| 10 |
+
/* poolside-aligned palette: indigo + magenta on pure white */
|
| 11 |
--indigo: #4f46e5;
|
| 12 |
--indigo-700: #4338ca;
|
| 13 |
--magenta: #d946ef;
|
|
|
|
| 14 |
--ink: #0f1020;
|
| 15 |
--ink-soft: #1c1d2e;
|
| 16 |
+
--paper: #ffffff;
|
| 17 |
--paper-2: #ffffff;
|
| 18 |
--paper-line: #ececf3;
|
| 19 |
--paper-line-2: #d9d9e6;
|
| 20 |
--muted: #6b6c80;
|
| 21 |
--dim: #9f9fb3;
|
| 22 |
+
--bg: #fafafa;
|
| 23 |
|
| 24 |
+
/* terminal ANSI palette mapped onto paper background */
|
| 25 |
--term-bg: #ffffff;
|
| 26 |
--term-divider: #efeff6;
|
| 27 |
--term-fg: #0f1020;
|
| 28 |
--term-muted: #6b6c80;
|
| 29 |
+
--term-cyan: #0e7490;
|
| 30 |
--term-yellow: #b45309;
|
| 31 |
+
--term-green: #047857;
|
| 32 |
--term-bold-green: #059669;
|
| 33 |
--term-grey: #9ca3af;
|
| 34 |
--term-red: #b91c1c;
|
|
|
|
| 36 |
* { box-sizing: border-box; }
|
| 37 |
html, body { margin: 0; padding: 0; height: 100%; }
|
| 38 |
body {
|
| 39 |
+
background:
|
| 40 |
+
radial-gradient(circle at 1px 1px, rgba(15,16,32,0.06) 1px, transparent 0)
|
| 41 |
+
0 0 / 18px 18px,
|
| 42 |
+
#fafafa;
|
| 43 |
color: var(--ink);
|
| 44 |
font-family: 'Inter','SF Pro Display','Helvetica Neue',Arial,sans-serif;
|
| 45 |
-webkit-font-smoothing: antialiased;
|
|
|
|
| 126 |
.dot.g { background: #28c840; }
|
| 127 |
.mactitle {
|
| 128 |
flex: 1; text-align: center; font-size: 12px; color: var(--muted);
|
| 129 |
+
font-family: 'JetBrains Mono','Fira Code','SF Mono','Menlo',monospace;
|
| 130 |
}
|
| 131 |
+
.mactitle b { color: var(--ink); font-weight: 600; }
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
|
| 133 |
/* --------- Terminal body (white) --------- */
|
| 134 |
.term {
|
|
|
|
| 187 |
}
|
| 188 |
.promptbar button.send {
|
| 189 |
background: var(--indigo); color: #fff; border: none;
|
|
|
|
| 190 |
padding: 0 22px; font: inherit; font-weight: 600; cursor: pointer;
|
| 191 |
transition: background 120ms ease, transform 120ms ease;
|
| 192 |
+
border-radius: 0 12px 12px 0;
|
| 193 |
}
|
| 194 |
.promptbar button.send:hover { background: var(--indigo-700); }
|
| 195 |
.promptbar button.send:disabled { opacity: 0.55; cursor: not-allowed; }
|
|
|
|
| 218 |
-webkit-background-clip: text; background-clip: text; color: transparent;
|
| 219 |
font-weight: 600;
|
| 220 |
}
|
| 221 |
+
.pill .try {
|
| 222 |
+
display: inline-flex; align-items: center; gap: 6px;
|
| 223 |
+
white-space: nowrap;
|
| 224 |
+
}
|
| 225 |
+
.pill .try .dot-mini {
|
| 226 |
+
width: 7px; height: 7px; border-radius: 50%; background: var(--indigo);
|
| 227 |
+
}
|
| 228 |
.footline {
|
| 229 |
color: var(--muted); font-size: 12px; margin-top: 18px;
|
| 230 |
padding-top: 14px; border-top: 1px solid var(--paper-line);
|
|
|
|
| 279 |
.promptbar button.send {
|
| 280 |
flex: 1 1 70%; padding: 12px 12px; font-size: 14px;
|
| 281 |
border-top: 1px solid var(--paper-line); border-left: 1px solid var(--indigo-700);
|
| 282 |
+
border-radius: 0 0 12px 0;
|
| 283 |
}
|
| 284 |
|
| 285 |
.pillrow { gap: 6px; margin-top: 12px; }
|
|
|
|
| 321 |
<span class="dots">
|
| 322 |
<span class="dot r"></span><span class="dot y"></span><span class="dot g"></span>
|
| 323 |
</span>
|
| 324 |
+
<div class="mactitle"><b>pool</b> β website β <b>~</b></div>
|
| 325 |
</div>
|
| 326 |
|
| 327 |
<div id="term" class="term" aria-live="polite"></div>
|
|
|
|
| 337 |
</div>
|
| 338 |
|
| 339 |
<div class="pillrow">
|
| 340 |
+
<span class="pill"><span class="try"><span class="dot-mini"></span><span class="grad">Try it</span><span class="grad">:</span></span></span>
|
| 341 |
<span class="pill">How many r's are in <code style="color:var(--ink)">'strawberry'</code>?</span>
|
| 342 |
<span class="pill">Write a recursive Fibonacci in Python.</span>
|
| 343 |
<span class="pill">Explain backprop in one paragraph.</span>
|
|
|
|
| 370 |
};
|
| 371 |
|
| 372 |
const banner = [
|
| 373 |
+
`${ANSI.green}β ${ANSI.reset}Connected to agent server: ${ANSI.bold}Poolside v2.1${ANSI.reset}`,
|
| 374 |
+
`${ANSI.dim} session id: robust-lake-${Math.floor(Math.random()*9000+1000)} Β· model poolside/laguna-s-2.1:free Β· openrouter${ANSI.reset}`,
|
| 375 |
"",
|
| 376 |
+
`${ANSI.cyan}>${ANSI.reset} type a question below. the model ${ANSI.bold}reasons before it answers${ANSI.reset}, and remembers its thoughts on the next turn.`,
|
| 377 |
"",
|
| 378 |
`${ANSI.dim}βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ${ANSI.reset}`,
|
| 379 |
"",
|
|
|
|
| 528 |
// pill-driven seeds
|
| 529 |
document.querySelectorAll('.pill').forEach(p => {
|
| 530 |
p.addEventListener('click', () => {
|
| 531 |
+
// The "Try it:" label pill isn't a seed
|
| 532 |
+
if (p.querySelector('.try')) return;
|
| 533 |
const txt = p.textContent.trim();
|
|
|
|
| 534 |
if (txt.startsWith('β’') || txt.length < 4) return;
|
| 535 |
input.value = txt;
|
| 536 |
input.focus();
|