11---
22import type { SiteLang } from " @/lib/blog" ;
3- import { renderNewsBody , type NewsEntry } from " @/lib/news" ;
3+ import { getNewsExcerpt , renderNewsBody , type NewsEntry } from " @/lib/news" ;
44import Button from " @/components/Button.astro" ;
55
66interface Props {
@@ -52,7 +52,10 @@ const text = copy[lang];
5252 <time class = " timeline-date" datetime = { item .date .toISOString ()} >
5353 { item .rawDate }
5454 </time >
55- <p class = " timeline-body" set :html = { renderNewsBody (item .body )} />
55+ <p
56+ class = " timeline-body"
57+ set :html = { renderNewsBody (getNewsExcerpt (item .body ))}
58+ />
5659 </div >
5760 <div class = " timeline-axis" aria-hidden = " true" >
5861 <span class = " timeline-node" />
@@ -73,6 +76,7 @@ const text = copy[lang];
7376 padding: clamp(1.6rem, 4vw, 2.8rem);
7477 border-radius: 2.25rem;
7578 border: 1px solid var(--border-color);
79+ overflow: visible;
7680 background:
7781 radial-gradient(
7882 circle at top left,
@@ -127,15 +131,17 @@ const text = copy[lang];
127131 padding: 0;
128132 margin: 1rem 0 0;
129133 display: grid;
130- grid-template-columns: repeat(6 , minmax(0, 1fr));
134+ grid-template-columns: repeat(10 , minmax(0, 1fr));
131135 gap: 0.9rem;
132136 position: relative;
133137 align-items: center;
138+ overflow: visible;
134139 }
135140
136141 .timeline-list::before {
137142 content: "";
138143 position: absolute;
144+ z-index: 0;
139145 left: 0;
140146 right: 0;
141147 top: 50%;
@@ -150,27 +156,41 @@ const text = copy[lang];
150156 }
151157
152158 .timeline-item {
159+ grid-column: span 2;
153160 min-width: 0;
154161 display: grid;
155- grid-template-rows: 1fr 28px 1fr;
162+ grid-template-rows: minmax(5.5rem, 1fr) 28px minmax(5.5rem, 1fr) ;
156163 position: relative;
164+ overflow: visible;
157165 }
158166
159167 .timeline-entry {
160168 display: grid;
161169 gap: 0.45rem;
162- align-content: end;
163- min-height: 104px;
164- padding: 0.35rem 0.2rem;
170+ min-height: 0;
171+ padding: 0.2rem 0.35rem 0.2rem 0;
172+ box-sizing: border-box;
173+ position: relative;
174+ z-index: 1;
175+ width: calc(150% + 0.9rem);
176+ max-width: none;
177+ pointer-events: auto;
165178 }
166179
167180 .timeline-item-reverse .timeline-entry {
168181 grid-row: 3;
182+ align-self: start;
169183 align-content: start;
170184 }
171185
172186 .timeline-item:not(.timeline-item-reverse) .timeline-entry {
173187 grid-row: 1;
188+ align-self: end;
189+ align-content: end;
190+ }
191+
192+ .timeline-item:last-child .timeline-entry {
193+ width: 100%;
174194 }
175195
176196 .timeline-date {
@@ -205,9 +225,11 @@ const text = copy[lang];
205225 .timeline-axis {
206226 grid-row: 2;
207227 position: relative;
228+ z-index: 2;
208229 display: flex;
209230 justify-content: center;
210231 align-items: center;
232+ pointer-events: none;
211233 }
212234
213235 .timeline-axis::before,
@@ -250,23 +272,7 @@ const text = copy[lang];
250272 display: none;
251273 }
252274
253- @media (max-width: 1180px) {
254- .timeline-list {
255- grid-template-columns: repeat(5, minmax(0, 1fr));
256- }
257- }
258-
259- @media (max-width: 980px) {
260- .timeline-list {
261- grid-template-columns: repeat(4, minmax(0, 1fr));
262- }
263-
264- .timeline-item:nth-child(n + 5) {
265- display: none;
266- }
267- }
268-
269- @media (max-width: 820px) {
275+ @media (max-width: 1200px) {
270276 .timeline-list {
271277 min-width: 0;
272278 display: grid;
@@ -296,6 +302,7 @@ const text = copy[lang];
296302
297303 .timeline-item,
298304 .timeline-item-reverse {
305+ grid-column: auto;
299306 min-width: 0;
300307 grid-template-columns: 24px minmax(0, 1fr);
301308 grid-template-rows: auto;
@@ -313,11 +320,18 @@ const text = copy[lang];
313320 .timeline-item-reverse .timeline-entry {
314321 grid-column: 2;
315322 grid-row: auto;
323+ width: 100%;
324+ max-width: none;
316325 min-height: auto;
326+ align-self: auto;
317327 align-content: start;
318328 padding: 0 0 1rem;
319329 }
320330
331+ .timeline-item:last-child .timeline-entry {
332+ width: 100%;
333+ }
334+
321335 .timeline-axis,
322336 .timeline-item-reverse .timeline-axis {
323337 grid-column: 1;
0 commit comments