From 4605b51236798b5facfc445b63786ac7270b51b5 Mon Sep 17 00:00:00 2001 From: thrhymes Date: Wed, 24 Dec 2025 23:07:56 +0100 Subject: [PATCH] the greatest --- zuss/app.js | 7 ++- zuss/index.html | 134 +++--------------------------------------- zuss/style.css | 144 ++++++++++++++++++++++++++++++++++++++++++++++ zuss/sw.js | 5 +- zuss/version.json | 2 +- 5 files changed, 160 insertions(+), 132 deletions(-) create mode 100644 zuss/style.css diff --git a/zuss/app.js b/zuss/app.js index f410d0b..13c29cf 100644 --- a/zuss/app.js +++ b/zuss/app.js @@ -4,7 +4,7 @@ * - Install/Update Overlay mit beforeinstallprompt.prompt() */ -const APP_VERSION = "2025.12.24.12"; +const APP_VERSION = "2025.12.24.19"; const TOKEN = "T9e7WESBXxy6rSD"; const BASE = "https://home.x-s.at"; const SHARE_DAV = `${BASE}/public.php/dav/files/${TOKEN}`; @@ -247,10 +247,12 @@ function renderList(items, currentDir) { if (pdfs.length === 0) { setStatus("Keine PDFs gefunden."); + const cnt = $("titleCount"); if (cnt) cnt.textContent = "(0)"; return; } - setStatus(`PDFs: ${pdfs.length}`); + setStatus(""); + const cnt = $("titleCount"); if (cnt) cnt.textContent = `(${pdfs.length})`; for (const it of pdfs) { const a = document.createElement("a"); @@ -308,6 +310,7 @@ async function loadList() { } catch (e) { console.error(e); setStatus("Fehler"); + const cnt = $("titleCount"); if (cnt) cnt.textContent = ""; showError(String(e && e.message ? e.message : e)); } } diff --git a/zuss/index.html b/zuss/index.html index 26e6719..6f81ed8 100644 --- a/zuss/index.html +++ b/zuss/index.html @@ -11,139 +11,19 @@ + WFW-Aushang -
-

WFW-Aushang

+
+ +

WFW-Aushang

+ +
Lade Liste…
@@ -169,6 +49,6 @@
- + diff --git a/zuss/style.css b/zuss/style.css new file mode 100644 index 0000000..63677c2 --- /dev/null +++ b/zuss/style.css @@ -0,0 +1,144 @@ +:root, +:root[data-theme="dark"]{ + --bg:#0b1020; --card:#121a33; --text:#e8eeff; --muted:#9fb0ff; + --line:rgba(255,255,255,.12); --btn:#2b60ff; --btn2:#1c254b; + --ok:#2bff9f; --warn:#ffd36b; +} +:root[data-theme="light"]{ + --bg:#f6f7fb; --card:#ffffff; --text:#0b1020; --muted:#5060a8; + --line:rgba(0,0,0,.10); --btn:#2b60ff; --btn2:#eef1ff; +} + +*{ box-sizing:border-box; } +body{ + margin:0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Arial; + background:var(--bg); color:var(--text); +} +.wrap{ + max-width: 860px; margin: 0 auto; padding: 16px 16px 92px; +} +.titleRow{ + display:flex; align-items:center; gap:10px; + margin: 6px 0 12px; +} +.titleIcon{ + width:54px; height:54px; border-radius:18px; + display:grid; place-items:center; flex:0 0 auto; + background:rgba(43,96,255,.16); border:1px solid rgba(43,96,255,.22); + background-image: url("https://home.x-s.at/zuss/icons/icon-192.png"); + background-size: cover; + background-position: center; + background-repeat: no-repeat; + overflow:hidden; +} +h1{ font-size: 20px; margin: 0; letter-spacing:.3px; } +.titleCount{ + font-size:12px; color:var(--muted); + border:1px solid var(--line); + padding:6px 10px; + border-radius:999px; + background:rgba(0,0,0,.08); + margin-left:4px; +} +.list{ + display:flex; flex-direction:column; gap:10px; +} +.row{ + display:flex; align-items:center; gap:12px; + background:var(--card); border:1px solid var(--line); + border-radius:16px; padding:12px 14px; + text-decoration:none; color:inherit; +} +.row:active{ transform: scale(0.995); } +.ico{ + width:38px; height:38px; border-radius:12px; + display:grid; place-items:center; + background:rgba(43,96,255,.16); + border:1px solid rgba(43,96,255,.22); + flex:0 0 auto; +} +.name{ font-size: 16px; line-height:1.2; } +.sub{ font-size: 12px; color: var(--muted); margin-top:3px; } +.spacer{ flex:1; } +.badge{ + font-size:12px; color:var(--muted); + border:1px solid var(--line); padding:6px 10px; border-radius:999px; + background:rgba(0,0,0,.08); +} + +.footer{ + position:fixed; left:0; right:0; bottom:0; + padding:12px 12px calc(12px + env(safe-area-inset-bottom)); + background:linear-gradient(to top, rgba(11,16,32,.95), rgba(11,16,32,.55), rgba(11,16,32,0)); + pointer-events:none; +} +@media (prefers-color-scheme: light){ + .footer{ background:linear-gradient(to top, rgba(246,247,251,.95), rgba(246,247,251,.55), rgba(246,247,251,0)); } +} +.footerInner{ + max-width: 860px; margin:0 auto; display:flex; gap:10px; pointer-events:auto; +} + +/* BIG BUTTONS */ +.btn{ + border:0; border-radius:18px; + padding:18px 18px; /* bigger */ + font-size:18px; /* bigger */ + font-weight:800; + min-height:64px; /* bigger */ + display:flex; align-items:center; justify-content:center; + cursor:pointer; + box-shadow: 0 10px 30px rgba(0,0,0,.22); + text-decoration:none; + user-select:none; + -webkit-tap-highlight-color: transparent; +} +.btnPrimary{ background:var(--btn); color:white; flex:1; } +.btnSecondary{ background:var(--btn2); color:var(--text); flex:1; border:1px solid var(--line); box-shadow:none; } +.btn:active{ transform: scale(0.995); } + +.status{ + margin: 8px 0 14px; color: var(--muted); font-size: 13px; +} +.error{ + background: rgba(255,80,80,.12); + border:1px solid rgba(255,80,80,.25); + color: #ffb7b7; + padding: 10px 12px; + border-radius: 14px; + font-size: 13px; + white-space: pre-wrap; +} + +/* INSTALL/UPDATE OVERLAY */ +#installOverlay{ + position:fixed; inset:0; + display:none; + z-index:2147483647; + background: rgba(0,0,0,.55); + backdrop-filter: blur(10px); + pointer-events:auto; + padding: 18px 14px; +} +#installOverlay *{ pointer-events:auto; } +.ovCard{ + max-width: 560px; + margin: 10vh auto 0; + background: var(--card); + border: 1px solid var(--line); + border-radius: 22px; + padding: 18px 16px; + box-shadow: 0 20px 70px rgba(0,0,0,.35); +} +.ovTitle{ font-size: 18px; font-weight: 850; margin: 6px 0 6px; } +.ovText{ color: var(--muted); font-size: 14px; line-height: 1.35; margin: 0 0 14px; } +.ovBtns{ display:flex; gap:12px; margin-top: 10px; } +.ovBtns .btn{ flex:1; } +.ovHint{ + margin-top: 12px; + font-size: 12px; + color: var(--muted); + border-top: 1px solid var(--line); + padding-top: 12px; + line-height: 1.35; +} diff --git a/zuss/sw.js b/zuss/sw.js index a1e0f28..e54319d 100644 --- a/zuss/sw.js +++ b/zuss/sw.js @@ -1,9 +1,10 @@ -const CACHE = "wfw-aushang-2025.12.24.12"; +const CACHE = "wfw-aushang-2025.12.24.19"; const ASSETS = [ "/zuss/", "/zuss/index.html", "/zuss/app.js", + "/zuss/style.css", "/zuss/manifest.webmanifest", "/zuss/version.json", "/zuss/icons/icon-192.png", @@ -40,7 +41,7 @@ self.addEventListener("fetch", (event) => { return fresh; } catch { const cached = await caches.match(req); - return cached || new Response('{"version":"2025.12.24.12"}', { headers: { "Content-Type": "application/json" } }); + return cached || new Response('{"version":"2025.12.24.19"}', { headers: { "Content-Type": "application/json" } }); } })()); return; diff --git a/zuss/version.json b/zuss/version.json index c0d038d..9d71201 100644 --- a/zuss/version.json +++ b/zuss/version.json @@ -1 +1 @@ -{ "version": "2025.12.24.12" } +{ "version": "2025.12.24.19" }