Blurfill banner styles; keep news heroes full-width under 8:5 card crop

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-23 23:26:47 +02:00
co-authored by Claude Fable 5
parent 8f4b6530a8
commit 3a814fdf13
+31 -64
View File
@@ -228,6 +228,9 @@ a.sow-card:hover {
.sow-featured { .sow-featured {
> .sow-banner { > .sow-banner {
// Fixed height + explicit width so the 8/5 card aspect-ratio
// doesn't shrink the hero to height * 1.6.
width: 100%;
height: 320px; height: 320px;
} }
} }
@@ -605,15 +608,37 @@ a.sow-card:hover {
@include wg-velvet-cover; @include wg-velvet-cover;
} }
// Article page: the banner renders as a small card-sized thumb beside the // Article page: full-width banner strip that stays quality-proof — the
// header, so mediocre source images never get stretched full-width. // backdrop is the image blurred, with the sharp 8/5 card crop seated in
.sow-article-thumb { // the middle, so weak source images never render stretched.
width: 100%; .sow-article-banner {
position: relative;
height: clamp(220px, 28vw, 300px);
overflow: hidden;
border: 1px solid var(--wg-border);
border-radius: 8px;
}
.sow-article-banner-blur {
position: absolute;
inset: -32px; // hide the blur's soft edges outside the strip
background-size: cover;
background-position: center;
filter: blur(24px) brightness(0.55);
}
.sow-article-banner-img {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: min(320px, 70%);
aspect-ratio: 8 / 5; // same crop as the blog-card banners aspect-ratio: 8 / 5; // same crop as the blog-card banners
background-size: cover; background-size: cover;
background-position: center; background-position: center;
border: 1px solid var(--wg-border); border: 1px solid var(--wg-gold-soft);
border-radius: 8px; border-radius: 6px;
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.5);
} }
.sow-article { .sow-article {
@@ -622,66 +647,8 @@ a.sow-card:hover {
header h1 { header h1 {
margin: 0 0 6px; margin: 0 0 6px;
} }
// Thumb left with the byline tucked under it; on the right the chip row
// pins to the image's top edge while the title centers on the image.
header.has-thumb {
display: grid;
grid-template-columns: minmax(240px, 320px) 1fr;
column-gap: var(--wg-space-md);
margin-bottom: var(--wg-space-sm);
.sow-article-thumb {
grid-column: 1;
grid-row: 1;
} }
.sow-article-headline {
grid-column: 2;
grid-row: 1;
position: relative;
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
// Reserve the chip row so the centered title never crowds it.
padding-top: 40px;
.sow-meta {
position: absolute;
top: 0;
margin: 0;
}
h1 {
margin: 0;
}
.sow-byline {
margin-top: var(--wg-space-sm);
}
}
}
}
@media (max-width: 700px) {
.sow-article header.has-thumb {
display: block;
.sow-article-thumb {
margin-bottom: var(--wg-space-sm);
}
.sow-article-headline {
display: block;
.sow-meta {
position: static;
margin-bottom: 12px;
}
}
}
}
.sow-article-date { .sow-article-date {
font-family: var(--wg-font-code); font-family: var(--wg-font-code);