Changeset 2eca083 in Klonkt for src/views/pages/post.ejs


Ignore:
Timestamp:
06/28/2026 11:05:58 AM (2 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
69a10e7
Parents:
73cffc3
Message:

fix(images): render grid + related covers as <img> (no jagged downscaling)

High-res line-art covers went jagged when shrunk into the small grid tiles / related cards
because they were CSS background-images (lower-quality GPU downscaling, worse on the
transform:scale(0.98) hover layer). Switched both to a real <img object-fit:cover>, which
browsers downsample with the high-quality image pipeline.

  • views/partials/post-tile.ejs — grid cover = <img class=grid-tile-img>
  • views/pages/post.ejs — related cover = <img class=post-related-img>
  • assets/css/style.css — .grid-tile-img (absolute, object-fit:cover)
  • views/shell.ejs — style.css cache buster v58
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/views/pages/post.ejs

    r73cffc3 r2eca083  
    177177               hx-push-url="/<%= rp.slug %>" hx-indicator="#pcms-loading"<% } %>>
    178178              <% if (rp.cover_image_url) { %>
    179                 <span class="post-related-cover<%= rp.nsfw ? ' nsfw-media' : '' %>"
    180                       style="background-image: url('<%= rp.cover_image_url %>')"
    181                       aria-hidden="true"><% if (rp.nsfw) { %><span class="nsfw-veil"><span class="nsfw-veil-label">🔞 <%= rp.content_warning || t('post.nsfw_warning') %></span><span class="nsfw-veil-btn"><%= t('post.nsfw_show') %></span></span><% } %></span>
     179                <span class="post-related-cover<%= rp.nsfw ? ' nsfw-media' : '' %>" aria-hidden="true"><img class="post-related-img" src="<%= rp.cover_image_url %>" alt="" loading="lazy" decoding="async"><% if (rp.nsfw) { %><span class="nsfw-veil"><span class="nsfw-veil-label">🔞 <%= rp.content_warning || t('post.nsfw_warning') %></span><span class="nsfw-veil-btn"><%= t('post.nsfw_show') %></span></span><% } %></span>
    182180              <% } else { %>
    183181                <span class="post-related-cover post-related-cover--empty<%= rp.nsfw ? ' nsfw-media' : '' %>" aria-hidden="true"><% if (rp.nsfw) { %><span class="nsfw-veil"><span class="nsfw-veil-label">🔞 <%= rp.content_warning || t('post.nsfw_warning') %></span><span class="nsfw-veil-btn"><%= t('post.nsfw_show') %></span></span><% } %></span>
     
    450448.post-related-cover {
    451449  display: block;
     450  position: relative;
     451  overflow: hidden;
    452452  aspect-ratio: 16 / 10;
    453453  background: var(--paper-2) center/cover no-repeat;
    454454}
     455.post-related-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
    455456.post-related-cover--empty {
    456457  background-image: linear-gradient(135deg,
Note: See TracChangeset for help on using the changeset viewer.