v0.6.19: library page spacing fixes
library_downloads.html: treat Some("") cover_image_url as no-cover.
A blank string previously rendered a 200px-tall broken-image column
with the item title bleeding through as alt text, leaving a large
empty gap above the Downloads section.
.library-page .library-header: align-items center so when a real
cover is present the title+creator sit at the cover's vertical
midpoint instead of pinned to the top.
.discussion-section: drop unscoped max-width: 720px and
margin: 2rem auto. On wide containers (library-page, item-page)
the auto-centering looked indented next to neighbouring full-width
cards. Article and player pages already constrain via their own
parent layout, so dropping the inner max-width doesn't widen
reading contexts.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4 files changed,
+17 insertions,
-9 deletions
| 3551 |
3551 |
|
|
| 3552 |
3552 |
|
[[package]]
|
| 3553 |
3553 |
|
name = "makenotwork"
|
| 3554 |
|
- |
version = "0.6.18"
|
|
3554 |
+ |
version = "0.6.19"
|
| 3555 |
3555 |
|
dependencies = [
|
| 3556 |
3556 |
|
"anyhow",
|
| 3557 |
3557 |
|
"argon2",
|
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "makenotwork"
|
| 3 |
|
- |
version = "0.6.18"
|
|
3 |
+ |
version = "0.6.19"
|
| 4 |
4 |
|
edition = "2024"
|
| 5 |
5 |
|
license-file = "LICENSE"
|
| 6 |
6 |
|
|
| 1133 |
1133 |
|
DISCUSSION SECTION
|
| 1134 |
1134 |
|
=========================================== */
|
| 1135 |
1135 |
|
|
|
1136 |
+ |
/* Sits inside the parent container; previously had max-width: 720px and
|
|
1137 |
+ |
margin: 2rem auto, which looked indented on wide pages (.library-page,
|
|
1138 |
+ |
.item-page) where every neighbouring card filled the container. Let the
|
|
1139 |
+ |
parent dictate width — article-page already constrains via
|
|
1140 |
+ |
.article-container; player pages have their own narrow layout. */
|
| 1136 |
1141 |
|
.discussion-section {
|
| 1137 |
|
- |
max-width: 720px;
|
| 1138 |
|
- |
margin: 2rem auto;
|
|
1142 |
+ |
margin: 2rem 0;
|
| 1139 |
1143 |
|
padding: 1.5rem;
|
| 1140 |
1144 |
|
border: 1px solid var(--border);
|
| 1141 |
1145 |
|
font-family: var(--font-mono);
|
| 1782 |
1786 |
|
grid-template-columns: 200px 1fr;
|
| 1783 |
1787 |
|
gap: var(--space-5);
|
| 1784 |
1788 |
|
margin-bottom: var(--space-6);
|
| 1785 |
|
- |
align-items: start;
|
|
1789 |
+ |
align-items: center;
|
| 1786 |
1790 |
|
}
|
| 1787 |
1791 |
|
|
| 1788 |
1792 |
|
.library-page .library-header.no-cover { grid-template-columns: 1fr; }
|
| 16 |
16 |
|
<a href="/library">Your library</a>
|
| 17 |
17 |
|
</p>
|
| 18 |
18 |
|
|
| 19 |
|
- |
<div class="library-header{% if item.cover_image_url.is_none() %} no-cover{% endif %}">
|
| 20 |
|
- |
{% if let Some(img) = item.cover_image_url %}
|
|
19 |
+ |
{# A creator may save an empty cover_image_url (Some("")). Treat that
|
|
20 |
+ |
like None so we don't reserve a 200px column with broken-image alt
|
|
21 |
+ |
text. The cover wrapper is omitted entirely; CSS .no-cover collapses
|
|
22 |
+ |
the grid to a single column. #}
|
|
23 |
+ |
<div class="library-header{% if item.cover_image_url.as_deref().unwrap_or("").is_empty() %} no-cover{% endif %}">
|
|
24 |
+ |
{% if let Some(img) = item.cover_image_url %}{% if !img.is_empty() %}
|
| 21 |
25 |
|
<div class="library-cover">
|
| 22 |
26 |
|
<img src="{{ img }}" alt="{{ item.title }}">
|
| 23 |
27 |
|
</div>
|
| 24 |
|
- |
{% endif %}
|
| 25 |
|
- |
<div>
|
|
28 |
+ |
{% endif %}{% endif %}
|
|
29 |
+ |
<div class="library-header-body">
|
| 26 |
30 |
|
<h1 class="library-title">{{ item.title }}</h1>
|
| 27 |
31 |
|
<p class="library-creator">
|
| 28 |
32 |
|
by <a href="/u/{{ creator_username }}">{{ creator_username }}</a>
|