feat(web): add navigation menu bar for logged-in users

- Add horizontal nav menu with 7 items: Profile, Characters, Sessions,
  Mechanics, Leaderboard, Settings, Help
- Implement responsive hamburger menu for mobile (≤768px)
- Create pages blueprint with stub routes for new pages
- Add "Coming Soon" styled stub templates with icons
- Include active state highlighting for current page

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-26 10:21:46 -06:00
parent 4d26c43d1d
commit 77d913fe50
10 changed files with 573 additions and 4 deletions

View File

@@ -57,10 +57,12 @@ def create_app():
from .views.auth_views import auth_bp
from .views.character_views import character_bp
from .views.game_views import game_bp
from .views.pages import pages_bp
app.register_blueprint(auth_bp)
app.register_blueprint(character_bp)
app.register_blueprint(game_bp)
app.register_blueprint(pages_bp)
# Register Jinja filters
def format_timestamp(iso_string: str) -> str:
@@ -107,6 +109,6 @@ def create_app():
logger.error("internal_server_error", error=str(error))
return render_template('errors/500.html'), 500
logger.info("flask_app_created", blueprints=["auth", "character", "game"])
logger.info("flask_app_created", blueprints=["auth", "character", "game", "pages"])
return app

View File

@@ -0,0 +1,96 @@
"""
Pages Views Blueprint
This module provides web UI routes for static/stub pages:
- Profile page
- Sessions page
- Mechanics page
- Leaderboard page
- Settings page
- Help page
These are currently stub pages that will be implemented in future phases.
"""
from flask import Blueprint, render_template
from app.utils.auth import require_auth_web
from app.utils.logging import get_logger
# Initialize logger
logger = get_logger(__file__)
# Create blueprint
pages_bp = Blueprint('pages', __name__)
@pages_bp.route('/profile')
@require_auth_web
def profile():
"""
Display player profile page.
Currently a stub - will show player stats, achievements, etc.
"""
logger.info("Accessing profile page")
return render_template('pages/profile.html')
@pages_bp.route('/sessions')
@require_auth_web
def sessions():
"""
Display active game sessions page.
Currently a stub - will show list of active/past sessions.
"""
logger.info("Accessing sessions page")
return render_template('pages/sessions.html')
@pages_bp.route('/mechanics')
@require_auth_web
def mechanics():
"""
Display game mechanics reference page.
Currently a stub - will explain combat, skills, items, etc.
"""
logger.info("Accessing mechanics page")
return render_template('pages/mechanics.html')
@pages_bp.route('/leaderboard')
@require_auth_web
def leaderboard():
"""
Display leaderboard page.
Currently a stub - will show top players, achievements, etc.
"""
logger.info("Accessing leaderboard page")
return render_template('pages/leaderboard.html')
@pages_bp.route('/settings')
@require_auth_web
def settings():
"""
Display user settings page.
Currently a stub - will allow account settings, preferences, etc.
"""
logger.info("Accessing settings page")
return render_template('pages/settings.html')
@pages_bp.route('/help')
@require_auth_web
def help_page():
"""
Display help/guide page.
Currently a stub - will provide tutorials, FAQs, support info.
"""
logger.info("Accessing help page")
return render_template('pages/help.html')