auth: clearer sign-in copy on the conversion gate (0.97.0)
the join form used confusing labels at the exact moment a visitor commits:
- the email field was labelled 'Guild handle email' (it is just an email)
- the password field was 'Access sigil'
- the login button was 'Enter Booth' (logging in does not go to the Booth)
- the card eyebrow was 'OPEN BOOTH' (publisher-biased; you might sign in to browse)
now: Email / Password, a clear 'Log in' button, and a neutral 'ONE ACCOUNT'
eyebrow that reinforces the single sign-on. theme stays in the heading
('Join the tavern', 'Welcome, mercenary') and the benefit points.
verified live: login shows Email/Password -> Log in; signup shows
Email/Display name/Password -> Create Account.
This commit is contained in:
parent
0775b79a1b
commit
d05a5b110c
@ -17,7 +17,7 @@
|
||||
@media (prefers-reduced-motion: reduce) { .app-loading-gem { animation: none; transform: rotate(45deg); } }
|
||||
</style>
|
||||
<meta name="description" content="amerc is the agent mercenary tavern — hire, run, publish, and remotely deliver AI agents across software boundaries. No infrastructure, just skills." />
|
||||
<meta name="version" content="0.96.0-herofit" />
|
||||
<meta name="version" content="0.97.0-signin" />
|
||||
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
|
||||
<link rel="icon" href="/app-192.png" type="image/png" sizes="192x192" />
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "amerc-site",
|
||||
"version": "0.96.0-herofit",
|
||||
"version": "0.97.0-signin",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@ -44,7 +44,7 @@ export function AuthPanel({ auth, onDone }) {
|
||||
<button type="button" className={mode === 'login' ? 'active' : ''} onClick={() => setMode('login')}>Login</button>
|
||||
<button type="button" className={mode === 'signup' ? 'active' : ''} onClick={() => setMode('signup')}>Sign Up</button>
|
||||
</div>
|
||||
<label className="px-field"><span>Guild handle email</span>
|
||||
<label className="px-field"><span>Email</span>
|
||||
<input type="email" autoComplete="email" value={email} onChange={(e) => setEmail(e.target.value)} placeholder="operator@vertical-site.ai" required />
|
||||
</label>
|
||||
{mode === 'signup' && (
|
||||
@ -52,12 +52,12 @@ export function AuthPanel({ auth, onDone }) {
|
||||
<input value={handle} onChange={(e) => setHandle(e.target.value)} placeholder="ironworks" />
|
||||
</label>
|
||||
)}
|
||||
<label className="px-field"><span>Access sigil</span>
|
||||
<label className="px-field"><span>Password</span>
|
||||
<input type="password" autoComplete={mode === 'login' ? 'current-password' : 'new-password'} value={password} onChange={(e) => setPassword(e.target.value)} placeholder="min 6 chars" required minLength={6} />
|
||||
</label>
|
||||
{err && <p className="px-auth-err">{err}</p>}
|
||||
<button type="submit" className="px-action px-auth-submit" disabled={busy}>
|
||||
{busy ? '…' : mode === 'login' ? 'Enter Booth' : 'Create Account'}
|
||||
{busy ? '…' : mode === 'login' ? 'Log in' : 'Create Account'}
|
||||
</button>
|
||||
<p className="px-auth-hint">{mode === 'login' ? 'New mercenary? Switch to Sign Up.' : 'The first account becomes Quartermaster (admin).'}</p>
|
||||
</form>
|
||||
|
||||
@ -10,7 +10,7 @@ import { api } from './api.js';
|
||||
const Menu = ({ size = 20 }) => (<svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" aria-hidden="true"><line x1="3" y1="6" x2="21" y2="6" /><line x1="3" y1="12" x2="21" y2="12" /><line x1="3" y1="18" x2="21" y2="18" /></svg>);
|
||||
const X = ({ size = 20 }) => (<svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" aria-hidden="true"><line x1="18" y1="6" x2="6" y2="18" /><line x1="6" y1="6" x2="18" y2="18" /></svg>);
|
||||
|
||||
const RELEASE = '0.96.0-herofit';
|
||||
const RELEASE = '0.97.0-signin';
|
||||
|
||||
const NAV = [
|
||||
{ id: 'home', label: 'Tavern' },
|
||||
@ -397,7 +397,7 @@ function Gatehouse({ auth, setRoute }) {
|
||||
</div>
|
||||
<div className="gate-form">
|
||||
<div className="px-board gate-board">
|
||||
<header className="px-board-head"><span className="px-board-tag">OPEN BOOTH</span><h2>Welcome, mercenary</h2><p>Log in, or create your account in seconds.</p></header>
|
||||
<header className="px-board-head"><span className="px-board-tag">ONE ACCOUNT</span><h2>Welcome, mercenary</h2><p>Log in, or create your account in seconds.</p></header>
|
||||
<AuthPanel auth={auth} onDone={() => setRoute('booth')} />
|
||||
</div>
|
||||
</div>
|
||||
@ -465,6 +465,7 @@ function StatusPage() {
|
||||
}
|
||||
|
||||
const CHANGELOG = [
|
||||
{ v: '0.97', date: 'Jun 2026', title: 'Clearer sign-in', notes: ['The join form now uses plain labels (Email, Password) and a clear Log in button'] },
|
||||
{ v: '0.96', date: 'Jun 2026', title: 'Hero fits the fold', notes: ['The tagline, calls-to-action and live stats now sit above the fold on laptop screens'] },
|
||||
{ v: '0.95', date: 'Jun 2026', title: 'Docs that flow', notes: ['Fixed dead Quickstart links and cross-linked the guides so you can click straight through'] },
|
||||
{ v: '0.94', date: 'Jun 2026', title: 'Instant first call', notes: ['Minting an agent key now shows a ready-to-run curl with your key inlined'] },
|
||||
|
||||
Loading…
Reference in New Issue
Block a user