Add News hub and wire homepage Latest news to a dated content index

New /<lang>/news/ hub aggregates real projects (title+image read from their pages), placeholder news announcements, and blog items, newest-first with type badges and a type filter. Homepage Latest news now shows the newest dated items as badged cards with a working See all to the hub; the News menu link points there too. Dates in news.js are placeholders to replace with real publish dates.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
popovskikandClaude Opus 4.8 committed 2026-07-31 23:50:05 +02:00
1 parent ec794a32e6
commit ea9acc4968
193 files changed
+1852 -428

No files matched your search

+39
View File
@@ -49,6 +49,45 @@
line-height: 24px;
}
/* Latest-news cards: clickable media, type badge, placeholder tiles */
.news-card-media {
position: relative;
display: block;
margin-bottom: 24px;
border-radius: 8px;
overflow: hidden;
}
.news-card-media img { height: 220px; margin-bottom: 0; display: block; }
.news-card .news-ph {
height: 220px;
display: flex;
align-items: center;
justify-content: center;
font-size: 40px;
color: rgba(255, 255, 255, 0.85);
background: rgba(255, 255, 255, 0.14);
}
.news-badge {
position: absolute;
top: 12px;
left: 12px;
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 12px;
font-weight: 600;
color: #FFFFFF;
padding: 4px 10px;
border-radius: 999px;
background: #101828;
}
.news-badge i { font-size: 11px; }
.news-badge--project { background: #1F5C72; }
.news-badge--blog { background: #E8833A; }
.news-badge--news { background: #7C5CBF; }
.news-card h3 a { color: #FFFFFF; text-decoration: none; }
.news-card h3 a:hover { text-decoration: underline; }
/* 2. Kartice s pričevanji (.testimonial-card) */
.testimonial-card {
+2 -1
View File
@@ -34,4 +34,5 @@
@import 'pages/_timeline.css';
@import 'pages/_guide.css';
@import 'pages/_faq.css';
@import 'pages/_blog.css';
@import 'pages/_blog.css';
@import 'pages/_news.css';
+100
View File
@@ -0,0 +1,100 @@
/* ==========================================================================
News hub (/<lang>/news/) — filterable feed of projects, blog and news
========================================================================== */
.news-hub { font-family: 'Inter', sans-serif; }
.newshub-hero {
background: linear-gradient(180deg, #F5FAFB 0%, #FFFFFF 100%);
padding: 112px 24px 40px; /* clears the fixed 80px header */
text-align: center;
}
.newshub-eyebrow {
display: inline-block;
color: #2D738C;
font-weight: 700;
font-size: 14px;
letter-spacing: 0.06em;
text-transform: uppercase;
margin-bottom: 12px;
}
.newshub-hero h1 { max-width: 760px; margin: 0 auto 16px; font-size: 42px; line-height: 1.12; color: #101828; }
.newshub-lead { max-width: 640px; margin: 0 auto; font-size: 18px; line-height: 28px; color: #475467; }
.newshub-list { max-width: 1120px; margin: 40px auto 72px; padding: 0 24px; }
.newshub-filters {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 28px;
padding-bottom: 24px;
border-bottom: 1px solid #EAECF0;
}
.newshub-chip {
font-family: inherit;
font-size: 14px;
font-weight: 600;
color: #475467;
background: #F2F4F7;
border: 1px solid transparent;
border-radius: 999px;
padding: 9px 16px;
cursor: pointer;
transition: background 0.15s ease, color 0.15s ease;
}
.newshub-chip:hover { background: #E4E7EC; }
.newshub-chip.is-active { background: #101828; color: #FFFFFF; }
.newshub-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 24px;
}
.newshub-card {
display: flex;
flex-direction: column;
background: #FFFFFF;
border: 1px solid #EAECF0;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 4px 12px rgba(16, 24, 40, 0.04);
transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.newshub-card[hidden] { display: none; }
.newshub-card:hover { transform: translateY(-4px); box-shadow: 0 14px 28px rgba(16, 24, 40, 0.10); }
.newshub-media { position: relative; display: block; }
.newshub-media img { width: 100%; height: 190px; object-fit: cover; display: block; }
.newshub-media .news-ph {
height: 190px;
display: flex;
align-items: center;
justify-content: center;
font-size: 38px;
color: #B7BDC7;
background: linear-gradient(135deg, #F2F4F7 0%, #E4E7EC 100%);
}
.newshub-media .news-badge {
position: absolute;
top: 12px;
left: 12px;
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 12px;
font-weight: 600;
color: #FFFFFF;
padding: 4px 10px;
border-radius: 999px;
background: #101828;
}
.newshub-media .news-badge i { font-size: 11px; }
.newshub-body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 8px; }
.newshub-date { font-size: 13px; font-weight: 600; color: #98A2B3; margin: 0; }
.newshub-card h3 { margin: 0; font-size: 19px; line-height: 1.3; }
.newshub-card h3 a { color: #101828; text-decoration: none; }
.newshub-card h3 a:hover { color: #2D738C; }
.newshub-excerpt { margin: 0; font-size: 14px; line-height: 22px; color: #667085; }
@media (max-width: 768px) {
.newshub-hero { padding: 92px 20px 32px; }
.newshub-hero h1 { font-size: 30px; }
}