library.py hält die Regeln der Web-Bibliothek (53-library.js) als reine Funktionen: Status Angefangen/Ungelesen/Gelesen, Ordner (mehrere je Buch, Reihenfolge aus den verschlüsselten Bibliothekseinstellungen, "Ohne Ordner"), Suche ohne Akzente, sechs Sortierungen mit natürlicher Zahlenordnung, Weiterlesen-Karte aus den zuletzt gelesenen, Bücher/Zeitschriften. library_screen.py zeigt sie an (Tasten 1-4, o, /, s, m, c; Chips und Karte klickbar). Metadaten (Ordner, Seitenzahl, Zeitschrift) und die Ordnerreihenfolge kommen beim Abgleich; fehlt die Länge, rechnet die TUI sie für geladene Bücher aus dem Text (1800 Zeichen je Seite). crypto.encrypt für Stufe 3. 54 Tests, Smoke prüft Ordner/Länge/Prefs gegen den lokalen Server. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
106 lines
1.4 KiB
Text
106 lines
1.4 KiB
Text
#library-list {
|
|
height: 1fr;
|
|
}
|
|
|
|
#lib-chips {
|
|
height: auto;
|
|
padding: 0 1;
|
|
}
|
|
|
|
#lib-search {
|
|
margin: 0 1;
|
|
}
|
|
|
|
#lib-card {
|
|
height: auto;
|
|
margin: 1 1 0 1;
|
|
padding: 0 2;
|
|
border: round $primary;
|
|
}
|
|
|
|
#lib-note {
|
|
height: auto;
|
|
padding: 0 2;
|
|
color: $text-muted;
|
|
}
|
|
|
|
ChoiceScreen {
|
|
align: center middle;
|
|
}
|
|
|
|
#choice-title {
|
|
width: 50;
|
|
background: $panel;
|
|
padding: 0 2;
|
|
text-style: bold;
|
|
}
|
|
|
|
#choice-list {
|
|
width: 50;
|
|
height: auto;
|
|
max-height: 70%;
|
|
border: round $primary;
|
|
}
|
|
|
|
StatusBar {
|
|
dock: bottom;
|
|
height: 1;
|
|
padding: 0 1;
|
|
background: $panel;
|
|
color: $text-muted;
|
|
text-align: right;
|
|
}
|
|
|
|
#reader-scroll {
|
|
height: 1fr;
|
|
padding: 1 2;
|
|
align-horizontal: center;
|
|
}
|
|
|
|
#reader-loading {
|
|
height: 1fr;
|
|
}
|
|
|
|
FootnoteScreen {
|
|
align: center middle;
|
|
}
|
|
|
|
#footnote-body {
|
|
width: 80%;
|
|
max-width: 100;
|
|
height: auto;
|
|
max-height: 80%;
|
|
background: $panel;
|
|
border: round $primary;
|
|
padding: 1 2;
|
|
}
|
|
|
|
.footnote-note {
|
|
margin-bottom: 1;
|
|
}
|
|
|
|
#footnote-hint {
|
|
dock: bottom;
|
|
width: 80%;
|
|
max-width: 100;
|
|
background: $panel;
|
|
color: $text-muted;
|
|
padding: 0 2;
|
|
}
|
|
|
|
JumpOfferScreen {
|
|
align: center middle;
|
|
}
|
|
|
|
#offer-body {
|
|
width: 60;
|
|
height: auto;
|
|
background: $panel;
|
|
border: round $primary;
|
|
padding: 1 2;
|
|
}
|
|
|
|
#offer-hint {
|
|
margin-top: 1;
|
|
color: $text-muted;
|
|
}
|