ui: Übersichten wie Artikelseiten geboxt (Lesespalte), Oberabstand wie .single; Archiv grün / Library rot (Fuji)

- .collection wrappt Titel + Inhalt in die Lesespalte (≈48.5rem, zentriert);
  margin-top spacing-sm = identischer Oberabstand wie Artikel.
- Titel-Unterstrich + Kategorie-Linien in der Sektionsfarbe: Archiv kusa (grün),
  Library ichigo (rot).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-05 01:10:13 +02:00
parent 04bb79bcfa
commit f8c82ad4a2
3 changed files with 43 additions and 36 deletions
+7 -8
View File
@@ -1116,14 +1116,13 @@ a.byline-author:hover, a.journal-author:hover { color: var(--accent); }
max-width: 60ch; max-width: 60ch;
} }
/* Übersichts-Titel (Archiv/Library): wie ein Artikel-Heading, aber mit Linie /* Übersicht (Archiv/Library): wie eine Artikelseite — Inhalt in der Lesespalte
darunter — im selben Stil wie die Kategorie-Überschriften. */ (≈55ch, zentriert), gleicher Oberabstand wie .single, Titel mit Linie darunter
in der Sektionsfarbe (Archiv grün, Library rot). */
.collection { margin-top: var(--spacing-sm); }
.collection-title,
.collection-inner { max-width: 48.5rem; margin-inline: auto; }
.collection-title { .collection-title {
width: 100%;
/* rem-basiert (nicht ch): die geerbte ch-max-width skaliert mit der grossen
Titelschrift und würde die Linie über die volle Viewport-Breite ziehen.
52rem ≈ Inhaltsspalte → Titel + Linie fluchten mit Text/Kategorien. */
max-width: 52rem !important;
text-align: left; text-align: left;
font-family: var(--font-family-serif); font-family: var(--font-family-serif);
font-size: clamp(1.7rem, 3vw, 2.2rem); font-size: clamp(1.7rem, 3vw, 2.2rem);
@@ -1131,7 +1130,7 @@ a.byline-author:hover, a.journal-author:hover { color: var(--accent); }
letter-spacing: -0.015em; letter-spacing: -0.015em;
line-height: 1.12; line-height: 1.12;
color: var(--color-text-primary); color: var(--color-text-primary);
border-bottom: 3px solid var(--accent); border-bottom: 3px solid var(--section-color, var(--accent));
padding-bottom: var(--spacing-xs); padding-bottom: var(--spacing-xs);
margin: 0 0 var(--spacing-md); margin: 0 0 var(--spacing-md);
} }
+4
View File
@@ -1,7 +1,9 @@
{{ define "main" }} {{ define "main" }}
{{ if eq .Path "/archiv" }} {{ if eq .Path "/archiv" }}
{{/* Archiv root: Titel + Intro + Atlas (je Kategorie die letzten 10) */}} {{/* Archiv root: Titel + Intro + Atlas (je Kategorie die letzten 10) */}}
<div class="collection" style="--section-color: var(--palette-kusa)">
<h1 class="collection-title">{{ .Title }}</h1> <h1 class="collection-title">{{ .Title }}</h1>
<div class="collection-inner">
{{ .Content }} {{ .Content }}
<section class="atlas"> <section class="atlas">
{{ range .Sections.ByWeight }} {{ range .Sections.ByWeight }}
@@ -35,6 +37,8 @@
</article> </article>
{{ end }} {{ end }}
</section> </section>
</div>
</div>
{{ else if eq .Path "/archiv/software" }} {{ else if eq .Path "/archiv/software" }}
{{/* Software: kuratierte Landing — Werkzeuge (mit externem Link) getrennt {{/* Software: kuratierte Landing — Werkzeuge (mit externem Link) getrennt
von Texten & Anleitungen. */}} von Texten & Anleitungen. */}}
+32 -28
View File
@@ -1,32 +1,36 @@
{{ define "main" }} {{ define "main" }}
<h1 class="collection-title">{{ .Title }}</h1> <div class="collection" style="--section-color: var(--palette-ichigo)">
{{ .Content }} <h1 class="collection-title">{{ .Title }}</h1>
<div class="collection-inner">
{{ .Content }}
{{ $pages := where site.RegularPages "Section" "library" }} {{ $pages := where site.RegularPages "Section" "library" }}
{{ $groups := dict }} {{ $groups := dict }}
{{ range $pages }} {{ range $pages }}
{{ $g := .Params.group | default "Allgemein" }} {{ $g := .Params.group | default "Allgemein" }}
{{ $existing := index $groups $g | default slice }} {{ $existing := index $groups $g | default slice }}
{{ $groups = merge $groups (dict $g ($existing | append .)) }} {{ $groups = merge $groups (dict $g ($existing | append .)) }}
{{ end }}
{{ if $pages }}
<section class="atlas">
{{ range $g, $ps := $groups }}
<article class="atlas-section">
<h2>{{ $g }}</h2>
<ul class="atlas-list">
{{ range sort $ps "Title" }}
<li>
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
{{ with .Params.summary }}<span class="list-meta text-muted"> — {{ . }}</span>{{ end }}
</li>
{{ end }}
</ul>
</article>
{{ end }} {{ end }}
</section>
{{ else }} {{ if $pages }}
<p class="text-muted"><em>Noch keine Einträge — der erste entsteht im Redaktions-Editor.</em></p> <section class="atlas">
{{ end }} {{ range $g, $ps := $groups }}
<article class="atlas-section">
<h2>{{ $g }}</h2>
<ul class="atlas-list">
{{ range sort $ps "Title" }}
<li>
<a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
{{ with .Params.summary }}<span class="list-meta text-muted"> — {{ . }}</span>{{ end }}
</li>
{{ end }}
</ul>
</article>
{{ end }}
</section>
{{ else }}
<p class="text-muted"><em>Noch keine Einträge — der erste entsteht im Redaktions-Editor.</em></p>
{{ end }}
</div>
</div>
{{ end }} {{ end }}