Copy updates

This commit is contained in:
Philip Peterson 2026-05-28 23:42:30 -07:00
parent c77fce2ff2
commit 246364feef

View file

@ -7,7 +7,7 @@ import (
// HomePage is the Quine Hyper landing page.
func HomePage(props PageProps) Node {
props.Title = "Quine Hyper — A terminal for the modern stack"
props.Title = "Quine Hyper — The thoughtful terminal"
props.Description = "Quine Hyper is a beautiful, extensible terminal emulator forked from Vercel's Hyper. Built on web technology with a thriving plugin ecosystem."
return page(props,
@ -18,12 +18,10 @@ func HomePage(props PageProps) Node {
Span(Class("font-mono text-xs text-zinc-400"), Text("Forked from Vercel's Hyper")),
),
H1(Class("font-mono text-5xl font-bold tracking-tight text-white sm:text-6xl"),
Text("A terminal for"),
Br(),
Span(Class("text-violet-400"), Text("the modern stack.")),
Text("The thoughtful terminal."),
),
P(Class("mx-auto mt-6 max-w-2xl font-mono text-lg text-zinc-400"),
Text("Quine Hyper extends Vercel's open-source Hyper terminal with new features, themes, and a focus on developer experience. Fast, beautiful, and built on the web."),
Text("A beautiful, extensible terminal built with care."),
),
Div(Class("mt-10 flex flex-wrap items-center justify-center gap-4"),
A(Href("/download"),
@ -48,16 +46,16 @@ func HomePage(props PageProps) Node {
),
// Terminal body
Div(Class("p-6 font-mono text-sm leading-relaxed"),
termPrompt("hyper --version"),
termOutput("Quine Hyper v4.2.0 (based on Hyper 3.4.1)"),
termPrompt("hyper install hyper-snazzy"),
termOutput("✔ Fetching package..."),
termOutput("✔ Installing hyper-snazzy@1.0.0"),
termOutput("✔ Done! Restart Hyper to apply."),
termPrompt("ls -la ~/projects"),
termOutput("drwxr-xr-x api/"),
termOutput("drwxr-xr-x frontend/"),
termOutput("drwxr-xr-x infra/"),
termPrompt("deep-thought --answer"),
termOutput("42"),
termPrompt("hyper install infinite-improbability"),
termOutput("✔ Engaging drive..."),
termOutput("✔ Probability: 2:1 against."),
termOutput("✔ Don't Panic."),
termPrompt("ls ~/projects"),
termOutput("drwxr-xr-x earth/"),
termOutput("drwxr-xr-x magrathea/"),
termOutput("drwxr-xr-x slartibartfast/"),
Div(Class("flex items-center gap-0 text-violet-400"),
Span(Class("text-zinc-500"), Text("❯ ")),
Span(Class("animate-pulse"), Text("█")),
@ -72,20 +70,32 @@ func HomePage(props PageProps) Node {
),
Div(Class("mt-12 grid grid-cols-1 gap-6 md:grid-cols-2"),
featureCard("Plugin Ecosystem",
"Install themes and extensions from npm. Build your own with HTML, CSS, and JavaScript.",
Group{
Text("Install plugins and themes from npm. Browse "),
A(Href("https://hyper.is/plugins"),
Class("text-violet-400 hover:text-violet-300 underline"),
Text("featured plugins"),
),
Text(" and "),
A(Href("https://hyper.is/themes"),
Class("text-violet-400 hover:text-violet-300 underline"),
Text("featured themes"),
),
Text(". Build your own with HTML, CSS, and JavaScript."),
},
"npm install hyper-snazzy",
),
featureCard("Cross-Platform",
"Runs on macOS, Windows, and Linux. One consistent experience across every machine you use.",
Text("Runs on macOS, Windows, and Linux. One consistent experience across every machine you use."),
"Works everywhere you do.",
),
featureCard("Web-Native",
"Built on Electron, React, and xterm.js. Hack on the terminal itself using the same tools you use every day.",
Text("Built on Electron, React, and xterm.js. Hack on the terminal itself using the same tools you use every day."),
"HTML + CSS + JS = your terminal",
),
featureCard("Fully Customizable",
"Tweak every detail with CSS. Change fonts, colors, animations, and layouts — no config file limits.",
".hyper.js → your rules",
Text("Tweak every detail with CSS. Change fonts, colors, animations, and layouts — no config file limits."),
"hyper.json → your rules",
),
),
),
@ -120,10 +130,10 @@ func termOutput(line string) Node {
return Div(Class("pl-5 text-zinc-400"), Text(line))
}
func featureCard(title, body, code string) Node {
func featureCard(title string, body Node, code string) Node {
return Div(Class("rounded-xl border border-zinc-800 bg-zinc-900 p-8"),
H3(Class("font-mono text-base font-semibold text-white"), Text(title)),
P(Class("mt-3 font-mono text-sm text-zinc-400 leading-relaxed"), Text(body)),
P(Class("mt-3 font-mono text-sm text-zinc-400 leading-relaxed"), body),
Div(Class("mt-5 inline-block rounded-md bg-zinc-800 px-3 py-1.5"),
Span(Class("font-mono text-xs text-violet-400"), Text(code)),
),