diff --git a/src/components/EventLanding.js b/src/components/EventLanding.js index 82babdc5a..821efc387 100644 --- a/src/components/EventLanding.js +++ b/src/components/EventLanding.js @@ -95,57 +95,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 06a29b689..dd6177d20 100644 --- a/src/components/EventLanding.module.css +++ b/src/components/EventLanding.module.css @@ -19,34 +19,67 @@ .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; + position: sticky; + top: calc(var(--ifm-navbar-height) + var(--hami-space-16)); +} + +.detailsCard { + padding: var(--hami-space-24); + background: var(--hami-color-surface); + border: 1px solid var(--hami-color-border); + border-radius: var(--hami-radius-md); + box-shadow: var(--hami-shadow-sm); +} + .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 +89,7 @@ display: flex; flex-wrap: wrap; gap: var(--hami-space-16); - margin-top: var(--hami-space-16); + margin-top: var(--hami-space-24); } .externalLink { @@ -266,3 +299,15 @@ .btnIcon { margin-right: var(--hami-space-8); } + +@media (max-width: 996px) { + .heroBody { + grid-template-columns: 1fr; + gap: var(--hami-space-24); + } + + .heroAside { + order: -1; + position: static; + } +}