mejoras vista atleta

This commit is contained in:
Fernando Escobar Robles 2025-06-06 21:35:38 -06:00
parent c0a40b82f2
commit f16ca05a49
3 changed files with 153 additions and 54 deletions

View File

@ -2,47 +2,45 @@
<html lang="es">
<head>
<meta charset="UTF-8" />
<title>Atletas</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<title>Panel del Atleta</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet" />
<link href="css/estiloAtletaSimulador.css" rel="stylesheet" />
</head>
<body class="bg-light text-center">
<body class="bg-light">
<nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3">
<div class="container-fluid">
<a class="navbar-brand fw-bold text-white" href="#">SwimmingArt</a>
<a class="navbar-brand fw-bold text-white">SwimmingArt</a>
<div class="ms-auto d-flex gap-4 align-items-center">
<div class="dropdown">
<button class="btn btn-outline-light dropdown-toggle d-flex align-items-center gap-2 px-3 py-1" type="button" id="userDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-person-circle" viewBox="0 0 16 16">
<button class="btn btn-outline-light dropdown-toggle d-flex align-items-center gap-2 px-3 py-1" type="button" id="userDropdown" data-bs-toggle="dropdown">
<svg width="20" height="20" fill="currentColor" class="bi bi-person-circle" viewBox="0 0 16 16">
<path d="M11 10a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/>
<path fill-rule="evenodd" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm8-7a7 7 0 0 0-4.546 12.174c.03-.256.071-.512.124-.767C4.28 10.798 5.94 10 8 10s3.72.798 4.422 2.407c.053.255.094.511.124.767A7 7 0 0 0 8 1z"/>
<path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm8-7a7 7 0 0 0-4.546 12.174c.03-.256.071-.512.124-.767C4.28 10.798 5.94 10 8 10s3.72.798 4.422 2.407c.053.255.094.511.124.767A7 7 0 0 0 8 1z"/>
</svg>
<span id="nombreUsuarioHeader" class="fw-semibold">Usuario</span>
</button>
<ul class="dropdown-menu dropdown-menu-end text-center p-3"
aria-labelledby="userDropdown"
style="background-color: #0d6efd; color: white; border-radius: 0 0 8px 8px; min-width: 100%; max-width: 250px;">
style="background-color: #0d6efd; color: white; border-radius: 0 0 8px 8px;">
<li>
<select id="langSelector" class="form-select form-select-sm mb-3"
style="border: none; border-radius: 6px; background-color: white; color: black; padding: 0.4rem 0.5rem;">
<select id="langSelector" class="form-select form-select-sm mb-3 bg-white text-dark border-0 rounded">
<option value="es">Español</option>
<option value="en">English</option>
<option value="fr">Français</option>
</select>
</li>
<li>
<button class="btn btn-danger btn-sm w-100" onclick="logout()">Salir</button>
</li>
<li><button class="btn btn-danger btn-sm w-100" onclick="logout()">Salir</button></li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container mt-5">
<h2 class="fw-bold fs-3 mb-4">Equipos Disponibles</h2>
<p>Esta es tu zona para consultar las competencias en las que te encuentras</p>
<!-- Asegúrate de que el contenedor esté presente en el HTML -->
<div id="rutinas-list"></div> <!-- Este es el contenedor para las rutinas -->
<div class="container py-5">
<h2 class="fw-bold fs-3 mb-2 text-center text-primary">Equipos Disponibles</h2>
<p class="text-muted text-center mb-4">Consulta las competencias en las que estás asignado</p>
<div id="rutinas-list" class="row justify-content-center"></div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>

View File

@ -0,0 +1,107 @@
body {
font-family: 'Inter', sans-serif;
background: #f2f4f8;
color: #212529;
}
h2, h3 {
font-weight: 700;
color: #003366;
}
p {
color: #6c757d;
font-weight: 400;
}
/* Tarjetas estilo glass */
.card {
background: rgba(255, 255, 255, 0.75);
border-radius: 18px;
box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
backdrop-filter: blur(8px);
border: 1px solid rgba(200, 200, 255, 0.1);
transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.card:hover {
transform: scale(1.015);
box-shadow: 0 16px 30px rgba(0, 0, 0, 0.12);
}
/* Botones refinados */
.btn-outline-success, .btn-outline-primary {
border-radius: 30px;
padding: 6px 20px;
font-weight: 500;
letter-spacing: 0.4px;
transition: all 0.2s ease-in-out;
}
.btn-outline-success:hover, .btn-outline-primary:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(0, 123, 255, 0.2);
}
/* Línea de tiempo */
#lineaTiempo .step {
border-radius: 50px;
background-color: #ffffff;
border: 1px solid #dee2e6;
padding: 6px 14px;
font-size: 0.9rem;
color: #003366;
box-shadow: 0 2px 6px rgba(0,0,0,0.04);
transition: all 0.2s ease-in-out;
}
#lineaTiempo .step:hover {
background-color: #eaf4ff;
transform: scale(1.05);
}
#lineaTiempo .step.active {
background-color: #b6e0ff;
font-weight: 600;
}
/* Piscina */
#piscinaContainer {
background: #eaf6ff;
border-radius: 16px;
padding: 20px;
box-shadow: inset 0 0 0 1px #cfe2f3;
}
/* Audio player */
#audioPlayer {
border-radius: 10px;
width: 100%;
max-width: 500px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
/* Ajustes generales de secciones */
.container {
padding-top: 4rem;
padding-bottom: 4rem;
}
.card-text {
font-size: 0.95rem;
}
select.form-select {
padding: 6px 10px;
font-size: 0.9rem;
}
/* Suavidad */
.fade-in {
animation: fadeIn 0.4s ease-in-out;
}
@keyframes fadeIn {
0% { opacity: 0; transform: translateY(10px); }
100% { opacity: 1; transform: translateY(0); }
}

View File

@ -4,69 +4,63 @@
<meta charset="UTF-8" />
<title>Simulador de Rutina</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap" rel="stylesheet" />
<link href="css/estiloAtletaSimulador.css" rel="stylesheet" />
</head>
<body class="bg-light">
<nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3">
<div class="container-fluid">
<a class="navbar-brand fw-bold text-white">SwimmingArt</a>
<!-- Botón de menú móvil movido a la izquierda del dropdown -->
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="ms-auto d-flex gap-4 align-items-center">
<!-- Botón de "Volver al Panel" agregado aquí -->
<a href="atleta.html" class="nav-link text-white" data-i18n="nav.panel">Volver al Panel</a>
<a href="atleta.html" class="nav-link text-white">Volver al Panel</a>
<div class="dropdown">
<button class="btn btn-outline-light dropdown-toggle d-flex align-items-center gap-2 px-3 py-1" type="button" id="userDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-person-circle" viewBox="0 0 16 16">
<button class="btn btn-outline-light dropdown-toggle d-flex align-items-center gap-2 px-3 py-1" type="button" id="userDropdown" data-bs-toggle="dropdown">
<svg width="20" height="20" fill="currentColor" class="bi bi-person-circle" viewBox="0 0 16 16">
<path d="M11 10a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/>
<path fill-rule="evenodd" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm8-7a7 7 0 0 0-4.546 12.174c.03-.256.071-.512.124-.767C4.28 10.798 5.94 10 8 10s3.72.798 4.422 2.407c.053.255.094.511.124.767A7 7 0 0 0 8 1z"/>
<path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm8-7a7 7 0 0 0-4.546 12.174c.03-.256.071-.512.124-.767C4.28 10.798 5.94 10 8 10s3.72.798 4.422 2.407c.053.255.094.511.124.767A7 7 0 0 0 8 1z"/>
</svg>
<span id="nombreUsuarioHeader" class="fw-semibold">Usuario</span>
</button>
<ul class="dropdown-menu dropdown-menu-end text-center p-3"
aria-labelledby="userDropdown"
style="background-color: #0d6efd; color: white; border-radius: 0 0 8px 8px; min-width: 100%; max-width: 250px;">
<ul class="dropdown-menu dropdown-menu-end text-center p-3" style="background-color: #0d6efd; color: white; border-radius: 0 0 8px 8px;">
<li>
<select id="langSelector" class="form-select form-select-sm mb-3"
style="border: none; border-radius: 6px; background-color: white; color: black; padding: 0.4rem 0.5rem;">
<select id="langSelector" class="form-select form-select-sm mb-3 bg-white text-dark border-0 rounded">
<option value="es">Español</option>
<option value="en">English</option>
<option value="fr">Français</option>
</select>
</li>
<li>
<button class="btn btn-danger btn-sm w-100" onclick="logout()">Salir</button>
</li>
<li><button class="btn btn-danger btn-sm w-100" onclick="logout()">Salir</button></li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container mt-4">
<h2 id="tituloRutina" class="text-center text-primary mb-3">Cargando rutina...</h2>
<p class="text-center">
<span id="tipoRutina" class="badge bg-info"></span> |
<span id="modalidadRutina" class="badge bg-secondary"></span>
</p>
<div class="container py-5">
<h2 id="tituloRutina" class="text-center fw-bold text-primary mb-2">Cargando rutina...</h2>
<p class="text-center fs-6">
<span id="tipoRutina" class="badge bg-info"></span>
<span id="modalidadRutina" class="badge bg-secondary ms-2"></span>
</p>
<audio id="audioPlayer" controls class="d-block mx-auto mb-2"></audio>
<div class="text-center">
<button id="playPauseBtn" class="btn btn-sm btn-outline-success">▶ Reproducir</button>
</div>
<div class="text-center my-4">
<audio id="audioPlayer" controls class="mb-2 w-100" style="max-width: 500px;"></audio>
<button id="playPauseBtn" class="btn btn-outline-primary btn-sm">▶ Reproducir</button>
</div>
<div id="piscinaContainer" class="mx-auto mb-4">
<div id="piscina" class="border" style="margin: 0 auto; background: #d4f0ff;"></div>
</div>
<h5 class="mt-3">Línea de Tiempo</h5>
<div id="lineaTiempo" class="d-flex flex-wrap gap-2"></div>
<div id="piscinaContainer" class="border rounded p-2 shadow-sm mx-auto mb-4 bg-white" style="max-width: fit-content;">
<div id="piscina" style="margin: 0 auto;"></div>
</div>
<div class="text-start mt-4">
<h5 class="fw-semibold">Línea de Tiempo</h5>
<div id="lineaTiempo" class="d-flex flex-wrap gap-2"></div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.0/Sortable.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/konva@8.3.12/konva.min.js"></script>