diff --git a/data/index.css b/data/index.css index 5f81f05..9c33321 100644 --- a/data/index.css +++ b/data/index.css @@ -1,436 +1,439 @@ html { - overflow: hidden; - height: 100%; - width: 100%; - } + overflow: hidden; + height: 100%; + width: 100%; +} - * { - margin: 0; - padding: 0; - box-sizing: border-box; - } +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} - body { - font-family: "Arial", sans-serif; - background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); - height: 100vh; - width: 100vw; - display: flex; - flex-direction: column; - align-items: center; - padding: 20px; - color: white; - position: relative; - overflow: hidden; - box-sizing: border-box; - } +body { + font-family: "Arial", sans-serif; + background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); + height: 100vh; + width: 100vw; + display: flex; + flex-direction: column; + align-items: center; + padding: 20px; + color: white; + position: relative; + overflow: hidden; + box-sizing: border-box; +} - .logo { - position: fixed; - top: 20px; - left: 20px; - width: auto; - height: auto; - z-index: 1000; - border-radius: 10px; - box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); - transition: transform 0.3s ease; - text-decoration: none; - display: block; - cursor: pointer; - padding-left: 5px; - padding-right: 5px; - } +.logo { + position: fixed; + top: 20px; + left: 20px; + width: auto; + height: auto; + z-index: 1000; + border-radius: 10px; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); + transition: transform 0.3s ease; + text-decoration: none; + display: block; + cursor: pointer; + padding-left: 5px; + padding-right: 5px; +} - .logo:hover { - transform: scale(1.1); - } +.logo:hover { + transform: scale(1.1); +} - .logo img { - width: 100%; - height: 100%; - object-fit: contain; - border-radius: 10px; - } +.logo img { + width: 100%; + height: 100%; + object-fit: contain; + border-radius: 10px; +} - .settings-btn { - position: fixed; - top: 20px; - right: 20px; - background: rgba(255, 255, 255, 0.2); - border: 2px solid rgba(255, 255, 255, 0.3); - color: white; - padding: 15px; - border-radius: 50%; - text-decoration: none; - font-size: 1.5rem; - transition: all 0.3s ease; - z-index: 1000; - width: 60px; - height: 60px; - display: flex; - align-items: center; - justify-content: center; - } +.settings-btn { + position: fixed; + top: 20px; + right: 20px; + background: rgba(255, 255, 255, 0.2); + border: 2px solid rgba(255, 255, 255, 0.3); + color: white; + padding: 15px; + border-radius: 50%; + text-decoration: none; + font-size: 1.5rem; + transition: all 0.3s ease; + z-index: 1000; + width: 60px; + height: 60px; + display: flex; + align-items: center; + justify-content: center; +} - .settings-btn:hover { - background: rgba(255, 255, 255, 0.3); - border-color: rgba(255, 255, 255, 0.5); - transform: scale(1.1); - } +.settings-btn:hover { + background: rgba(255, 255, 255, 0.3); + border-color: rgba(255, 255, 255, 0.5); + transform: scale(1.1); +} - .heartbeat-indicators { - position: fixed; - top: 20px; - right: 90px; - display: flex; - gap: 15px; - z-index: 1000; - background: rgba(255, 255, 255, 0.1); - backdrop-filter: blur(10px); - border-radius: 25px; - padding: 10px 20px; - border: 1px solid rgba(255, 255, 255, 0.2); - } +.heartbeat-indicators { + position: fixed; + top: 20px; + right: 90px; + display: flex; + gap: 15px; + z-index: 1000; + background: rgba(255, 255, 255, 0.1); + backdrop-filter: blur(10px); + border-radius: 25px; + padding: 10px 20px; + border: 1px solid rgba(255, 255, 255, 0.2); +} - .heartbeat-indicator { - width: 20px; - height: 20px; - border-radius: 50%; - background: #e74c3c; - transition: all 0.3s ease; - position: relative; - } +.heartbeat-indicator { + width: 20px; + height: 20px; + border-radius: 50%; + background: #e74c3c; + transition: all 0.3s ease; + position: relative; +} - .heartbeat-indicator::before { - content: attr(data-label); - position: absolute; - top: -25px; - left: 50%; - transform: translateX(-50%); - font-size: 10px; - font-weight: bold; - white-space: nowrap; - color: rgba(255, 255, 255, 0.8); - } +.heartbeat-indicator::before { + content: attr(data-label); + position: absolute; + top: -25px; + left: 50%; + transform: translateX(-50%); + font-size: 10px; + font-weight: bold; + white-space: nowrap; + color: rgba(255, 255, 255, 0.8); +} - .heartbeat-indicator.active { - background: #2ecc71; - box-shadow: 0 0 10px rgba(46, 204, 113, 0.5); - } +.heartbeat-indicator.active { + background: #2ecc71; + box-shadow: 0 0 10px rgba(46, 204, 113, 0.5); +} - /* Batterie-Banner Styling */ - .battery-banner { - position: fixed; - top: 0; - left: 0; - width: 100%; - background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%); - color: white; - padding: 15px 20px; - text-align: center; - z-index: 2000; - box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); - border-bottom: 3px solid rgba(255, 255, 255, 0.2); - animation: batteryPulse 2s infinite; - transform: translateY(-100%); - transition: transform 0.5s ease; - } +/* Batterie-Banner Styling */ +.battery-banner { + position: fixed; + top: 0; + left: 0; + width: 100%; + background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%); + color: white; + padding: 15px 20px; + text-align: center; + z-index: 2000; + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); + border-bottom: 3px solid rgba(255, 255, 255, 0.2); + animation: batteryPulse 2s infinite; + transform: translateY(-100%); + transition: transform 0.5s ease; +} - .battery-banner.show { - transform: translateY(0); - } +.battery-banner.show { + transform: translateY(0); +} - .battery-banner .banner-content { - display: flex; - align-items: center; - justify-content: center; - gap: 15px; - flex-wrap: wrap; - } +.battery-banner .banner-content { + display: flex; + align-items: center; + justify-content: center; + gap: 15px; + flex-wrap: wrap; +} - .battery-banner .banner-icon { - font-size: 2rem; - animation: batteryBlink 1.5s infinite; - } +.battery-banner .banner-icon { + font-size: 2rem; + animation: batteryBlink 1.5s infinite; +} - .battery-banner .banner-text { - font-size: 1.1rem; - font-weight: bold; - text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); - } +.battery-banner .banner-text { + font-size: 1.1rem; + font-weight: bold; + text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); +} - .battery-banner .banner-devices { - font-size: 0.9rem; - opacity: 0.9; - margin-top: 5px; - } +.battery-banner .banner-devices { + font-size: 0.9rem; + opacity: 0.9; + margin-top: 5px; +} - .battery-banner .close-btn { - position: absolute; - top: 50%; - right: 20px; - transform: translateY(-50%); - background: rgba(255, 255, 255, 0.2); - border: 2px solid rgba(255, 255, 255, 0.3); - color: white; - width: 35px; - height: 35px; - border-radius: 50%; - cursor: pointer; - font-size: 1.2rem; - display: flex; - align-items: center; - justify-content: center; - transition: all 0.3s ease; - } +.battery-banner .close-btn { + position: absolute; + top: 50%; + right: 20px; + transform: translateY(-50%); + background: rgba(255, 255, 255, 0.2); + border: 2px solid rgba(255, 255, 255, 0.3); + color: white; + width: 35px; + height: 35px; + border-radius: 50%; + cursor: pointer; + font-size: 1.2rem; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.3s ease; +} - .battery-banner .close-btn:hover { - background: rgba(255, 255, 255, 0.3); - border-color: rgba(255, 255, 255, 0.5); - transform: translateY(-50%) scale(1.1); - } +.battery-banner .close-btn:hover { + background: rgba(255, 255, 255, 0.3); + border-color: rgba(255, 255, 255, 0.5); + transform: translateY(-50%) scale(1.1); +} - @keyframes batteryPulse { - 0%, 100% { - opacity: 1; - } - 50% { - opacity: 0.8; - } - } +@keyframes batteryPulse { + 0%, + 100% { + opacity: 1; + } + 50% { + opacity: 0.8; + } +} - @keyframes batteryBlink { - 0%, 50% { - opacity: 1; - } - 51%, 100% { - opacity: 0.5; - } - } +@keyframes batteryBlink { + 0%, + 50% { + opacity: 1; + } + 51%, + 100% { + opacity: 0.5; + } +} - /* Anpassung für mobile Geräte */ - @media (max-width: 768px) { - .battery-banner { - padding: 12px 15px; - } - - .battery-banner .banner-content { - gap: 10px; - } - - .battery-banner .banner-icon { - font-size: 1.5rem; - } - - .battery-banner .banner-text { - font-size: 1rem; - } - - .battery-banner .close-btn { - width: 30px; - height: 30px; - font-size: 1rem; - right: 15px; - } - } +/* Anpassung für mobile Geräte */ +@media (max-width: 768px) { + .battery-banner { + padding: 12px 15px; + } - /* Hauptcontent nach unten verschieben wenn Banner sichtbar */ - .content-shifted { - margin-top: 80px; - transition: margin-top 0.5s ease; - } + .battery-banner .banner-content { + gap: 10px; + } - @media (max-width: 768px) { - .content-shifted { - margin-top: 70px; - } - } + .battery-banner .banner-icon { + font-size: 1.5rem; + } - .header { - text-align: center; - margin-bottom: 2vh; - flex-shrink: 0; - } + .battery-banner .banner-text { + font-size: 1rem; + } - .header h1 { - font-size: clamp(1.8rem, 4vw, 2.5rem); - margin-bottom: 0.5vh; - text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); - } + .battery-banner .close-btn { + width: 30px; + height: 30px; + font-size: 1rem; + right: 15px; + } +} - .header p { - font-size: clamp(0.8rem, 1.8vw, 1rem); - } +/* Hauptcontent nach unten verschieben wenn Banner sichtbar */ +.content-shifted { + margin-top: 80px; + transition: margin-top 0.5s ease; +} - .timer-container { - display: grid; - grid-template-columns: 1fr 1fr; - gap: clamp(15px, 2vw, 30px); - width: 100%; - max-width: 100%; - flex-grow: 1; - padding: 0 2vw; - max-height: 60vh; - } +@media (max-width: 768px) { + .content-shifted { + margin-top: 70px; + } +} - @media (max-width: 768px) { - .timer-container { - grid-template-columns: 1fr; - gap: clamp(15px, 3vw, 30px); - padding: 0 15px; - } - } +.header { + text-align: center; + margin-bottom: 2vh; + flex-shrink: 0; +} - .lane { - background: rgba(255, 255, 255, 0.1); - backdrop-filter: blur(10px); - border-radius: 20px; - padding: clamp(15px, 2.5vh, 25px); - text-align: center; - border: 1px solid rgba(255, 255, 255, 0.2); - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); - transition: transform 0.3s ease; - display: flex; - flex-direction: column; - justify-content: center; - height: 100%; - overflow: hidden; - } +.header h1 { + font-size: clamp(1.8rem, 4vw, 2.5rem); + margin-bottom: 0.5vh; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); +} - .lane h2 { - font-size: clamp(1.2rem, 2.5vw, 1.8rem); - margin-bottom: clamp(10px, 1vh, 15px); - color: #fff; - } +.header p { + font-size: clamp(0.8rem, 1.8vw, 1rem); +} - .swimmer-name { - font-size: clamp(1.5rem, 3.5vw, 2.2rem); - font-weight: bold; - margin-bottom: clamp(15px, 2vh, 25px); - padding: clamp(8px, 1.5vh, 12px) clamp(12px, 2vw, 18px); - background: rgba(255, 255, 255, 0.2); - border-radius: 15px; - border: 2px solid rgba(255, 255, 255, 0.3); - color: #fff; - text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4); - box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); - backdrop-filter: blur(5px); - animation: fadeIn 0.5s ease-in; - text-align: center; - word-wrap: break-word; - line-height: 1.2; - } +.timer-container { + display: grid; + grid-template-columns: 1fr 1fr; + gap: clamp(15px, 2vw, 30px); + width: 100%; + max-width: 100%; + flex-grow: 1; + padding: 0 2vw; + max-height: 60vh; +} - @keyframes fadeIn { - from { - opacity: 0; - transform: translateY(-10px); - } - to { - opacity: 1; - transform: translateY(0); - } - } +@media (max-width: 768px) { + .timer-container { + grid-template-columns: 1fr; + gap: clamp(15px, 3vw, 30px); + padding: 0 15px; + } +} - .time-display { - font-size: clamp(3rem, 9vw, 10rem); - font-weight: bold; - margin: clamp(10px, 1vh, 15px) 0; - font-family: "Courier New", monospace; - text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); - line-height: 1; - } +.lane { + background: rgba(255, 255, 255, 0.1); + backdrop-filter: blur(10px); + border-radius: 20px; + padding: clamp(15px, 2.5vh, 25px); + text-align: center; + border: 1px solid rgba(255, 255, 255, 0.2); + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); + transition: transform 0.3s ease; + display: flex; + flex-direction: column; + justify-content: center; + height: 100%; + overflow: hidden; +} - .status { - font-size: clamp(3rem, 1.8vw, 1.2rem); - margin: clamp(8px, 1vh, 12px) 0; - padding: clamp(6px, 1vh, 10px) clamp(12px, 2vw, 18px); - border-radius: 20px; - display: inline-block; - font-weight: 600; - } +.lane h2 { + font-size: clamp(1.2rem, 2.5vw, 1.8rem); + margin-bottom: clamp(10px, 1vh, 15px); + color: #fff; +} - .status.ready { - background-color: rgba(52, 152, 219, 0.3); - border: 2px solid #3498db; - } +.swimmer-name { + font-size: clamp(1.5rem, 3.5vw, 2.2rem); + font-weight: bold; + margin-bottom: clamp(15px, 2vh, 25px); + padding: clamp(8px, 1.5vh, 12px) clamp(12px, 2vw, 18px); + background: rgba(255, 255, 255, 0.2); + border-radius: 15px; + border: 2px solid rgba(255, 255, 255, 0.3); + color: #fff; + text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4); + box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); + backdrop-filter: blur(5px); + animation: fadeIn 0.5s ease-in; + text-align: center; + word-wrap: break-word; + line-height: 1.2; +} - .status.running { - background-color: rgba(46, 204, 113, 0.3); - border: 2px solid #2ecc71; - animation: pulse 1s infinite; - } +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(-10px); + } + to { + opacity: 1; + transform: translateY(0); + } +} - .status.finished { - background-color: rgba(231, 76, 60, 0.3); - border: 2px solid #e74c3c; - } +.time-display { + font-size: clamp(3rem, 9vw, 10rem); + font-weight: bold; + margin: clamp(10px, 1vh, 15px) 0; + font-family: "Courier New", monospace; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3); + line-height: 1; +} - @keyframes pulse { - 0% { - opacity: 1; - } - 50% { - opacity: 0.7; - } - 100% { - opacity: 1; - } - } +.status { + font-size: clamp(3rem, 1.8vw, 1.2rem); + margin: clamp(8px, 1vh, 12px) 0; + padding: clamp(6px, 1vh, 10px) clamp(12px, 2vw, 18px); + border-radius: 20px; + display: inline-block; + font-weight: 600; +} - .best-times { - background: rgba(255, 255, 255, 0.15); - backdrop-filter: blur(10px); - border-radius: 15px; - padding: clamp(10px, 1.5vh, 15px); - margin: 1vh 0 0 0; - width: 50%; - max-width: 50%; - text-align: center; - border: 1px solid rgba(255, 255, 255, 0.2); - flex-shrink: 0; - align-self: center; - } +.status.ready { + background-color: rgba(52, 152, 219, 0.3); + border: 2px solid #3498db; +} - .best-times h3 { - font-size: clamp(0.9rem, 1.8vw, 1.1rem); - margin-bottom: clamp(5px, 0.5vh, 8px); - } +.status.running { + background-color: rgba(46, 204, 113, 0.3); + border: 2px solid #2ecc71; + animation: pulse 1s infinite; +} - .best-time-row { - display: flex; - justify-content: space-between; - margin: clamp(3px, 0.5vh, 5px) 0; - font-size: clamp(0.8rem, 1.5vw, 1rem); - font-weight: 500; - background: rgba(255, 255, 255, 0.1); - padding: clamp(5px, 1vh, 8px) clamp(8px, 1.5vw, 12px); - border-radius: 8px; - } +.status.finished { + background-color: rgba(231, 76, 60, 0.3); + border: 2px solid #e74c3c; +} - .learning-mode { - background: rgba(255, 193, 7, 0.2); - border: 2px solid #ffc107; - border-radius: 15px; - padding: clamp(15px, 2vh, 20px); - margin: 2vh 0; - text-align: center; - animation: pulse 2s infinite; - width: 100%; - position: absolute; - top: 15vh; - left: 50%; - transform: translateX(-50%); - z-index: 100; - } +@keyframes pulse { + 0% { + opacity: 1; + } + 50% { + opacity: 0.7; + } + 100% { + opacity: 1; + } +} - .learning-mode h3 { - color: #ffc107; - margin-bottom: 10px; - font-size: clamp(1rem, 2vw, 1.3rem); - } +.best-times { + background: rgba(255, 255, 255, 0.15); + backdrop-filter: blur(10px); + border-radius: 15px; + padding: clamp(10px, 1.5vh, 15px); + margin: 1vh 0 0 0; + width: 50%; + max-width: 50%; + text-align: center; + border: 1px solid rgba(255, 255, 255, 0.2); + flex-shrink: 0; + align-self: center; +} - .learning-mode p { - font-size: clamp(0.9rem, 1.8vw, 1.1rem); - } \ No newline at end of file +.best-times h3 { + font-size: clamp(0.9rem, 1.8vw, 1.1rem); + margin-bottom: clamp(5px, 0.5vh, 8px); +} + +.best-time-row { + display: flex; + justify-content: space-between; + margin: clamp(3px, 0.5vh, 5px) 0; + font-size: clamp(0.8rem, 1.5vw, 1rem); + font-weight: 500; + background: rgba(255, 255, 255, 0.1); + padding: clamp(5px, 1vh, 8px) clamp(8px, 1.5vw, 12px); + border-radius: 8px; +} + +.learning-mode { + background: rgba(255, 193, 7, 0.2); + border: 2px solid #ffc107; + border-radius: 15px; + padding: clamp(15px, 2vh, 20px); + margin: 2vh 0; + text-align: center; + animation: pulse 2s infinite; + width: 100%; + position: absolute; + top: 15vh; + left: 50%; + transform: translateX(-50%); + z-index: 100; +} + +.learning-mode h3 { + color: #ffc107; + margin-bottom: 10px; + font-size: clamp(1rem, 2vw, 1.3rem); +} + +.learning-mode p { + font-size: clamp(0.9rem, 1.8vw, 1.1rem); +} diff --git a/data/index.html b/data/index.html index 37d254d..70b3310 100644 --- a/data/index.html +++ b/data/index.html @@ -3,12 +3,11 @@ - - + +