Simplify launcher branding

This commit is contained in:
Andraxion 2026-06-27 01:20:44 -04:00
parent cae21b61b7
commit 1cd446bae8
4 changed files with 42 additions and 50 deletions

View file

@ -1,6 +1,6 @@
# Worldshaper # Worldshaper
Canonical React + TypeScript worldbuilding studio and API for New RPG. Canonical React + TypeScript worldbuilding studio and API for Worldshaper Studio.
## Features ## Features

View file

@ -1592,8 +1592,7 @@ function App() {
<div className="page-shell"> <div className="page-shell">
<header className="header-card"> <header className="header-card">
<div className="header-copy"> <div className="header-copy">
<p className="eyebrow">New RPG</p> <h1>Worldshaper Studio</h1>
<h1>Worldshaper</h1>
<p className="lede">Worldbuilding studio with tabbed pages, structured editing, and raw JSON fallback.</p> <p className="lede">Worldbuilding studio with tabbed pages, structured editing, and raw JSON fallback.</p>
</div> </div>
<button <button

View file

@ -952,21 +952,24 @@ function WorldshaperLauncher() {
> >
<div className="launcher-stack"> <div className="launcher-stack">
<section className="launcher-hero-window" aria-labelledby="launcher-studio-title"> <section className="launcher-hero-window" aria-labelledby="launcher-studio-title">
<div className="launcher-changelog-titlebar">
<div className="launcher-changelog-title">Worldshaper Studio</div>
<div className="launcher-changelog-hint">Floating editor launch</div>
</div>
<div className="launcher-hero-body"> <div className="launcher-hero-body">
<div className="launcher-hero-card"> <div className="launcher-hero-stack">
<div className="changelog-splash-hero launcher-hero-banner"> <div className="launcher-title-bubble">
<p className="launcher-eyebrow">New RPG</p>
<h1 className="launcher-title" id="launcher-studio-title">Worldshaper Studio</h1> <h1 className="launcher-title" id="launcher-studio-title">Worldshaper Studio</h1>
<p className="launcher-status">{status}</p>
</div> </div>
<div className="launcher-hero-support"> <div className="launcher-actions launcher-actions-floating">
<button type="button" className="launcher-primary-btn" onClick={() => void handleLaunch()} disabled={isBusy}>
Launch
</button>
<button type="button" className="launcher-secondary-btn" onClick={openRepo} disabled={isBusy}>
Open Repo
</button>
</div>
<div className="launcher-hero-copy">
<p className="launcher-status">{status}</p>
{launchState === "blocked" ? ( {launchState === "blocked" ? (
<p className="launcher-hint"> <p className="launcher-hint">
Allow the popup, then use the studio button again to launch the floating editor window. Allow the popup, then use Launch again to open the floating editor window.
</p> </p>
) : null} ) : null}
{launchState === "opened" ? ( {launchState === "opened" ? (
@ -980,14 +983,6 @@ function WorldshaperLauncher() {
</p> </p>
) : null} ) : null}
{error ? <p className="launcher-error">{error}</p> : null} {error ? <p className="launcher-error">{error}</p> : null}
<div className="launcher-actions">
<button type="button" className="launcher-primary-btn" onClick={() => void handleLaunch()} disabled={isBusy}>
Open Floating Studio
</button>
<button type="button" className="launcher-secondary-btn" onClick={openRepo} disabled={isBusy}>
Open Repo
</button>
</div>
</div> </div>
</div> </div>
</div> </div>

View file

@ -83,38 +83,40 @@ body {
} }
.launcher-hero-window { .launcher-hero-window {
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
overflow: visible;
grid-template-rows: minmax(0, 1fr);
justify-self: center; justify-self: center;
width: min(620px, 100%); width: min(620px, 100%);
} }
.launcher-hero-body { .launcher-hero-body {
padding: 12px; padding: 0;
} }
.launcher-hero-card { .launcher-hero-stack {
display: grid; display: grid;
gap: 12px; justify-items: center;
gap: 16px;
} }
.launcher-hero-banner { .launcher-title-bubble {
min-height: 0; padding: 16px 24px;
border: 1px solid #4f79af;
border-radius: 999px;
background: color-mix(in srgb, #13233f 84%, transparent);
box-shadow:
0 16px 34px rgba(3, 8, 18, 0.34),
inset 0 0 0 1px rgba(180, 214, 255, 0.08);
backdrop-filter: blur(10px);
} }
.launcher-hero-support { .launcher-hero-copy {
padding: 12px 14px; max-width: 50ch;
border: 1px solid #365782; text-align: center;
border-radius: 12px;
background: rgba(17, 32, 63, 0.84);
box-shadow: inset 0 0 0 1px rgba(10, 16, 32, 0.14);
}
.launcher-eyebrow {
margin: 0 0 10px;
font-size: 0.76rem;
letter-spacing: 0.14em;
text-transform: uppercase;
color: #9fd8ff;
font-weight: 700;
} }
.launcher-title { .launcher-title {
@ -150,6 +152,11 @@ body {
margin-top: 16px; margin-top: 16px;
} }
.launcher-actions-floating {
margin-top: 0;
justify-content: center;
}
.launcher-changelog-window { .launcher-changelog-window {
width: min(760px, 100%); width: min(760px, 100%);
} }
@ -914,15 +921,6 @@ body {
padding: 12px; padding: 12px;
} }
.eyebrow {
margin: 0;
font-size: 0.8rem;
letter-spacing: 0.09em;
text-transform: uppercase;
color: #9ec8f0;
font-weight: 700;
}
h1 { h1 {
margin: 0.2rem 0 0; margin: 0.2rem 0 0;
font-size: 24px; font-size: 24px;