From 98bce1b0da675715b2e5482c0ad61ba21135f62f Mon Sep 17 00:00:00 2001
From: Server-Bibliothek <server-bibliothek@lokal>
Date: Di, 04 Aug 2026 07:00:04 +0200
Subject: [PATCH] Add a desktop client that knows what is installed locally
---
desktop/frontend/src/global.css | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 200 insertions(+), 0 deletions(-)
diff --git a/desktop/frontend/src/global.css b/desktop/frontend/src/global.css
new file mode 100644
index 0000000..5fafb71
--- /dev/null
+++ b/desktop/frontend/src/global.css
@@ -0,0 +1,200 @@
+html,
+body {
+ margin: 0;
+ min-height: 100%;
+ background: var(--md-sys-color-surface, #ffffff);
+ color: var(--md-sys-color-on-surface, #1a1a1a);
+ font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
+}
+
+.rahmen {
+ padding: 20px 24px 32px;
+ max-width: 1000px;
+ margin: 0 auto;
+}
+
+.kopf {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 16px;
+ margin-bottom: 16px;
+}
+
+.kopf h1 {
+ font-size: 1.3rem;
+ margin: 0;
+}
+
+.kopf-aktionen {
+ display: flex;
+ gap: 8px;
+ align-items: center;
+}
+
+.theme-select {
+ min-width: 140px;
+}
+
+.hinweis {
+ background: var(--md-sys-color-secondary-container, #e6e0ec);
+ color: var(--md-sys-color-on-secondary-container, #1d1b20);
+ padding: 12px 16px;
+ border-radius: 8px;
+ margin-bottom: 16px;
+}
+
+.warnung {
+ padding: 12px 16px;
+ margin-bottom: 16px;
+ border-radius: 8px;
+ border: 1px solid var(--md-sys-color-error, #b00020);
+ background: var(--md-sys-color-error-container, rgba(176, 0, 32, 0.12));
+ color: var(--md-sys-color-on-error-container, #410002);
+}
+
+/* Die Meldung, für die es den Client gibt — deutlicher als ein normaler Hinweis. */
+.update-hinweis {
+ padding: 12px 16px;
+ margin-bottom: 16px;
+ border-radius: 8px;
+ border-left: 4px solid var(--md-sys-color-primary, #ff8014);
+ background: var(--md-sys-color-surface-container-high, #eeeeee);
+ color: var(--md-sys-color-on-surface, #1a1a1a);
+}
+
+.suche {
+ display: block;
+ max-width: 400px;
+ margin-bottom: 12px;
+}
+
+dh-tab {
+ display: block;
+}
+
+[slot='tab-content'].hidden {
+ display: none;
+}
+
+.leer {
+ padding: 16px 4px;
+ opacity: 0.7;
+}
+
+.liste {
+ border: 1px solid var(--md-sys-color-outline-variant, #cac4d0);
+ border-radius: 8px;
+ overflow: hidden;
+}
+
+.liste > client-zeile {
+ display: block;
+ border-bottom: 1px solid var(--md-sys-color-outline-variant, #e7e0ec);
+}
+
+.liste > client-zeile:last-child {
+ border-bottom: none;
+}
+
+.zeile {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 16px;
+ padding: 8px 16px;
+}
+
+.zeile-info {
+ display: flex;
+ flex-direction: column;
+ min-width: 0;
+ flex: 1 1 auto;
+ overflow: hidden;
+}
+
+.zeile-info > * {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.zeile-name {
+ font-weight: 600;
+ display: flex;
+ align-items: center;
+ gap: 8px;
+}
+
+.zeile-meta {
+ font-size: 0.85em;
+ opacity: 0.7;
+}
+
+.zeile-hinweis {
+ font-size: 0.85em;
+ color: var(--md-sys-color-on-surface-variant, #49454f);
+ font-style: italic;
+}
+
+/* Feste Spalten, damit die Schaltflächen über alle Zeilen untereinander stehen. */
+.zeile-aktionen {
+ display: grid;
+ grid-template-columns: 48px 48px;
+ gap: 8px;
+ align-items: center;
+ justify-items: center;
+ flex-shrink: 0;
+}
+
+.marke {
+ flex-shrink: 0;
+ font-size: 0.72em;
+ font-weight: 500;
+ text-transform: uppercase;
+ letter-spacing: 0.04em;
+ padding: 2px 8px;
+ border-radius: 999px;
+}
+
+.intern-marke {
+ background: var(--md-sys-color-primary-container, #ffe4cc);
+ color: var(--md-sys-color-on-primary-container, #4a1e00);
+}
+
+.lizenz-marke {
+ background: var(--md-sys-color-tertiary-container, #ffd9a0);
+ color: var(--md-sys-color-on-tertiary-container, #2b1700);
+}
+
+.zustand-aktuell {
+ color: var(--md-sys-color-primary, #ff8014);
+}
+
+.zustand-veraltet,
+.zustand-fremd {
+ color: var(--md-sys-color-error, #b00020);
+ font-weight: 500;
+}
+
+.zustand-fehlt {
+ font-style: italic;
+}
+
+.feldhinweis {
+ display: block;
+ font-size: 0.8em;
+ opacity: 0.7;
+ margin-top: 4px;
+}
+
+dh-card {
+ display: block;
+}
+
+[slot='actions'] {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 8px;
+ align-items: center;
+}
--
Gitblit v1.9.3