Widget-Rahmen: Widgets sind Beschreibungen, keine Kaesten in der Seite

widgetAnmelden({ id, titel, wo, sichtbar, laden, leer, inhalt, takt }) —
der Rahmen macht daraus ein Fenster in der Spalte (Terminal) oder ein
Schild (Desktop), kennt lädt/fertig/nichts da/Fehler und haelt den
Nachladetakt. Benutzer, Wetter und Systemzustand sind umgestellt; aus
index.html sind vier feste Kaesten verschwunden und aus dem Raster die
Einzelplaetze.

Zwei Dinge, die erst dabei sichtbar wurden:

- Der Server meldete 'kein Ort eingestellt' und 'Dienst nicht
  erreichbar' beide als 204. Ein Ausfall sah damit aus wie ein
  abgeschaltetes Widget. Ausfall ist jetzt 502, mit Test.
- Die Reihenfolge haengt nicht mehr an der Modulauswertung: Seit
  glyphs.js seine Raster mit await auf oberster Ebene laedt, laufen
  Module ohne Symbole vorher durch — der Systemzustand stand deshalb
  ueber dem Benutzer. widgetsOrdnen() macht die Reihenfolge zur Angabe,
  und genau dort haengt spaeter die im Server gespeicherte ein.
This commit is contained in:
marc committed 2026-08-30 03:12:00 +02:00
1 parent 981a2331df
commit b7cc06b7c1
12 files changed
+461 -180

No files matched your search

+25 -16
View File
@@ -284,14 +284,11 @@ body {
grid-template-columns: 320px minmax(0, 1fr);
align-items: start;
}
/* Ohne feste Plätze verteilt das Raster die drei Bereiche der Reihe nach —
das Wetter landete dann neben „system" und schob die Kacheln in die
schmale linke Spalte. Links stehen die Anzeigen untereinander, rechts
gehören die Apps, über die volle Höhe. */
.win-user { grid-column: 1; grid-row: 1; }
.win-status { grid-column: 1; grid-row: 2; }
.win-weather { grid-column: 1; grid-row: 3; }
.tiles { grid-column: 2; grid-row: 1 / span 3; }
/* Zwei Bereiche, keine Einzelplätze mehr: Links die Widgetspalte, rechts
die Apps. Vorher hatte jedes Widget seinen festen Platz im Raster — beim
dritten hätte man das Raster wieder anfassen müssen. */
.widgetspalte { grid-column: 1; }
.tiles { grid-column: 2; }
}
/* Fenster */
@@ -1028,9 +1025,7 @@ body {
white-space: nowrap;
}
/* Terminal-Modus: ein Fenster wie die anderen. Schmal gehalten — über die
volle Breite gezogen sähe eine Temperatur nach Bekanntmachung aus. */
.win-weather { max-width: 320px; align-self: start; }
/* Schreibtisch-Modus: schwebendes Schild, rechts unter der Menüleiste. Nicht
@@ -1101,16 +1096,30 @@ body {
.uw-name { color: var(--p); font-size: 15px; }
.uw-gruss { color: var(--p-mid); }
.uw-host { color: var(--p-dim); font-size: 12px; }
.win-user { max-width: 320px; align-self: start; }
/* Die Spalte selbst hält die Breite — vorher trug sie jedes Widget einzeln,
und ein neues ohne diese Zeile stand quer. */
.widgetspalte {
display: flex;
flex-direction: column;
gap: clamp(14px, 3vw, 28px);
align-self: start;
min-width: 0;
}
@media (min-width: 860px) {
.widgetspalte { max-width: 320px; }
}
/* Die vier Zustände, die der Rahmen kennt. „lädt" und „nicht erreichbar"
stehen im selben Kasten wie der Inhalt — ein Widget, das bei einem Fehler
verschwindet, sieht aus wie eines, das man nie eingeschaltet hat. */
.w-zustand { color: var(--p-dim); margin: 0; font-size: 12.5px; }
.w-fehler { color: var(--p-mid); }
/* Einspaltig (Handy, schmales Fenster) sollen die Widgets so breit sein wie das
Systemfenster. Drei verschieden breite Kästen untereinander sehen aus wie ein
Fehler, nicht wie Absicht. Muss hinter den Regeln stehen, die es aufhebt —
eine Medienabfrage erhöht die Spezifität nicht. */
@media (max-width: 859px) {
.win-weather,
.win-user { max-width: none; }
}
/* Die Schilder auf dem Schreibtisch stapeln sich oben rechts. */
.deskwidgets {