honey LED rim on homepage copy chip (periwinkle on copy) - #548
Open
ghesp wants to merge 26 commits into
Open
Conversation
Replace the flat primary border on the homepage prompt chip with a rounded-rect LED crawl in brand honey, turning periwinkle while copy is held or the copied tick is showing — the same idle/hold pair as the 404 hex, approximated in 2D canvas rather than WebGPU. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
|
🚅 Deployed to the docs.page-pr-548 environment in docs.page
|
|
|
TypeScript rejected the ternary because lastFrameTime is still possibly undefined on the non-first-frame branch. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 7, 2026 13:39
Destroyed
Drive ChipLedRim from the same Chip that owns useCopy so the 2s copied state cannot be cleared by an effect cleanup between pointerup and click. Lift deploy brightness so hold/copy reads clearly periwinkle, not a brief honey flash. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 7, 2026 13:52
Destroyed
Copy on press so periwinkle lasts the full 2s tick even when the gesture never synthesizes a click. Keyboard still copies via onClick. A short latch keeps the prompt-copy beacon to one fire per press. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 7, 2026 13:57
Destroyed
Replace the 2D canvas beaded-dot approximation with the 404 hex vgpu pipeline (emitters, raycast bloom, honey crawl, periwinkle deploy) adapted to a rounded-rect occluder around the chip. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 7, 2026 14:08
Destroyed
Raise perimeter density (especially fillet arcs), draw in CSS pixels on a CSS×DPR buffer, and soften capsule/box edges so the honey rim is not a staircase next to the bloom. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 7, 2026 14:23
Destroyed
Reset chip-led-front to triangle-led-front from #542 (24 LEDs/edge, same crawl, deploy lerp, bloom, discard). Only the occluder/emitter path is a rounded-rect for the chip; interior stays transparent. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 7, 2026 14:33
Destroyed
Hex fillets are clean because the floor evaluates the shape SDF at device resolution with 0.5 - sdf/|∇sdf|. The chip had dropped that occluder, so the honey edge was a hard sim-buffer clip. Restore the hex silhouette (transparent instead of black), the emitter-clip AA, and the per-edge straight+circular-arc LED walk. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 7, 2026 14:43
Destroyed
Chip-local only: wider canvas pad, longer near/far falloff, slightly stronger raycast intensity. Hex #542 tunables are unchanged. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 7, 2026 16:05
Destroyed
About 2× the last chip-only nudge on pad, near/far falloff, and raycast intensity. Honey #E69135 and periwinkle #5368BD unchanged. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 7, 2026 16:10
Destroyed
The far bloom was filling the pad and cutting off as a hard rectangle. Fade coverage out in the outer half of the pad, keep the canvas inside the viewport, and ease chip-local bloom back toward the earlier nudge. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 7, 2026 17:18
Destroyed
Modest step from b7f19e5 — slightly smaller radius and lower intensity so the hero copy stays clearer. Mask-edge fade and rim colours unchanged. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 09:12
Destroyed
ghesp
marked this pull request as ready for review
September 8, 2026 09:39
On small viewports the pill was w-full and the snippet row was flex-1, so the command and copy icon were pulled to opposite edges. Size the chip to its content (w-fit max-w-full) and drop the grow. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 10:00
Destroyed
w-fit still resolved to the hero column, so the command and copy icon sat at opposite ends. Use an explicit 22rem (humans-tab command + icon + padding), justify-start + gap-2 only, and max-w-full to scroll on narrow viewports. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 10:04
Destroyed
w-fit used stretch-available, and the LED canvas width was calc(100% + pad) — that percentage resolved against the hero column, so the pill grew with the page. Size the chip with inline-flex w-max, keep parents w-auto, and give the canvas explicit pixel bounds. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 10:12
Destroyed
Both tabs size from an invisible humans command + icon spacer, so the pill does not grow on For agents. Overflowing snippet text uses a trailing-edge mask fade; the copy icon stays fully visible. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 10:22
Destroyed
Keep the shared humans-width pill and the trailing fade on the scrollport. overflow-x-auto on the snippet so the full agents prompt can be scrubbed; the copy icon stays outside the scroll. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 10:28
Destroyed
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 10:35
Destroyed
Keep the chip and LED rim mounted. Humans/agents text crossfades with a short ease-out slide; the copy icon stays put. Copied tick resets with the payload. Reduced motion skips the transform. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 10:40
Destroyed
A short black/25 overlay inside the pill peaks at 150ms and eases out with the 300ms snippet crossfade. The LED rim and page stay undimmed. Reduced motion skips the overlay. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 10:45
Destroyed
Periwinkle while For agents is selected, honey on For humans. Copy still shows the tick but no longer drives the LED deploy lerp. Fill dim on tab swap is unchanged. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 10:46
Destroyed
Snippet fade/slide, fill dim, and honey↔periwinkle deploy lerp all stretch to about half a second so the transition feels less abrupt. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 10:49
Destroyed
Replace the fade/slide snippet swap with a character-by-character typewriter so For humans ↔ For agents feels like the text is being entered. Speed targets ~520ms of glyphs (humans a tad slower, agents floored so the long prompt does not crawl). Reduced motion gets the full string instantly. The chip and LED rim stay mounted. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
Railway's Next typecheck treats window.setInterval as number, not Node's Timeout. The typewriter timer now uses number so the preview build can finish. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
Georgina preferred the humans glyph rate. Both snippets now type at 23ms per character instead of speeding up the longer agents prompt. Co-authored-by: ghesp <ghesp@users.noreply.github.com>
railway-app
Bot
temporarily deployed
to
docs.page / docs.page-pr-548
September 8, 2026 11:31
Destroyed
12 tasks
Copying on pointerdown behind a 400ms latch meant the click ~10ms later returned early and never wrote, so a tap showed the tick with an empty clipboard; the latch now guards only the tracking beacon. useCopy also gates the tick on the resolved write, so a rejected or missing clipboard no longer renders a success tick. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011dckaZTpCJMniJGB8RPa2K
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #547 (equalize hero CTA gaps), which is stacked on #540 (agent prompt homepage chip). Do not merge before those PRs.
Railway preview (homepage): https://docspage-docspage-pr-548.up.railway.app/
Hard-refresh that URL —
9349864types the incoming command in on For humans ↔ For agents at a shared 23ms/glyph pace. Hex #542 is unchanged.Head SHA:
934986464c62f6a4971011da742e058398081a58Summary
Georgina asked for the homepage hero copy chip to use the same behaviour as the 404 hex LED (PR #542): honey idle crawl + soft bloom, periwinkle
#5368BDon the agents tab.Typewriter (
9ff5bd7, shared pace9349864)On tab change the outgoing command clears (~70ms), then the incoming string types in character-by-character. The chip stays mounted so the LED rim does not restart.
Speed: both tabs use a fixed 23ms per glyph — the humans pace from
clamp(round(520 / n), 6, 28)whennis 23. The longer agents prompt is not sped up; it just takes longer (~1.9s of glyphs + 70ms clear).A 1px caret blinks while glyphs land (hidden for
prefers-reduced-motion). Reduced motion gets the full string instantly — no typewriter, no fill dim.Fill dim still bookends the switch (
bg-black/25inside the pill). Copy icon stays put. Shared humans width, overflow fade, and horizontal scroll are unchanged. Glow stays tab-linked (honey / periwinkle), not copy.Tab glow + fill dim
#E69135on For humans, periwinkle#5368BDon For agents. The hex deploy lerp eases the colour (responseSmoothing0.17 ≈ 510ms). Copy shows the check tick only — it does not drivergbDeployActive.bg-black/25overlay inside the pill bookends the type-in. The page and LED rim stay undimmed.prefers-reduced-motionskips the overlay.Chip width (
1872fce)Both tabs hug the humans command (
$ npx @docs.page/cli init+ copy icon + padding). An invisible in-flow sizer holds that row; the visible snippet isabsoluteso the agents prompt cannot widen the pill.inline-flex w-max max-w-full mx-auto— content-hug vs the page, not the hero column.When the snippet overflows, a trailing-edge CSS mask fades the text over
1.25remon the scrollport. The copy icon sits outside the scroll/fade. The snippet usesoverflow-x-auto(touch / trackpad / mouse) with the scrollbar hidden; the chip width does not grow while scrolling.Chip bloom
Chip-only (404 hex on #542 unchanged). Honey
#E69135/ periwinkle#5368BDunchanged.38f51b6777262c356865dCHIP_BLOOM_CSS(canvas pad)CHIP_NEAR_RADIUS_SCALECHIP_NEAR_INTENSITYCHIP_FAR_INTENSITYCHIP_FAR_POWER(lower → longer tail)DIRECT_TRIANGLE_INTENSITY_SCALEDIRECT_TRIANGLE_ABSORPTIONMask edge
Far bloom was lighting the whole presentation buffer, so the pad showed as a hard honey rectangle. Expanding the pad only moved that line.
buffer_edge_fade: coverage → 0 in the outer 55% of the canvas pad (smoothstep, all four sides). The LED rim sits at the chip edge, inside the fade, so corners/AA stay hex-style._appoverflow-x-clipcannot cut the sides.overflow-visible.Matches #542 except rounded-rect path + chip bloom
LEDS_PER_EDGE = 24(144 capsules)led-buffercrawl, honey / periwinkle linear,hero-frame-statedeploy lerpMIN_SIM_HEIGHT360), canvasdpr: [1, 2]rgbDeployActive→ deploy lerpRemaining differences (intentional)
rounded-xl+ 4×90° filletsperiwinkle-950shows through)rgbDeployActive(agents = periwinkle)TRIANGLE_HEIGHT_RATIO+ desktop zoomHEX_FILLET_RATIOof circumradiusborder-radiusof the chippointer-events-none777262c)Humans/agents tabs, copy tracking, and Get started are unchanged. The 404 branch was read only.
Scope
app/(hosted site, MCP, Ask AI)packages/cli/packages/mdx-bundler/docs/(product documentation)Type of change
Test plan
bun run checkpasses locallybun run --cwd app buildpasses locally (Next typecheck)prefers-reduced-motion: instant full text, no typewriter / no fill dimNotes for reviewers
Depends on #547 (and transitively #540). Base is
cursor/equalize-hero-cta-gaps-fc07.Adds
vgpu/@vgpu/wgsland the same Next wgsl loader as #542. Do not merge this before those homepage PRs.This VM has no WebGPU adapter — confirm the fade and brightness on Railway in a GPU browser.