From bb7069f23aa6cef15eb4d3ab31c6b0720f88c4d0 Mon Sep 17 00:00:00 2001 From: simonpipe Date: Thu, 18 Dec 2025 22:19:19 +0100 Subject: [PATCH] Update style.css --- style.css | 362 +++++++++++++++++++++++++++--------------------------- 1 file changed, 178 insertions(+), 184 deletions(-) diff --git a/style.css b/style.css index eda8d75..523c76f 100644 --- a/style.css +++ b/style.css @@ -1,4 +1,4 @@ -/* Public Domain */ +/* Public Domain - Radioplayer Stylesheet */ :root { /* Farben */ @@ -20,7 +20,7 @@ --text-color-light: #666; --text-color-lighter: #ccc; --shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - --modal-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); + --modal-shadow: 0 4px 15px rgba(0, 0, 0, 0.3); /* Schriftfamilie */ --font-family: Arial, sans-serif; @@ -30,6 +30,7 @@ --padding-top: calc(var(--header-height) + 20px); } +/* --- BASICS --- */ body { font-family: var(--font-family); text-align: center; @@ -37,8 +38,14 @@ body { padding: 20px; padding-top: var(--padding-top); background-color: var(--background-color); + color: var(--text-color); } +.hidden { + display: none !important; +} + +/* --- HEADER & NAVIGATION --- */ .header { background-color: var(--header-background); height: var(--header-height); @@ -63,10 +70,6 @@ body { width: auto; } -.hidden { - display: none !important; -} - .stop-button { background-color: var(--primary-color); color: var(--button-color); @@ -76,36 +79,39 @@ body { height: 30px; padding: 4px 10px; font-size: 18px; - margin-left: auto; + margin-left: 10px; cursor: pointer; transition: background-color 0.3s ease; position: relative; top: -2px; - font-family: var(--font-family); } .stop-button:hover { background-color: var(--primary-color-hover); } -.stop-button:focus { - outline: none; - box-shadow: 0 0 5px rgba(255, 77, 77, 0.75); -} - #aktueller-sender { background-color: var(--success-color); border-radius: 5px; padding: 10px 20px; - display: inline-block; /* Balken wächst mit dem Text */ - max-width: 90%; /* Verhindert, dass er über den Bildschirmrand geht */ - white-space: nowrap; /* Verhindert Zeilenumbruch */ - overflow: hidden; /* Schneidet Text ab, falls er zu lang ist */ - text-overflow: ellipsis; /* Fügt ... am Ende ein, falls zu lang */ + display: inline-block; + max-width: 90%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; font-weight: bold; - font-size: 0.95em; /* Schrift minimal verkleinern, damit mehr Text passt */ + font-size: 0.95em; + border: 1px solid rgba(0,0,0,0.05); } +#current-station-name i { + color: var(--text-color-light); + margin-right: 8px; + font-size: 0.9em; /* Macht das Icon dezent kleiner als den Text */ + vertical-align: middle; +} + +/* --- PRESET GRID --- */ .preset-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); @@ -132,7 +138,7 @@ body { flex: 1; text-align: left; word-break: break-word; - font-family: var(--font-family); + font-size: 1.1em; } .preset-item:hover { @@ -140,36 +146,88 @@ body { box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); } -.button-container { - display: flex; - justify-content: center; - gap: 10px; - flex-wrap: wrap; - margin: 0 auto; - padding-top: 15px; -} - -.button-container button { +/* --- BUTTONS --- */ +.button-container button, +.btn, +.custom-modal-buttons button, +.search-link { /* Such-Link hier hinzugefügt */ padding: 10px 20px; min-width: 120px; - border: none; + border: 1px solid var(--border-color); border-radius: 5px; background-color: var(--button-background); + color: var(--text-color); cursor: pointer; - transition: background-color 0.3s ease; + transition: all 0.2s ease; font-family: var(--font-family); font-size: 14px; + display: inline-flex; + align-items: center; + justify-content: center; + text-decoration: none; /* Entfernt den Unterstrich beim Link */ + gap: 8px; } -.button-container button:hover { +/* Speziell für den weißen Hintergrund des Such-Buttons */ +.search-link { + background-color: #ffffff !important; +} + +.button-container button:hover, +.btn:hover, +.custom-modal-buttons button:hover, +.search-link:hover { + background-color: var(--button-hover) !important; +} + +/* Papierkorb-Icon in der Liste */ +.delete-btn { + background: transparent !important; + border: none !important; + min-width: auto !important; + padding: 5px !important; + color: #ff9999; /* Dein --primary-color */ + transition: color 0.2s ease; +} + +.delete-btn:hover { + color: #ff4444 !important; /* Kräftiges Warn-Rot */ + background: transparent !important; +} + +.delete-btn i { + font-size: 1.1rem; +} + +/* Basis-Design für alle Buttons (inkl. Custom Modal) */ +.button-container button, +.btn, +.custom-modal-buttons button { + padding: 10px 20px; + min-width: 120px; + border: 1px solid var(--border-color); + border-radius: 5px; + background-color: var(--button-background); + color: var(--text-color); + cursor: pointer; + transition: all 0.2s ease; + font-family: var(--font-family); + font-size: 14px; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.button-container button:hover, +.btn:hover, +.custom-modal-buttons button:hover { background-color: var(--button-hover); } -/* Spezifische Klassen für farbige Buttons */ +/* Spezial-Klassen für OK und Abbrechen (überall gültig) */ .btn-ok { background-color: var(--success-color) !important; - color: var(--text-color) !important; - border: 1px solid var(--border-color) !important; + font-weight: bold !important; } .btn-ok:hover { @@ -178,214 +236,150 @@ body { .btn-cancel { background-color: var(--button-background) !important; - color: var(--text-color) !important; - border: 1px solid var(--border-color) !important; } -.btn-cancel:hover { - background-color: var(--button-hover) !important; -} - -.footer { - display: flex; - align-items: center; - justify-content: center; - margin: 20px 0; - font-size: 12px; - color: var(--text-color-light); -} - -.footer a { - color: var(--text-color-light); - text-decoration: none; - margin: 0 5px; - font-family: var(--font-family); -} - -.footer a:hover { - color: var(--text-color); -} - -/* ===== Modal Styles ===== */ +/* --- MODALS --- */ .modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: var(--modal-background); - padding: 20px; - border-radius: 10px; + padding: 25px; + border-radius: 12px; box-shadow: var(--modal-shadow); - z-index: 1000; + z-index: 2000; max-width: 800px; width: 90%; - max-height: 80vh; + max-height: 85vh; overflow-y: auto; - display: none; } .modal-content { display: flex; flex-direction: column; - gap: 20px; - font-family: var(--font-family); + gap: 15px; } -.modal-content h2 { - color: var(--text-color); -} - -.modal-content table { +/* Tabelle im Modal */ +#preset-table { width: 100%; border-collapse: collapse; + margin: 10px 0; } -.modal-content th, -.modal-content td { +#preset-table th, #preset-table td { border: 1px solid var(--border-color); - padding: 8px; - font-family: var(--font-family); + padding: 10px; } -.modal-content th { - background-color: var(--button-background); +#preset-table th { + background-color: #f8f8f8; } -.modal-content .drag-handle { +.drag-handle { cursor: grab; - text-align: center; -} - -.modal-content input[type="text"] { - width: 100%; - box-sizing: border-box; - font-family: var(--font-family); -} - -.modal-content th:nth-child(1), -.modal-content td:nth-child(1) { min-width: 10px; max-width: 10px; } -.modal-content th:nth-child(4), -.modal-content td:nth-child(4) { min-width: 10px; max-width: 10px; text-align: center; } - -.delete-btn { - background: none; - border: none; - cursor: pointer; - font-size: 14px; - color: var(--text-color-light); - padding: 0; - line-height: 1; - font-family: var(--font-family); -} - -.delete-btn:hover { color: var(--primary-color); } - -.find-sender-link { - display: inline-block; - padding: 10px 15px; - border-radius: 5px; - color: var(--text-color); - text-decoration: none; - cursor: pointer; - transition: background-color 0.3s ease; - border: 1px solid var(--border-color); - font-size: 14px; - font-family: var(--font-family); -} - -.find-sender-link:hover { background-color: var(--button-background); } - -/* ===== Import/Export Section ===== */ -.share-details { - margin-top: 20px; - border: 1px solid var(--border-color); - border-radius: 5px; - padding: 15px; - background-color: var(--modal-background-export); -} - -.share-details h3 { - font-weight: bold; - color: var(--text-color); - margin-top: 0; - margin-bottom: 15px; - font-family: var(--font-family); -} - -.share-content { display: flex; flex-direction: column; gap: 15px; } -.share-section { margin-bottom: 10px; } -.share-section h4 { margin: 0 0 8px 0; font-size: 14px; color: var(--text-color); font-family: var(--font-family); } - -.input-group { - display: flex; - gap: 8px; - align-items: center; color: var(--text-color-lighter); } -.input-group input { +/* --- EXPORT / SHARE BEREICH --- */ +.export-import-container { + margin: 20px 0; + padding: 20px; + background: var(--modal-background-export); + border: 1px solid var(--border-color); + border-radius: 10px; +} + +.share-row { + display: flex; + gap: 8px; + margin-bottom: 15px; +} + +.share-row input { flex: 1; - padding: 8px; + padding: 10px; border: 1px solid var(--border-color); - border-radius: 4px; + border-radius: 6px; font-family: monospace; - font-size: 12px; -} - -.input-group button { - padding: 8px 12px; - background-color: var(--button-background); - border: 1px solid var(--border-color); - border-radius: 4px; + font-size: 0.85rem; + background: #fff; cursor: pointer; - white-space: nowrap; - transition: background-color 0.2s ease; - font-family: var(--font-family); + overflow: hidden; + text-overflow: ellipsis; } -.input-group button:hover { background-color: var(--button-hover); } +.json-row { + display: flex; + justify-content: center; + gap: 10px; +} -#export-string-field, #import-string-field { - font-family: monospace; +/* --- FOOTER --- */ +footer { + margin-top: 40px; +} + +.footer { font-size: 12px; - min-height: 36px; + color: var(--text-color-light); + display: flex; + align-items: center; + justify-content: center; + gap: 5px; } -/* Benutzerdefiniertes Modal für Meldungen */ +.footer a { + color: inherit; + text-decoration: none; + font-weight: bold; +} + +/* --- CUSTOM ALERTS --- */ .custom-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; - background-color: rgba(0, 0, 0, 0.5); + background-color: rgba(0, 0, 0, 0.6); display: flex; justify-content: center; align-items: center; - z-index: 3000; + z-index: 4000; } .custom-modal-content { - background-color: var(--modal-background); - padding: 20px; + background: #fff; + padding: 25px; border-radius: 10px; - box-shadow: var(--modal-shadow); - text-align: center; max-width: 400px; - width: 90%; - font-family: var(--font-family); + width: 85%; + text-align: center; } .custom-modal-buttons { display: flex; justify-content: center; - gap: 10px; + gap: 15px; margin-top: 20px; } -.custom-modal-buttons button { - padding: 8px 15px; - border: none; - border-radius: 5px; - cursor: pointer; - transition: background-color 0.3s ease; - font-family: var(--font-family); +/* --- MOBILE OPTIMIERUNG --- */ +@media (max-width: 600px) { + :root { + --header-height: 140px; + } + + .share-row { + flex-direction: column; + } + + .json-row { + flex-direction: column; + } + + #preset-table th:nth-child(3), + #preset-table td:nth-child(3) { + display: none; + } } \ No newline at end of file