- Redesign landing page hero with split layout, features section, and in-app session/result demos - Add fixed sidebar scroll isolation (app-shell overflow lock pattern) - Redesign leagues index cards with initial badge, podium leader chips, and action links - Redesign league dashboard: color-coded nav tiles, cash/stats overview strip, session history heatmap calendar - Dashboard cash stats use real cash only (excludes rollovers and carry-ins) - Session history calendar: JS-driven full-year grid, year navigation, hover tooltips, full-width responsive layout - Bump leaderboard tile color from gold to blue (distinct from ledger orange) - Bump version to 2.3.1
72 lines
3.5 KiB
HTML
72 lines
3.5 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Create Account · myboker.org{% endblock %}
|
|
{% block page_class %}page--auth{% endblock %}
|
|
{% block content %}
|
|
|
|
<div class="auth-split">
|
|
<div class="auth-split__form-col">
|
|
<div class="auth-split__form-inner">
|
|
<a class="auth-split__brand" href="{{ url_for('public.home') }}">
|
|
<div class="auth-split__brand-mark"></div>
|
|
<span class="auth-split__brand-name">myboker<span class="auth-split__brand-tld">.org</span></span>
|
|
</a>
|
|
|
|
<h1 class="auth-split__title">Start your league.</h1>
|
|
<p class="auth-split__sub">Create an account to manage leagues, players, and sessions.</p>
|
|
|
|
<form method="post">
|
|
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
|
|
<div class="auth-field">
|
|
<label for="email">Email</label>
|
|
<input id="email" type="email" name="email" autocomplete="email"
|
|
value="{{ form.email or '' }}" placeholder="you@example.com" required>
|
|
</div>
|
|
<div class="auth-field">
|
|
<label for="password">Password</label>
|
|
<input id="password" type="password" name="password"
|
|
autocomplete="new-password" placeholder="At least 8 characters" minlength="8" required>
|
|
</div>
|
|
<div class="auth-field">
|
|
<label for="confirm_password">Confirm password</label>
|
|
<input id="confirm_password" type="password" name="confirm_password"
|
|
autocomplete="new-password" placeholder="Repeat your password" minlength="8" required>
|
|
</div>
|
|
<button class="btn btn--primary auth-submit" type="submit">Create account →</button>
|
|
</form>
|
|
|
|
<p class="auth-alt">Already have an account? <a href="{{ url_for('account.login') }}">Sign in</a></p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="auth-split__visual" aria-hidden="true">
|
|
<div class="auth-visual__body">
|
|
<div class="auth-visual__icon">
|
|
<svg width="26" height="26" viewBox="0 0 26 26" fill="none">
|
|
<rect x="3" y="5" width="20" height="16" rx="3" stroke="rgba(155,140,240,.65)" stroke-width="1.4" fill="none"/>
|
|
<path d="M3 10h20" stroke="rgba(155,140,240,.45)" stroke-width="1.2"/>
|
|
<path d="M8 15h4M8 18h6" stroke="rgba(155,140,240,.55)" stroke-width="1.2" stroke-linecap="round"/>
|
|
</svg>
|
|
</div>
|
|
<p class="auth-visual__title">Free to start.</p>
|
|
<p class="auth-visual__sub">No credit card, no monthly fees, no payment processor taking a cut of your buy-ins.</p>
|
|
<div class="auth-visual__preview">
|
|
<div class="auth-visual__preview-kicker">What you get</div>
|
|
<div class="auth-visual__preview-row">
|
|
<span>Multiple leagues</span>
|
|
<strong style="color:var(--pos);">✓</strong>
|
|
</div>
|
|
<div class="auth-visual__preview-row">
|
|
<span>Full ledger history</span>
|
|
<strong style="color:var(--pos);">✓</strong>
|
|
</div>
|
|
<div class="auth-visual__preview-row">
|
|
<span>Platform fee</span>
|
|
<strong style="color:var(--muted);">$0</strong>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{% endblock %}
|