Repository navigation
website: Redesign the home page around what makes NSH different - #993
Merged
Merged
Conversation
The old home page looked dated, and the chat app on its first screen made people think NSH is a chat app. The page now takes the look of the banner, a WebGL hero of glass arches, one for each platform, and leads with what sets NSH apart: native clients written entirely in TSX that stand with Rust's, their numbers, no dependencies for TSX development and eight platforms. The Menu band runs a small demo of its own with its View menu open, so each device's form can be compared at a glance, and the chat demos go. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 5, 2026
huacnlee
added a commit
that referenced
this pull request
Nov 6, 2026
…ery (#1072) ## Description Continues the home page redesign (#993) across the website and the gallery. **Home page** - Hero: the arches' wave of light now repeats at a random pause of 12–24 s, at a varied pace, sometimes inward; a hovered or chosen platform cancels it. - Light: cool neutral grays in the dark theme's ink hue replace the olive grays (hero, bands, halftone, arches); the terminal capture follows the theme; the trust card is plain white. - The light primary button follows the dark one: flat citrus with a fine top light (#993 had given light a steep green gradient). - The three ways to ship line up through a subgrid, so their code blocks match in height. - Code highlighting uses the theme's palette (citrus keywords, ink-blue names, quiet strings, amber numbers). **Site** - Headings everywhere are set in Figtree. - Gallery, App Stories, Releases and Brand share one page head in the home page's style, with the banner's halftone. **Gallery** (`examples/nsh-gallery-ui`, `examples/gallery`, `examples/gallery-rs`) - Neutral surfaces take the site's hue: ink in dark, cool grays in light. Button finishes are unchanged from main. - The new logo (brand page's SVGs, `logo@2x.png` in both galleries), at the sidebar's top left. - Light's accent is the site's `#4a840a` instead of the old olive. - Green is kept for actions and states: the sidebar's selected icon, focus ring (now cool gray, shadcn-like), back button, command check and tree folders are neutral. - The phone index opens with a banner card: mark, name, citrus slogan, halftone. - The Tailwind demo's finish classes match `finishes.json` (they predated the flat controls of #648). ## How to Test - `cd website && bun run dev`: `/`, a docs page, `/apps`, `/releases`, in light and dark. - `cargo run`: the gallery in light and dark; the Tailwind demo's buttons. Done here: `bun test tests` in website 48 pass; `nsh test examples/gallery` 296 pass; screenshots of the home page (light and dark), docs header, inner page heads, the gallery under GTK and on the web (index, Text, Photos, Tailwind). Limits: not checked on macOS; the sidebar's top-left logo was not captured (the GTK host in the shared target was out of date with the CLI). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
Description
The old home page looked dated, and the chat app on its first screen made people think NSH is a chat app. This redesigns the page in the banner's style and leads with what sets NSH apart.
HeroArches.astro, replacingHeroField.astro), one arch for each platform with the app at the center, in dark and light, set in Figtree.demos/home-menu.tsx, a small file browser with its View menu open on load, so the desktop, phone and terminal forms compare at a glance. Its items act on the browser behind them.demos/home-chat.tsxanddemos/hero-chat/.DESIGN.mdandREADME.mddescribe the new page;package.jsonadds@fontsource-variable/figtree.How to Test
cd website && bun run dev, then open/and/zh-CN, in dark and light, at desktop and phone widths.Done here:
bun test testsinwebsite/: 44 pass, 8 skipped, 0 fail (thestoragetests skip without a player indistand without Chrome).bunx --bun astro build: 261 pages..envand leaves the menu open. The phone frame was not operated.nsh check demos/home-menu.tsx: no errors in the new demo. The same run reports 5 errors, those seen inel-pagination,el-plotandel-rich-editor, which this PR does not touch.Limits, to check before this ships:
demos/el-menu.tsxwith the same items, not ofhome-menu, while the page calls it real output ofnsh run --target tui. It should be captured again from the new demo.website/docs/; for example, ~1.1 MB for Wasm comes fromweb.md. The local frames ran a 36 MB unoptimizednsh.wasm.cargo xtask webdid not complete locally: it needs Homebrew LLVM'sCC_wasm32_unknown_unknownandAR_wasm32_unknown_unknown, and then fails copyingtarget/web-playground/.../nsh_platform_web.wasm. This looks like a mismatch between huacnlee/cargo's output directory and xtask, and is not changed here. The live frames ran on a local copy of the wasm, andbun run builditself was not run because it depends on this step.🤖 Generated with Claude Code