- Timestamp:
- 08/19/2026 06:43:41 PM (3 weeks ago)
- Branches:
- main
- Children:
- 5869b1f
- Parents:
- 3a3a882
- Location:
- src
- Files:
-
- 2 edited
-
assets/css/style.css (modified) (1 diff)
-
views/partials/read-article.ejs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/css/style.css
r3a3a882 r8c91ed3 2453 2453 /* Een lijn tussen twee berichten: zonder grens is een stroom een lange brij. */ 2454 2454 .feed-reader .read-post + .read-post { border-top: 1px solid color-mix(in srgb, currentColor 12%, transparent); } 2455 2456 /* De cover vult de leeskolom. Eigen regel, niet .post-cover hergebruikt: die 2457 heeft een marge van 2rem die hier tegen de scroll-snap aan duwt. 2458 De hoogtebegrenzing is er met opzet. Een paneel is min-height:100svh en snapt, 2459 dus een staande foto op volle breedte zou de titel en de eerste alinea onder 2460 de vouw duwen -- dan begint elk bericht met een plaat waar je langs moet 2461 scrollen om te zien wat het IS. */ 2462 .feed-reader .read-cover { 2463 margin: 0 0 1.2rem; 2464 border-radius: 10px; 2465 overflow: hidden; 2466 } 2467 .feed-reader .read-cover img, 2468 .feed-reader .read-cover video { 2469 display: block; 2470 width: 100%; 2471 height: auto; 2472 max-height: 45svh; 2473 object-fit: cover; 2474 } 2455 2475 2456 2476 .feed-reader .read-head { padding-bottom: .5rem; } -
src/views/partials/read-article.ejs
r3a3a882 r8c91ed3 25 25 Een <a> en niet alleen een tik-afhandelaar: dat werkt ook met een 26 26 toetsenbord, met een schermlezer, en met cmd-klik. %> 27 <%# De cover hoort hier net zo goed als op de berichtpagina: het is het beeld 28 van het stuk, en zonder hem begint elk bericht in de stroom met kale tekst. 29 Boven de titel, in dezelfde volgorde als post.ejs. 30 31 Twee dingen komen hier van post-card en NIET van post.ejs: 32 33 - De SLUIER. Op de berichtpagina hangt de waarschuwing als banner boven de 34 hele pagina, want daar staat een bericht. In een stroom kan dat niet: de 35 buren rollen gewoon voorbij, dus het beeld moet zijn eigen sluier dragen 36 of het is onderweg al te zien. De afhandelaar zit gedelegeerd op 37 document (shell.ejs), dus hij werkt ook op wat de client later aanschuift. 38 - thumb(). De bron kan het volle bestand zijn en hier staan er meerdere 39 onder elkaar in een stroom die dooraanvult. 40 41 cover_image_url en cover_video_url komen mee: beide voedingen van 42 readerItems() halen `SELECT p.*` op (routes/posts.js, de pinned- en de 43 gewone feed-query). Nagekeken, want een versmalde lijst zou hier niets 44 opleveren zonder ergens te klagen. %> 45 <% if (post.cover_image_url || post.cover_video_url) { %> 46 <figure class="read-cover<%= post.nsfw ? ' nsfw-media' : '' %>"> 47 <% if (post.cover_image_url) { %> 48 <img src="<%= thumb(post.cover_image_url, 1280) %>" 49 srcset="<%= thumb(post.cover_image_url, 640) %> 640w, <%= thumb(post.cover_image_url, 1280) %> 1280w" 50 sizes="(min-width: 768px) 46rem, 100vw" 51 alt="<%= post.cover_alt || '' %>" loading="lazy" decoding="async"<% if (post.cover_video_url) { %> data-ios-mp4="<%= post.cover_video_url %>"<% } %>> 52 <% } else { %> 53 <video src="<%= post.cover_video_url %>" poster="<%= thumb(post.cover_video_url, 1280) %>" 54 controls loop muted playsinline preload="metadata"></video> 55 <% } %> 56 <% if (post.nsfw) { %><span class="nsfw-veil"><%- include('nsfw-veil', { cw: post.content_warning }) %></span><% } %> 57 </figure> 58 <% } %> 59 27 60 <header class="read-head"> 28 61 <h1 class="read-title"><a href="<%= _b %>/<%= post.slug %>"><%= post.title || '' %></a></h1>
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)