visual redesign: landing, dashboard overview, session calendar (2.3.1)
- 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
This commit is contained in:
1 parent
56c9a1084c
commit
a5cb488b91
22 files changed
+2975
-597
No files matched your search
+29
-25
@@ -2,58 +2,62 @@
|
||||
{% block title %}Explore leagues · myboker.org{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<div class="hero" style="padding-bottom:8px;">
|
||||
<p class="hero__kicker">Public leagues</p>
|
||||
<h1 class="hero__title">Explore</h1>
|
||||
<p class="hero__sub">Browse poker leagues that have made their results publicly visible.</p>
|
||||
<div class="explore-header">
|
||||
<p class="explore-header__eyebrow">Public leagues</p>
|
||||
<h1 class="explore-header__title">Explore</h1>
|
||||
<p class="explore-header__sub">Browse poker leagues that have made their results publicly visible.</p>
|
||||
</div>
|
||||
|
||||
<form method="get" action="{{ url_for('public.explore') }}" class="explore-search">
|
||||
<input class="field-input explore-search__input" type="text" name="q" value="{{ q }}" placeholder="Search by league name…">
|
||||
<form method="get" action="{{ url_for('public.explore') }}" class="explore-search-row">
|
||||
<input class="field-input" type="text" name="q" value="{{ q }}" placeholder="Search by league name…" autocomplete="off">
|
||||
<button class="btn btn--primary" type="submit">Search</button>
|
||||
{% if q %}<a class="btn btn--ghost" href="{{ url_for('public.explore') }}">Clear</a>{% endif %}
|
||||
</form>
|
||||
|
||||
{% if leagues %}
|
||||
<div class="explore-grid">
|
||||
<div class="explore-cards">
|
||||
{% for league in leagues %}
|
||||
{% set c = counts.get(league.id, {}) %}
|
||||
<a class="explore-card" href="{{ url_for('leagues.dashboard', league_ref=league.url_ref) }}">
|
||||
<div class="explore-card__head">
|
||||
<h2 class="explore-card__name">{{ league.name }}</h2>
|
||||
{% if league.description %}
|
||||
<p class="explore-card__desc">{{ league.description }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="explore-card__stats">
|
||||
<div class="explore-card__stat">
|
||||
<a class="ex-card" href="{{ url_for('leagues.dashboard', league_ref=league.url_ref) }}">
|
||||
<div class="ex-card__initial">{{ league.name[0] | upper }}</div>
|
||||
<h2 class="ex-card__name">{{ league.name }}</h2>
|
||||
{% if league.description %}
|
||||
<p class="ex-card__desc">{{ league.description }}</p>
|
||||
{% else %}
|
||||
<p class="ex-card__desc" style="opacity:.35;">No description</p>
|
||||
{% endif %}
|
||||
<div class="ex-card__stats">
|
||||
<div class="ex-card__stat">
|
||||
<span class="kicker">Players</span>
|
||||
<strong>{{ c.get('players', 0) }}</strong>
|
||||
</div>
|
||||
<div class="explore-card__stat">
|
||||
<div class="ex-card__stat">
|
||||
<span class="kicker">Sessions</span>
|
||||
<strong>{{ c.get('sessions', 0) }}</strong>
|
||||
</div>
|
||||
<div class="explore-card__stat">
|
||||
<span class="kicker">Open</span>
|
||||
<strong>{{ c.get('open_sessions', 0) }}</strong>
|
||||
{% if c.get('open_sessions', 0) > 0 %}
|
||||
<div class="ex-card__stat">
|
||||
<span class="kicker">Live</span>
|
||||
<strong style="color:var(--pos);">{{ c.get('open_sessions', 0) }}</strong>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="explore-card__footer">
|
||||
<span class="explore-card__link">View league →</span>
|
||||
<div class="ex-card__footer">
|
||||
<span class="ex-card__link">View league →</span>
|
||||
</div>
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% elif q %}
|
||||
<div class="empty-panel" style="max-width:480px;">
|
||||
<div class="panel empty-panel" style="max-width:480px;">
|
||||
<h3 class="panel__title">No results for "{{ q }}"</h3>
|
||||
<p class="muted-text">Try a shorter search or browse all leagues.</p>
|
||||
<a class="btn btn--ghost btn--sm" href="{{ url_for('public.explore') }}">Browse all</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="empty-panel" style="max-width:480px;">
|
||||
<div class="panel empty-panel" style="max-width:480px;">
|
||||
<h3 class="panel__title">No public leagues yet</h3>
|
||||
<p class="muted-text">League owners can set their league to public in settings.</p>
|
||||
<p class="muted-text">League owners can set their league to public in league settings.</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
Reference in new issue
Block a user