Rassemble au catalogue les tomes qui racontent la même histoire

Les livres d'une même série se suivaient au hasard de l'alphabet, et rien
ne disait qu'ils allaient ensemble. Ils tiennent maintenant sous le nom de
leur série, à la place qu'occupait le premier d'entre eux — l'ordre général
ne bouge donc pas — et ce nom mène à la série, seul écran qui montre aussi
les tomes qui manquent.

Le regroupement ne cache ni ne duplique rien : une bascule le défait, et
un livre rattaché à deux séries ne paraît qu'une fois, toujours sous la
même. La règle est une fonction pure, avec ses tests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mathieu
2026-08-22 00:16:52 +02:00
co-authored by Claude Opus 5
parent 75f962ab46
commit 7d2f3dc5d9
5 changed files with 459 additions and 4 deletions
+49
View File
@@ -402,6 +402,55 @@ body {
padding: 0;
}
/* --- Livres d'une même série, rassemblés au catalogue (2026-08-22) ---
Le bloc se pose là où son premier tome serait tombé dans l'ordre du catalogue : il ne
déplace donc rien, il rassemble. Le trait à gauche est ce qui fait lire les cartes comme
« dedans » plutôt que comme la suite de la liste. */
.groupe-serie {
margin: 0.5rem 0;
border-left: 3px solid var(--mb-accent);
padding-left: 0.6rem;
}
/* Le nom mène à la série : c'est le seul endroit du catalogue qui montre aussi ce qui manque. */
.groupe-serie-titre {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 0.4rem;
padding: 0.35rem 0;
color: var(--mb-texte);
text-decoration: none;
font-weight: 600;
}
.groupe-serie-titre:hover .groupe-serie-nom,
.groupe-serie-titre:focus-visible .groupe-serie-nom {
text-decoration: underline;
}
.groupe-serie-nom {
min-width: 0;
overflow-wrap: anywhere;
}
.groupe-serie-compte {
color: var(--mb-texte-doux);
font-size: 0.85rem;
font-weight: 400;
}
/* Une case à cocher parmi des rangées de segments : elle doit se lire comme un réglage, pas
comme un filtre de plus. */
.bascule {
display: flex;
align-items: center;
gap: 0.5rem;
margin: 0.25rem 0;
font-size: 0.9rem;
}
.carte-livre,
.carte-candidat {
display: flex;