From b65da337e83d8070f828c7d99e7d097a706e9799 Mon Sep 17 00:00:00 2001 From: Frank Schwenk Date: Fri, 4 Apr 2025 11:00:16 +0200 Subject: [PATCH] Remove force landscape orientation and improve responsive layout --- index.html | 282 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 232 insertions(+), 50 deletions(-) diff --git a/index.html b/index.html index 3955458..00dbba1 100644 --- a/index.html +++ b/index.html @@ -25,9 +25,7 @@ font-family: Arial, sans-serif; background-color: #1a1a1a; color: white; - height: 100vh; - overflow: hidden; - padding: 0; + min-height: 100vh; overscroll-behavior: none; } @@ -35,18 +33,16 @@ .screen-container { position: relative; width: 100%; - height: 100%; - overflow: hidden; - padding: 0; + min-height: 100vh; } /* Individual screens */ .screen { - position: fixed; + position: absolute; top: 0; left: 0; width: 100%; - height: 100%; + min-height: 100vh; display: none; opacity: 0; transition: opacity 0.3s ease; @@ -58,6 +54,7 @@ display: block; opacity: 1; transform: translateX(0); + position: relative; } .screen.slide-out { @@ -72,8 +69,10 @@ .screen-content { display: flex; flex-direction: column; - height: 100%; + min-height: 100vh; padding: 20px; + overflow-y: auto; + -webkit-overflow-scrolling: touch; } .screen-title { @@ -512,52 +511,104 @@ cursor: not-allowed; } - /* Force landscape */ - @media screen and (orientation: portrait) { - body:after { - content: "Bitte Gerät drehen"; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: #1a1a1a; - display: flex; - align-items: center; - justify-content: center; - font-size: 36px; - z-index: 1000; - } - } - - .loading-indicator { - position: fixed; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - width: 50px; - height: 50px; - border: 5px solid #f3f3f3; - border-top: 5px solid #1e4620; - border-radius: 50%; - animation: spin 1s linear infinite; - display: none; - touch-action: none; - } - - @keyframes spin { - 0% { transform: translate(-50%, -50%) rotate(0deg); } - 100% { transform: translate(-50%, -50%) rotate(360deg); } - } - + /* Loading overlay */ .loading-overlay { + display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; - background: rgba(0, 0, 0, 0.5); + background-color: rgba(0, 0, 0, 0.7); + z-index: 1000; + justify-content: center; + align-items: center; + } + + .loading-indicator { + width: 50px; + height: 50px; + border: 5px solid #f3f3f3; + border-top: 5px solid #3498db; + border-radius: 50%; + animation: spin 1s linear infinite; + } + + @keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + + /* Modal styles */ + .modal { display: none; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.7); + z-index: 1000; + justify-content: center; + align-items: center; + } + + .modal-content { + background-color: #2a2a2a; + padding: 20px; + border-radius: 10px; + width: 90%; + max-width: 500px; + position: relative; + } + + .modal-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 20px; + } + + .close-button { + font-size: 24px; + cursor: pointer; + color: #888; + } + + .close-button:hover { + color: white; + } + + .modal-body { + margin-bottom: 20px; + } + + .modal-footer { + display: flex; + justify-content: flex-end; + gap: 10px; + } + + .modal-button { + padding: 8px 16px; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 16px; + } + + .modal-button.cancel { + background-color: #444; + color: white; + } + + .modal-button.confirm { + background-color: #e74c3c; + color: white; + } + + .modal-button:hover { + opacity: 0.9; } /* Touch feedback animations */ @@ -598,6 +649,120 @@ padding: 12px; font-size: 1.2rem; } + + /* Responsive styles */ + @media screen and (max-width: 480px) { + .game-detail { + padding: 15px; + } + + .scores-container { + flex-direction: column; + gap: 15px; + } + + .player-score { + padding: 15px; + } + + .player-name { + font-size: 20px; + } + + .score { + font-size: 36px; + } + + .score-buttons { + flex-wrap: wrap; + } + + .score-button { + padding: 8px 16px; + font-size: 16px; + } + + .game-actions { + flex-direction: column; + gap: 10px; + } + + .action-button { + padding: 8px; + font-size: 16px; + } + + .new-game-form { + padding: 15px; + } + + .form-group input, + .form-group select { + padding: 8px; + font-size: 14px; + } + + .form-button { + padding: 8px 16px; + font-size: 14px; + } + + .filter-buttons { + flex-wrap: wrap; + } + + .filter-button { + padding: 6px 12px; + font-size: 14px; + } + } + + @media screen and (min-width: 481px) and (max-width: 768px) { + .game-detail { + padding: 20px; + } + + .scores-container { + gap: 15px; + } + + .player-score { + padding: 15px; + } + + .player-name { + font-size: 22px; + } + + .score { + font-size: 42px; + } + + .score-button { + padding: 8px 16px; + font-size: 16px; + } + + .new-game-form { + padding: 20px; + } + + .form-group input, + .form-group select { + padding: 8px; + font-size: 16px; + } + + .form-button { + padding: 8px 16px; + font-size: 16px; + } + + .filter-button { + padding: 6px 12px; + font-size: 14px; + } + } @@ -710,8 +875,25 @@ -
-
+
+
+
+ +