diff --git a/src/components/EventLanding.js b/src/components/EventLanding.js index 1af83912..6a72a933 100644 --- a/src/components/EventLanding.js +++ b/src/components/EventLanding.js @@ -98,57 +98,69 @@ export default function EventLanding({ slug }) { {pick(locale, )}

{pick(locale, event.title)}

-
- - - {event.endDate - ? formatDateRange(event.date, event.endDate, locale) - : formatDate(event.date, locale)} - - - - {pick(locale, event.location)} - - {event.startTime && ( - - - {event.startTime} - {event.endTime ? ` - ${event.endTime}` : ""} - {event.timeZone ? ` ${event.timeZone}` : ""} - - )} - {event.room && ( - - - {event.room} - - )} -
-

{pick(locale, event.description)}

- {(event.externalUrl || event.talkUrl) && ( -
- {event.externalUrl && ( - - {isZh ? "查看活动官网" : "Event Website"} → - - )} - {event.talkUrl && ( - - {isZh ? "查看演讲详情" : "Talk Details"} → - +
+
+

{pick(locale, event.description)}

+ {(event.externalUrl || event.talkUrl) && ( +
+ {event.externalUrl && ( + + {isZh ? "查看活动官网" : "Event Website"} → + + )} + {event.talkUrl && ( + + {isZh ? "查看演讲详情" : "Talk Details"} → + + )} +
)}
- )} + +
diff --git a/src/components/EventLanding.module.css b/src/components/EventLanding.module.css index 44b193c0..a5d7d5b0 100644 --- a/src/components/EventLanding.module.css +++ b/src/components/EventLanding.module.css @@ -19,34 +19,63 @@ .title { font-family: var(--hami-font-display); font-size: var(--hami-text-h1); - margin-bottom: var(--hami-space-16); + margin-bottom: var(--hami-space-24); color: var(--hami-color-text); } +.heroBody { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(240px, 320px); + gap: var(--hami-space-32); + align-items: start; +} + +.heroMain { + min-width: 0; +} + +.heroAside { + min-width: 0; +} + +.detailsCard { + padding: var(--hami-space-24); + position: sticky; + top: calc(var(--ifm-navbar-height) + var(--hami-space-16)); +} + .meta { display: flex; - flex-wrap: wrap; - gap: var(--hami-space-24); - margin-bottom: var(--hami-space-24); + flex-direction: column; + gap: var(--hami-space-16); + margin: 0; } .metaItem { - display: inline-flex; - align-items: center; - gap: var(--hami-space-8); + display: flex; + align-items: flex-start; + gap: var(--hami-space-12); font-size: 1.05rem; + line-height: 1.45; color: var(--hami-color-muted); } +.metaItem > span { + min-width: 0; + flex: 1; +} + .metaIcon { color: var(--hami-color-primary); font-size: 0.95rem; width: 0.95em; height: 0.95em; + flex-shrink: 0; + margin-top: 0.2em; } .description { - max-width: 720px; + margin: 0; font-size: 1.1rem; line-height: 1.7; color: var(--hami-color-muted); @@ -56,7 +85,7 @@ display: flex; flex-wrap: wrap; gap: var(--hami-space-16); - margin-top: var(--hami-space-16); + margin-top: var(--hami-space-24); } .externalLink { @@ -213,3 +242,18 @@ .btnIcon { margin-right: var(--hami-space-8); } + +@media (max-width: 996px) { + .heroBody { + grid-template-columns: 1fr; + gap: var(--hami-space-24); + } + + .heroAside { + order: -1; + } + + .detailsCard { + position: static; + } +}