Autosave: 20260217-190955
BIN
assets/pasted-20260217-184853-b9782cb3.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
BIN
assets/pasted-20260217-185432-d5369dd4.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
BIN
assets/pasted-20260217-185935-a2ab29fc.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
BIN
assets/pasted-20260217-190126-64d72bd8.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
BIN
assets/pasted-20260217-190514-e29c5229.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
@ -185,3 +185,6 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
||||
# Media files (User uploads)
|
||||
MEDIA_URL = 'media/'
|
||||
MEDIA_ROOT = BASE_DIR / 'media'
|
||||
|
||||
LOGOUT_REDIRECT_URL = 'onboarding'
|
||||
LOGIN_REDIRECT_URL = 'home'
|
||||
|
||||
|
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 434 KiB |
@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>{% block title %}CommonGround{% endblock %}</title>
|
||||
<title>{% block title %}Roster{% endblock %}</title>
|
||||
{% if project_description %}
|
||||
<meta name="description" content="{{ project_description }}">
|
||||
{% endif %}
|
||||
@ -21,24 +21,23 @@
|
||||
<body>
|
||||
<nav class="navbar navbar-expand-lg sticky-top py-2">
|
||||
<div class="container-fluid px-lg-5">
|
||||
<a class="navbar-brand brand-font fs-4 d-flex align-items-center" href="/">
|
||||
<img src="{% static 'core/images/logo.png' %}" alt="CommonGround" class="me-2" style="height: 24px;">
|
||||
<span class="fw-semibold ls-1" style="font-size: 1.25rem;">CommonGround</span>
|
||||
<a class="navbar-brand brand-font d-flex align-items-center" href="/">
|
||||
<img src="{% static 'core/images/logo.png' %}?v={{ deployment_timestamp }}" alt="Roster Logo" style="height: 48px; filter: drop-shadow(0 0 10px rgba(0, 180, 219, 0.3));">
|
||||
</a>
|
||||
<button class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
<button class="navbar-toggler border-0 text-white" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||
<i class="bi bi-list fs-1"></i>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav ms-auto align-items-center">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3" href="{% url 'home' %}">Teammates</a>
|
||||
<a class="nav-link px-3" href="{% url 'home' %}">Explore</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3" href="{% url 'about' %}">About</a>
|
||||
</li>
|
||||
{% if user.is_authenticated %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3 {% if 'matches' in request.path %}active{% endif %}" href="{% url 'matches' %}">My Teammates</a>
|
||||
<a class="nav-link px-3 {% if 'matches' in request.path %}active{% endif %}" href="{% url 'matches' %}">My Roster</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3 {% if 'events' in request.path %}active{% endif %}" href="{% url 'events' %}">Sessions</a>
|
||||
@ -61,14 +60,17 @@
|
||||
</li>
|
||||
{% endif %}
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-outline-cg ms-lg-3" href="{% url 'logout' %}">Log Out</a>
|
||||
<form action="{% url 'logout' %}" method="post" class="d-inline">
|
||||
{% csrf_token %}
|
||||
<button type="submit" class="btn btn-outline-cg ms-lg-3">Log Out</button>
|
||||
</form>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link px-3" href="{% url 'login' %}">Log In</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-primary-cg ms-lg-3" href="{% url 'signup' %}">Join Community</a>
|
||||
<a class="btn btn-neon ms-lg-3" href="{% url 'signup' %}">Join Roster</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
@ -84,26 +86,26 @@
|
||||
<div class="bottom-nav d-lg-none">
|
||||
<a href="{% url 'home' %}" class="bottom-nav-item {% if request.resolver_match.url_name == 'home' %}active{% endif %}">
|
||||
<i class="bi bi-compass"></i>
|
||||
Teammates
|
||||
Explore
|
||||
</a>
|
||||
<a href="{% url 'matches' %}" class="bottom-nav-item {% if 'matches' in request.path %}active{% endif %}">
|
||||
<i class="bi bi-people"></i>
|
||||
Teammates
|
||||
<i class="bi bi-shield-check"></i>
|
||||
My Roster
|
||||
</a>
|
||||
<a href="{% url 'inbox' %}" class="bottom-nav-item {% if request.resolver_match.url_name == 'inbox' or request.resolver_match.url_name == 'chat_detail' %}active{% endif %}">
|
||||
<i class="bi bi-chat-dots"></i>
|
||||
<i class="bi bi-chat-left-text"></i>
|
||||
Messages
|
||||
</a>
|
||||
<a href="{% url 'events' %}" class="bottom-nav-item {% if request.resolver_match.url_name == 'events' %}active{% endif %}">
|
||||
<i class="bi bi-calendar-event"></i>
|
||||
<i class="bi bi-lightning-charge"></i>
|
||||
Sessions
|
||||
</a>
|
||||
<a href="{% url 'groups:hub' %}" class="bottom-nav-item {% if 'groups' in request.path %}active{% endif %}">
|
||||
<i class="bi bi-grid"></i>
|
||||
<i class="bi bi-grid-1x2"></i>
|
||||
Squads
|
||||
</a>
|
||||
<a href="{% url 'my_profile' %}" class="bottom-nav-item {% if request.resolver_match.url_name == 'my_profile' or request.resolver_match.url_name == 'profile_detail' or request.resolver_match.url_name == 'edit_profile' %}active{% endif %}">
|
||||
<i class="bi bi-person"></i>
|
||||
<i class="bi bi-person-badge"></i>
|
||||
Profile
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}About - CommonGround{% endblock %}
|
||||
{% block title %}About - Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<section class="py-5 bg-light-cg">
|
||||
@ -8,7 +8,7 @@
|
||||
<div class="row justify-content-center text-center">
|
||||
<div class="col-lg-8">
|
||||
<h1 class="brand-font display-4 mb-4">Our Mission</h1>
|
||||
<p class="lead text-slate fs-4">CommonGround is a platform for intentional, platonic connections for professionals and individuals navigating life transitions.</p>
|
||||
<p class="lead text-slate fs-4">Roster is a platform for intentional beauty connections, ritual sharing, and community growth.</p>
|
||||
<p class="text-muted">Not a dating app — a high-trust social connection ecosystem centered on shared values, life goals, activities, and authentic engagement.</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -43,7 +43,7 @@
|
||||
<section class="py-5 bg-sand">
|
||||
<div class="container text-center">
|
||||
<h2 class="brand-font mb-4">Ready to find your community?</h2>
|
||||
<a href="{% url 'signup' %}" class="btn btn-primary-cg btn-lg">Join CommonGround</a>
|
||||
<a href="{% url 'signup' %}" class="btn btn-primary-cg btn-lg">Join Roster</a>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Chat with {{ partner.first_name }} | CommonGround{% endblock %}
|
||||
{% block title %}Chat with {{ partner.first_name }} | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-4">
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Delete Event | CommonGround{% endblock %}
|
||||
{% block title %}Delete Event | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-5">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}{{ event.title }} | CommonGround{% endblock %}
|
||||
{% block title %}{{ event.title }} | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-4">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}{{ title }} | CommonGround{% endblock %}
|
||||
{% block title %}{{ title }} | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-5">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}Sessions | CommonGround{% endblock %}
|
||||
{% block title %}Sessions | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid dashboard-container px-lg-5">
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Messages | CommonGround{% endblock %}
|
||||
{% block title %}Messages | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-4">
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
{% load static %}
|
||||
{% load social_filters %}
|
||||
|
||||
{% block title %}Teammates | CommonGround{% endblock %}
|
||||
{% block title %}Explore | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% if user.is_authenticated %}
|
||||
@ -12,13 +12,13 @@
|
||||
<div class="col-lg-2 d-none d-lg-block">
|
||||
<div class="sticky-sidebar">
|
||||
<nav class="sidebar-nav">
|
||||
<a href="{% url 'home' %}" class="nav-link {% if request.resolver_match.url_name == 'home' %}active{% endif %}"><i class="bi bi-compass"></i> Teammates</a>
|
||||
<a href="{% url 'matches' %}" class="nav-link {% if request.resolver_match.url_name == 'matches' %}active{% endif %}"><i class="bi bi-people"></i> My Teammates</a>
|
||||
<a href="{% url 'inbox' %}" class="nav-link {% if request.resolver_match.url_name == 'inbox' or request.resolver_match.url_name == 'chat_detail' %}active{% endif %}"><i class="bi bi-chat-dots"></i> Messages</a>
|
||||
<a href="{% url 'events' %}" class="nav-link {% if request.resolver_match.url_name == 'events' %}active{% endif %}"><i class="bi bi-calendar-event"></i> Sessions</a>
|
||||
<a href="{% url 'groups:hub' %}" class="nav-link {% if 'groups' in request.path %}active{% endif %}"><i class="bi bi-grid"></i> Squads</a>
|
||||
<a href="{% url 'home' %}" class="nav-link {% if request.resolver_match.url_name == 'home' %}active{% endif %}"><i class="bi bi-compass"></i> Explore</a>
|
||||
<a href="{% url 'matches' %}" class="nav-link {% if request.resolver_match.url_name == 'matches' %}active{% endif %}"><i class="bi bi-shield-check"></i> My Roster</a>
|
||||
<a href="{% url 'inbox' %}" class="nav-link {% if request.resolver_match.url_name == 'inbox' or request.resolver_match.url_name == 'chat_detail' %}active{% endif %}"><i class="bi bi-chat-left-text"></i> Messages</a>
|
||||
<a href="{% url 'events' %}" class="nav-link {% if request.resolver_match.url_name == 'events' %}active{% endif %}"><i class="bi bi-lightning-charge"></i> Sessions</a>
|
||||
<a href="{% url 'groups:hub' %}" class="nav-link {% if 'groups' in request.path %}active{% endif %}"><i class="bi bi-grid-1x2"></i> Squads</a>
|
||||
<a href="{% url 'my_posts' %}" class="nav-link {% if request.resolver_match.url_name == 'my_posts' %}active{% endif %}"><i class="bi bi-journal-text"></i> My Posts</a>
|
||||
<a href="{% url 'my_profile' %}" class="nav-link {% if request.resolver_match.url_name == 'my_profile' or request.resolver_match.url_name == 'profile_detail' %}active{% endif %}"><i class="bi bi-person"></i> Profile</a>
|
||||
<a href="{% url 'my_profile' %}" class="nav-link {% if request.resolver_match.url_name == 'my_profile' or request.resolver_match.url_name == 'profile_detail' %}active{% endif %}"><i class="bi bi-person-badge"></i> Profile</a>
|
||||
<a href="{% url 'settings' %}" class="nav-link {% if request.resolver_match.url_name == 'settings' %}active{% endif %}"><i class="bi bi-gear"></i> Settings</a>
|
||||
</nav>
|
||||
</div>
|
||||
@ -43,21 +43,21 @@
|
||||
<form action="{% url 'create_post' %}" method="POST" enctype="multipart/form-data">
|
||||
{% csrf_token %}
|
||||
<div class="d-flex gap-4 mb-4">
|
||||
<img src="{{ user.profile.get_avatar_url }}" class="rounded-circle" width="48" height="48" style="object-fit: cover; opacity: 0.9;">
|
||||
<img src="{{ user.profile.get_avatar_url }}" class="rounded-circle" width="48" height="48" style="object-fit: cover; opacity: 0.9; border: 2px solid var(--r-cyan);">
|
||||
<div class="flex-grow-1">
|
||||
<label class="small fw-bold text-muted mb-2">Looking for a squad or sharing a highlight?</label>
|
||||
<textarea name="content" class="form-control border-0 bg-light" placeholder="Looking for ranked, casual duo, or sharing a play..." rows="2" style="resize: none;"></textarea>
|
||||
<label class="small fw-bold text-muted mb-2">Share your latest beauty breakthrough or find your ritual squad</label>
|
||||
<textarea name="content" class="form-control border-0 bg-transparent" placeholder="What's your ritual today? Sharing a discovery or looking for advice..." rows="2" style="resize: none;"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between align-items-center pt-2">
|
||||
<div class="d-flex gap-3">
|
||||
<select name="post_type" class="form-select form-select-sm border-0 bg-light px-3" style="width: auto; font-size: 0.8rem;">
|
||||
<select name="post_type" class="form-select form-select-sm border-0 px-3" style="width: auto; font-size: 0.8rem;">
|
||||
{% for code, label in post_types %}
|
||||
<option value="{{ code }}">{{ label }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<div class="upload-btn-wrapper">
|
||||
<button type="button" class="btn btn-outline-cg border-0 bg-light btn-sm px-3">
|
||||
<button type="button" class="btn btn-outline-cg border-0 btn-sm px-3">
|
||||
<i class="bi bi-image text-muted"></i>
|
||||
</button>
|
||||
<input type="file" name="image" accept="image/*" />
|
||||
@ -69,19 +69,19 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Suggested Teammates -->
|
||||
<!-- Suggested Roster -->
|
||||
<div class="dashboard-section">
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h2 class="section-header mb-0">Suggested Teammates</h2>
|
||||
<a href="{% url 'home' %}" class="small text-decoration-none fw-bold text-muted">View All</a>
|
||||
<h2 class="section-header mb-0">Suggested Roster</h2>
|
||||
<a href="{% url 'home' %}" class="small text-decoration-none fw-bold text-cyan">View All</a>
|
||||
</div>
|
||||
<div class="horizontal-scroll">
|
||||
{% for profile in suggested_members %}
|
||||
<div class="suggestion-card">
|
||||
<a href="{% url 'profile_detail' profile.user.username %}" class="text-decoration-none text-dark">
|
||||
<img src="{{ profile.get_avatar_url }}" class="rounded-circle mb-3" width="56" height="56" style="object-fit: cover;">
|
||||
<h6 class="mb-1 small fw-bold text-truncate">{{ profile.user.first_name }} {{ profile.user.last_name|slice:":1" }}.</h6>
|
||||
<p class="small text-muted mb-3 text-truncate">{{ profile.primary_game.name|default:"Gamer" }}</p>
|
||||
<div class="suggestion-card text-center">
|
||||
<a href="{% url 'profile_detail' profile.user.username %}" class="text-decoration-none">
|
||||
<img src="{{ profile.get_avatar_url }}" class="rounded-circle mb-3" width="56" height="56" style="object-fit: cover; border: 2px solid var(--r-cyan);">
|
||||
<h6 class="mb-1 small fw-bold text-truncate text-white">{{ profile.user.first_name }} {{ profile.user.last_name|slice:":1" }}.</h6>
|
||||
<p class="small text-muted mb-3 text-truncate">{{ profile.primary_game.name|default:"Beauty Enthusiast" }}</p>
|
||||
</a>
|
||||
<div class="d-grid">
|
||||
{% if profile.user.id in following_ids %}
|
||||
@ -227,29 +227,29 @@
|
||||
<section class="hero-section py-5">
|
||||
<div class="container py-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-lg-8 text-center">
|
||||
<h1 class="display-3 mb-4">Find your squad.</h1>
|
||||
<p class="lead text-muted mb-5 px-lg-5">Match by game, rank, role, schedule, and vibe. The intentional network for gamers.</p>
|
||||
<div class="col-lg-10 text-center">
|
||||
<h1 class="hero-title">Build your ultimate Roster.</h1>
|
||||
<p class="lead text-muted mb-5 px-lg-5" style="font-size: 1.5rem;">Connect with the best in personalized beauty. Find your ritual, share your journey, and build your squad.</p>
|
||||
<div class="d-flex justify-content-center gap-4">
|
||||
<a href="{% url 'signup' %}" class="btn btn-primary-cg px-5">Get Started</a>
|
||||
<a href="{% url 'about' %}" class="btn btn-outline-cg px-5">Learn More</a>
|
||||
<a href="{% url 'signup' %}" class="btn btn-neon">Join Roster</a>
|
||||
<a href="{% url 'about' %}" class="btn btn-outline-cg">Learn More</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="py-5 bg-secondary-section">
|
||||
<section class="py-5">
|
||||
<div class="container py-5">
|
||||
<div class="d-flex justify-content-between align-items-end mb-5 flex-wrap gap-4">
|
||||
<div>
|
||||
<h2 class="mb-2">Teammate Discovery</h2>
|
||||
<p class="text-muted mb-0">Players aligned with your games and rank.</p>
|
||||
<h2 class="text-metallic h1 mb-2">Discover Experts & Enthusiasts</h2>
|
||||
<p class="text-muted mb-0">Personalities aligned with your beauty goals and interests.</p>
|
||||
</div>
|
||||
<div class="d-flex overflow-auto pb-2 gap-3">
|
||||
<a href="{% url 'home' %}" class="btn btn-sm {% if not current_intent %}btn-primary-cg{% else %}btn-outline-cg bg-white border-0{% endif %} rounded-pill px-4">All Aligned</a>
|
||||
<a href="{% url 'home' %}" class="btn btn-sm {% if not current_intent %}btn-neon{% else %}btn-outline-cg border-0{% endif %} rounded-pill px-4">All Profiles</a>
|
||||
{% for intent in intents %}
|
||||
<a href="?intent={{ intent.name }}" class="btn btn-sm {% if current_intent == intent.name %}btn-primary-cg{% else %}btn-outline-cg bg-white border-0{% endif %} rounded-pill px-4">{{ intent.name }}</a>
|
||||
<a href="?intent={{ intent.name }}" class="btn btn-sm {% if current_intent == intent.name %}btn-neon{% else %}btn-outline-cg border-0{% endif %} rounded-pill px-4">{{ intent.name }}</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
@ -257,18 +257,18 @@
|
||||
<div class="row g-5">
|
||||
{% for profile in profiles %}
|
||||
<div class="col-md-6 col-lg-4">
|
||||
<div class="profile-card p-5 h-100 d-flex flex-column border-0 shadow-soft">
|
||||
<div class="card p-5 h-100 d-flex flex-column border-0">
|
||||
<div class="d-flex align-items-start mb-4">
|
||||
<img src="{{ profile.get_avatar_url }}" alt="{{ profile.user.get_full_name }}" class="profile-avatar me-4" style="width: 64px; height: 64px; border-width: 0;">
|
||||
<img src="{{ profile.get_avatar_url }}" alt="{{ profile.user.get_full_name }}" class="profile-avatar me-4" style="width: 64px; height: 64px; border: 2px solid var(--r-cyan);">
|
||||
<div class="pt-1">
|
||||
{% if profile.primary_game %}
|
||||
<span class="intent-badge mb-2 d-inline-block">{{ profile.primary_game.name }}</span>
|
||||
{% endif %}
|
||||
<h3 class="h5 mb-1 fw-bold">{{ profile.user.first_name }} {{ profile.user.last_name|slice:":1" }}.</h3>
|
||||
<h3 class="h5 mb-1 fw-bold text-white">{{ profile.user.first_name }} {{ profile.user.last_name|slice:":1" }}.</h3>
|
||||
<p class="text-muted small mb-0"><i class="bi bi-geo-alt me-2"></i> {{ profile.location_city }}</p>
|
||||
</div>
|
||||
</div>
|
||||
<p class="fw-bold text-slate mb-3">{{ profile.platform|upper }} • {{ profile.rank|default:"Casual Player" }}</p>
|
||||
<p class="fw-bold text-cyan mb-3">{{ profile.platform|upper|default:"BEAUTY" }} • {{ profile.rank|default:"Enthusiast" }}</p>
|
||||
<p class="text-muted small mb-4 line-clamp-3">{{ profile.bio }}</p>
|
||||
|
||||
<div class="mb-5 d-flex flex-wrap gap-2 mt-auto">
|
||||
@ -278,7 +278,7 @@
|
||||
</div>
|
||||
|
||||
<div class="d-grid mt-2">
|
||||
<a href="{% url 'signup' %}" class="btn btn-outline-cg">Connect to View</a>
|
||||
<a href="{% url 'signup' %}" class="btn btn-outline-cg">View Full Roster</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
{% load static %}
|
||||
{% load social_filters %}
|
||||
|
||||
{% block title %}Teammates | CommonGround{% endblock %}
|
||||
{% block title %}Teammates | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid dashboard-container px-lg-5">
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Player Setup - CommonGround{% endblock %}
|
||||
{% block title %}Player Setup - Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-5">
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ title }} | CommonGround{% endblock %}
|
||||
{% block title %}{{ title }} | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-5">
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Settings - CommonGround{% endblock %}
|
||||
{% block title %}Settings - Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-5">
|
||||
@ -13,7 +13,10 @@
|
||||
<a class="nav-link px-0 text-muted" href="#">Privacy & Visibility</a>
|
||||
<a class="nav-link px-0 text-muted" href="#">Notifications</a>
|
||||
<hr>
|
||||
<a class="nav-link px-0 text-danger" href="{% url 'logout' %}">Log Out</a>
|
||||
<form action="{% url 'logout' %}" method="post" class="d-inline">
|
||||
{% csrf_token %}
|
||||
<button type="submit" class="nav-link px-0 text-danger border-0 bg-transparent">Log Out</button>
|
||||
</form>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Log In - CommonGround{% endblock %}
|
||||
{% block title %}Log In - Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-5">
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Player Setup - CommonGround{% endblock %}
|
||||
{% block title %}Player Setup - Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-5">
|
||||
|
||||
@ -53,7 +53,7 @@ def get_dashboard_context(request):
|
||||
"following_ids": following_ids,
|
||||
"post_types": Post.POST_TYPE_CHOICES,
|
||||
"current_time": timezone.now(),
|
||||
"project_name": "CommonGround",
|
||||
"project_name": "Roster",
|
||||
}
|
||||
|
||||
def home(request):
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}{{ group.name }} | CommonGround{% endblock %}
|
||||
{% block title %}{{ group.name }} | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid dashboard-container px-lg-5">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}{% if object %}Edit{% else %}Create{% endif %} Squad | CommonGround{% endblock %}
|
||||
{% block title %}{% if object %}Edit{% else %}Create{% endif %} Squad | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container py-5">
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
{% load static %}
|
||||
|
||||
{% block title %}Squads Hub | CommonGround{% endblock %}
|
||||
{% block title %}Squads Hub | Roster{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container-fluid dashboard-container px-lg-5">
|
||||
|
||||
@ -1,202 +1,172 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400&display=swap');
|
||||
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap');
|
||||
|
||||
:root {
|
||||
--cg-sand-primary: #F4F1EA;
|
||||
--cg-sand-secondary: #FAF8F4;
|
||||
--cg-white: #FFFFFF;
|
||||
--cg-slate: #2C3E50;
|
||||
--cg-muted: #6B7280;
|
||||
--cg-blue: #5D9CEC;
|
||||
--cg-sage: #8FAF9F;
|
||||
--cg-divider: rgba(44, 62, 80, 0.08);
|
||||
--cg-success: #789688; /* Muted sage-green for success */
|
||||
--cg-radius-sm: 8px;
|
||||
--cg-radius-md: 12px;
|
||||
--cg-radius-lg: 16px;
|
||||
--cg-transition: all 250ms ease;
|
||||
--cg-shadow-soft: 0 4px 12px rgba(44, 62, 80, 0.04);
|
||||
--r-navy-deep: #050A18;
|
||||
--r-navy-soft: #0C162D;
|
||||
--r-cyan: #00B4DB;
|
||||
--r-cyan-glow: rgba(0, 180, 219, 0.4);
|
||||
--r-neon-green: #39FF14;
|
||||
--r-neon-glow: rgba(57, 255, 20, 0.4);
|
||||
--r-silver: #E0E0E0;
|
||||
--r-silver-dim: #A0A0A0;
|
||||
--r-glass-bg: rgba(255, 255, 255, 0.03);
|
||||
--r-glass-border: rgba(224, 224, 224, 0.2);
|
||||
--r-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
||||
background: linear-gradient(180deg, #F6F3EC 0%, #F2EFE7 100%);
|
||||
color: var(--cg-slate);
|
||||
line-height: 1.6;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
min-height: 100vh;
|
||||
background: radial-gradient(circle at top center, #101B38 0%, var(--r-navy-deep) 100%);
|
||||
background-attachment: fixed;
|
||||
color: var(--r-silver);
|
||||
font-family: 'Inter', sans-serif;
|
||||
min-height: 100vh;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
h1, .welcome-header {
|
||||
font-family: 'Playfair Display', serif;
|
||||
font-size: 36px;
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.01em;
|
||||
color: var(--cg-slate);
|
||||
h1, h2, h3, h4, .brand-font {
|
||||
font-family: 'Playfair Display', serif;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
h2, h3, h4, h5, h6, .section-header, .brand-font {
|
||||
font-family: 'Playfair Display', serif;
|
||||
font-weight: 600;
|
||||
letter-spacing: -0.01em;
|
||||
color: var(--cg-slate);
|
||||
/* Metallic Text Effect */
|
||||
.text-metallic {
|
||||
background: linear-gradient(135deg, #FFFFFF 0%, var(--r-silver) 50%, var(--r-silver-dim) 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.section-header {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: #6B7280 !important;
|
||||
}
|
||||
|
||||
/* Layout */
|
||||
/* Glassmorphism Navbar */
|
||||
.navbar {
|
||||
background-color: var(--cg-white);
|
||||
border-bottom: 1px solid rgba(0,0,0,0.05);
|
||||
padding: 0.75rem 0;
|
||||
transition: var(--cg-transition);
|
||||
background: rgba(5, 10, 24, 0.85) !important;
|
||||
backdrop-filter: blur(20px);
|
||||
-webkit-backdrop-filter: blur(20px);
|
||||
border-bottom: 1px solid var(--r-glass-border);
|
||||
padding: 1rem 0;
|
||||
}
|
||||
|
||||
.navbar-brand img {
|
||||
height: 24px;
|
||||
.nav-link {
|
||||
color: var(--r-silver-dim) !important;
|
||||
font-weight: 500;
|
||||
text-transform: uppercase;
|
||||
font-size: 0.85rem;
|
||||
letter-spacing: 1px;
|
||||
transition: var(--r-transition);
|
||||
}
|
||||
|
||||
main {
|
||||
padding-bottom: 100px;
|
||||
padding-top: 24px;
|
||||
.nav-link:hover, .nav-link.active {
|
||||
color: var(--r-cyan) !important;
|
||||
text-shadow: 0 0 15px var(--r-cyan-glow);
|
||||
}
|
||||
|
||||
section {
|
||||
padding: 40px 0;
|
||||
/* Custom Buttons */
|
||||
.btn-neon {
|
||||
background: linear-gradient(135deg, var(--r-cyan) 0%, #0083B0 100%);
|
||||
color: white !important;
|
||||
border: none;
|
||||
font-weight: 700;
|
||||
padding: 0.9rem 2.2rem;
|
||||
border-radius: 12px;
|
||||
transition: var(--r-transition);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
box-shadow: 0 8px 20px var(--r-cyan-glow);
|
||||
}
|
||||
|
||||
/* Sidebar Navigation */
|
||||
.sticky-sidebar {
|
||||
background: #F1EEE6;
|
||||
border-right: 1px solid rgba(0,0,0,0.05);
|
||||
padding: 24px 16px;
|
||||
height: calc(100vh - 72px);
|
||||
margin-left: -1.5rem;
|
||||
.btn-neon:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 12px 30px var(--r-cyan-glow);
|
||||
}
|
||||
|
||||
.sidebar-nav .nav-link {
|
||||
padding: 10px 16px;
|
||||
border-radius: 50px;
|
||||
margin-bottom: 4px;
|
||||
gap: 12px;
|
||||
color: var(--cg-slate);
|
||||
font-weight: 500;
|
||||
transition: background-color 0.2s ease;
|
||||
.btn-outline-cg {
|
||||
border: 2px solid var(--r-silver-dim);
|
||||
color: var(--r-silver);
|
||||
font-weight: 600;
|
||||
padding: 0.8rem 2rem;
|
||||
border-radius: 12px;
|
||||
transition: var(--r-transition);
|
||||
}
|
||||
|
||||
.sidebar-nav .nav-link:hover {
|
||||
background-color: rgba(0,0,0,0.03);
|
||||
.btn-outline-cg:hover {
|
||||
border-color: var(--r-neon-green);
|
||||
color: var(--r-neon-green);
|
||||
box-shadow: 0 0 20px var(--r-neon-glow);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.sidebar-nav .nav-link.active {
|
||||
background-color: rgba(93,156,236,0.12);
|
||||
color: var(--cg-slate);
|
||||
opacity: 1;
|
||||
/* Cards & Panels */
|
||||
.card, .profile-card, .glass-panel {
|
||||
background: rgba(255, 255, 255, 0.02) !important;
|
||||
backdrop-filter: blur(15px);
|
||||
-webkit-backdrop-filter: blur(15px);
|
||||
border: 1px solid var(--r-glass-border) !important;
|
||||
border-radius: 28px;
|
||||
transition: var(--r-transition);
|
||||
color: var(--r-silver) !important;
|
||||
}
|
||||
|
||||
.sidebar-nav .nav-link i {
|
||||
font-size: 1.1rem;
|
||||
.card:hover {
|
||||
border-color: var(--r-cyan) !important;
|
||||
box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
|
||||
background: rgba(255, 255, 255, 0.04) !important;
|
||||
}
|
||||
|
||||
/* Components */
|
||||
.card, .profile-card, .suggestion-card {
|
||||
background: var(--cg-white);
|
||||
border: none;
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 10px 30px rgba(0,0,0,0.06);
|
||||
transition: var(--cg-transition);
|
||||
overflow: hidden;
|
||||
/* Hero Title */
|
||||
.hero-title {
|
||||
font-size: 5rem;
|
||||
font-weight: 800;
|
||||
line-height: 1.1;
|
||||
margin-bottom: 2rem;
|
||||
background: linear-gradient(135deg, #FFFFFF 0%, var(--r-silver) 40%, var(--r-cyan) 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.stat-widget {
|
||||
background: var(--cg-white);
|
||||
border: none;
|
||||
border-radius: 16px;
|
||||
box-shadow: 0 6px 16px rgba(0,0,0,0.05);
|
||||
padding: 24px;
|
||||
transition: var(--cg-transition);
|
||||
}
|
||||
|
||||
.card:hover, .profile-card:hover, .stat-widget:hover {
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 12px 36px rgba(0,0,0,0.08);
|
||||
}
|
||||
|
||||
.dashboard-section {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
/* Badges & Tags */
|
||||
.intent-badge {
|
||||
background-color: var(--cg-sand-secondary);
|
||||
color: var(--cg-blue);
|
||||
border: 1px solid rgba(93, 156, 236, 0.2);
|
||||
border-radius: 30px;
|
||||
padding: 4px 14px;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.post-badge {
|
||||
font-family: 'Inter', sans-serif;
|
||||
font-size: 0.7rem;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.03em;
|
||||
padding: 4px 10px;
|
||||
border-radius: 6px;
|
||||
background-color: var(--cg-sand-secondary);
|
||||
color: var(--cg-muted);
|
||||
border: 1px solid var(--cg-divider);
|
||||
}
|
||||
|
||||
/* Specific Page Refinements */
|
||||
.hero-section {
|
||||
padding: 120px 0 80px;
|
||||
background-color: var(--cg-sand-primary);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.bottom-nav {
|
||||
background: rgba(255, 255, 255, 0.95);
|
||||
backdrop-filter: blur(10px);
|
||||
border-top: 1px solid var(--cg-divider);
|
||||
padding: 12px 0;
|
||||
}
|
||||
|
||||
.bottom-nav-item {
|
||||
color: var(--cg-muted);
|
||||
}
|
||||
|
||||
.bottom-nav-item.active {
|
||||
color: var(--cg-slate);
|
||||
}
|
||||
|
||||
/* Forms */
|
||||
/* Form Styling */
|
||||
.form-control, .form-select {
|
||||
background-color: var(--cg-white);
|
||||
border: 1px solid var(--cg-divider);
|
||||
border-radius: var(--cg-radius-md);
|
||||
padding: 12px 16px;
|
||||
transition: var(--cg-transition);
|
||||
background: rgba(255, 255, 255, 0.05) !important;
|
||||
border: 1px solid var(--r-glass-border) !important;
|
||||
border-radius: 14px;
|
||||
color: white !important;
|
||||
padding: 0.9rem 1.4rem;
|
||||
}
|
||||
|
||||
.form-control:focus {
|
||||
border-color: var(--cg-blue);
|
||||
box-shadow: 0 0 0 4px rgba(93, 156, 236, 0.05);
|
||||
border-color: var(--r-cyan) !important;
|
||||
box-shadow: 0 0 15px var(--r-cyan-glow);
|
||||
background: rgba(255, 255, 255, 0.08) !important;
|
||||
}
|
||||
|
||||
/* Divider Customization */
|
||||
hr {
|
||||
border-top: 1px solid var(--cg-divider);
|
||||
opacity: 1;
|
||||
/* Mobile Nav Enhancement */
|
||||
.bottom-nav {
|
||||
background: rgba(5, 10, 24, 0.95);
|
||||
backdrop-filter: blur(25px);
|
||||
border-top: 1px solid var(--r-glass-border);
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
/* Utils */
|
||||
.rounded-cg { border-radius: var(--cg-radius-lg); }
|
||||
.shadow-soft { box-shadow: var(--cg-shadow-soft); }
|
||||
.bottom-nav-item {
|
||||
color: var(--r-silver-dim) !important;
|
||||
transition: var(--r-transition);
|
||||
}
|
||||
|
||||
.bottom-nav-item.active {
|
||||
color: var(--r-cyan) !important;
|
||||
text-shadow: 0 0 10px var(--r-cyan-glow);
|
||||
}
|
||||
|
||||
/* Global Overrides */
|
||||
.bg-light, .bg-white {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: var(--r-silver-dim) !important;
|
||||
}
|
||||
|
||||
/* Scrollbar */
|
||||
::-webkit-scrollbar { width: 10px; }
|
||||
::-webkit-scrollbar-track { background: var(--r-navy-deep); }
|
||||
::-webkit-scrollbar-thumb { background: #1C2541; border-radius: 5px; border: 2px solid var(--r-navy-deep); }
|
||||
::-webkit-scrollbar-thumb:hover { background: var(--r-cyan); }
|
||||
|
||||
BIN
staticfiles/core/images/logo.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
@ -1,21 +1,172 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap');
|
||||
|
||||
:root {
|
||||
--bg-color-start: #6a11cb;
|
||||
--bg-color-end: #2575fc;
|
||||
--text-color: #ffffff;
|
||||
--card-bg-color: rgba(255, 255, 255, 0.01);
|
||||
--card-border-color: rgba(255, 255, 255, 0.1);
|
||||
--r-navy-deep: #050A18;
|
||||
--r-navy-soft: #0C162D;
|
||||
--r-cyan: #00B4DB;
|
||||
--r-cyan-glow: rgba(0, 180, 219, 0.4);
|
||||
--r-neon-green: #39FF14;
|
||||
--r-neon-glow: rgba(57, 255, 20, 0.4);
|
||||
--r-silver: #E0E0E0;
|
||||
--r-silver-dim: #A0A0A0;
|
||||
--r-glass-bg: rgba(255, 255, 255, 0.03);
|
||||
--r-glass-border: rgba(224, 224, 224, 0.2);
|
||||
--r-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Inter', sans-serif;
|
||||
background: linear-gradient(45deg, var(--bg-color-start), var(--bg-color-end));
|
||||
color: var(--text-color);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
background: radial-gradient(circle at top center, #101B38 0%, var(--r-navy-deep) 100%);
|
||||
background-attachment: fixed;
|
||||
color: var(--r-silver);
|
||||
font-family: 'Inter', sans-serif;
|
||||
min-height: 100vh;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, .brand-font {
|
||||
font-family: 'Playfair Display', serif;
|
||||
letter-spacing: -0.01em;
|
||||
}
|
||||
|
||||
/* Metallic Text Effect */
|
||||
.text-metallic {
|
||||
background: linear-gradient(135deg, #FFFFFF 0%, var(--r-silver) 50%, var(--r-silver-dim) 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
/* Glassmorphism Navbar */
|
||||
.navbar {
|
||||
background: rgba(5, 10, 24, 0.85) !important;
|
||||
backdrop-filter: blur(20px);
|
||||
-webkit-backdrop-filter: blur(20px);
|
||||
border-bottom: 1px solid var(--r-glass-border);
|
||||
padding: 1rem 0;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
color: var(--r-silver-dim) !important;
|
||||
font-weight: 500;
|
||||
text-transform: uppercase;
|
||||
font-size: 0.85rem;
|
||||
letter-spacing: 1px;
|
||||
transition: var(--r-transition);
|
||||
}
|
||||
|
||||
.nav-link:hover, .nav-link.active {
|
||||
color: var(--r-cyan) !important;
|
||||
text-shadow: 0 0 15px var(--r-cyan-glow);
|
||||
}
|
||||
|
||||
/* Custom Buttons */
|
||||
.btn-neon {
|
||||
background: linear-gradient(135deg, var(--r-cyan) 0%, #0083B0 100%);
|
||||
color: white !important;
|
||||
border: none;
|
||||
font-weight: 700;
|
||||
padding: 0.9rem 2.2rem;
|
||||
border-radius: 12px;
|
||||
transition: var(--r-transition);
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 1px;
|
||||
box-shadow: 0 8px 20px var(--r-cyan-glow);
|
||||
}
|
||||
|
||||
.btn-neon:hover {
|
||||
transform: translateY(-3px);
|
||||
box-shadow: 0 12px 30px var(--r-cyan-glow);
|
||||
}
|
||||
|
||||
.btn-outline-cg {
|
||||
border: 2px solid var(--r-silver-dim);
|
||||
color: var(--r-silver);
|
||||
font-weight: 600;
|
||||
padding: 0.8rem 2rem;
|
||||
border-radius: 12px;
|
||||
transition: var(--r-transition);
|
||||
}
|
||||
|
||||
.btn-outline-cg:hover {
|
||||
border-color: var(--r-neon-green);
|
||||
color: var(--r-neon-green);
|
||||
box-shadow: 0 0 20px var(--r-neon-glow);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* Cards & Panels */
|
||||
.card, .profile-card, .glass-panel {
|
||||
background: rgba(255, 255, 255, 0.02) !important;
|
||||
backdrop-filter: blur(15px);
|
||||
-webkit-backdrop-filter: blur(15px);
|
||||
border: 1px solid var(--r-glass-border) !important;
|
||||
border-radius: 28px;
|
||||
transition: var(--r-transition);
|
||||
color: var(--r-silver) !important;
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
border-color: var(--r-cyan) !important;
|
||||
box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
|
||||
background: rgba(255, 255, 255, 0.04) !important;
|
||||
}
|
||||
|
||||
/* Hero Title */
|
||||
.hero-title {
|
||||
font-size: 5rem;
|
||||
font-weight: 800;
|
||||
line-height: 1.1;
|
||||
margin-bottom: 2rem;
|
||||
background: linear-gradient(135deg, #FFFFFF 0%, var(--r-silver) 40%, var(--r-cyan) 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
/* Form Styling */
|
||||
.form-control, .form-select {
|
||||
background: rgba(255, 255, 255, 0.05) !important;
|
||||
border: 1px solid var(--r-glass-border) !important;
|
||||
border-radius: 14px;
|
||||
color: white !important;
|
||||
padding: 0.9rem 1.4rem;
|
||||
}
|
||||
|
||||
.form-control:focus {
|
||||
border-color: var(--r-cyan) !important;
|
||||
box-shadow: 0 0 15px var(--r-cyan-glow);
|
||||
background: rgba(255, 255, 255, 0.08) !important;
|
||||
}
|
||||
|
||||
/* Mobile Nav Enhancement */
|
||||
.bottom-nav {
|
||||
background: rgba(5, 10, 24, 0.95);
|
||||
backdrop-filter: blur(25px);
|
||||
border-top: 1px solid var(--r-glass-border);
|
||||
height: 80px;
|
||||
}
|
||||
|
||||
.bottom-nav-item {
|
||||
color: var(--r-silver-dim) !important;
|
||||
transition: var(--r-transition);
|
||||
}
|
||||
|
||||
.bottom-nav-item.active {
|
||||
color: var(--r-cyan) !important;
|
||||
text-shadow: 0 0 10px var(--r-cyan-glow);
|
||||
}
|
||||
|
||||
/* Global Overrides */
|
||||
.bg-light, .bg-white {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.text-muted {
|
||||
color: var(--r-silver-dim) !important;
|
||||
}
|
||||
|
||||
/* Scrollbar */
|
||||
::-webkit-scrollbar { width: 10px; }
|
||||
::-webkit-scrollbar-track { background: var(--r-navy-deep); }
|
||||
::-webkit-scrollbar-thumb { background: #1C2541; border-radius: 5px; border: 2px solid var(--r-navy-deep); }
|
||||
::-webkit-scrollbar-thumb:hover { background: var(--r-cyan); }
|
||||
|
||||
BIN
staticfiles/pasted-20260217-172745-5275e704.png
Normal file
|
After Width: | Height: | Size: 212 KiB |
BIN
staticfiles/pasted-20260217-184853-b9782cb3.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
BIN
staticfiles/pasted-20260217-185432-d5369dd4.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
BIN
staticfiles/pasted-20260217-185935-a2ab29fc.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
BIN
staticfiles/pasted-20260217-190126-64d72bd8.png
Normal file
|
After Width: | Height: | Size: 434 KiB |
BIN
staticfiles/pasted-20260217-190514-e29c5229.png
Normal file
|
After Width: | Height: | Size: 434 KiB |