|
| 1 | +--- |
| 2 | +import Keynoter from "./keynoters/keynoter.astro"; |
| 3 | +import { getCollection } from "astro:content"; |
| 4 | +
|
| 5 | +const allKeynoters = await getCollection("keynoters"); |
| 6 | +const keynoters = allKeynoters.sort((a, b) => a.data.order - b.data.order); |
| 7 | +
|
| 8 | +const placeholderCount = Math.max(0, 6 - keynoters.length); |
| 9 | +const placeholders = Array.from({ length: placeholderCount }, (_, i) => ({ |
| 10 | + name: "", |
| 11 | + url: "", |
| 12 | + order: keynoters.length + i + 1, |
| 13 | +})); |
| 14 | +--- |
| 15 | + |
1 | 16 | <section class="sec-wrap prog-section" id="programme"> |
2 | 17 | <div class="sec-inner prog-inner"> |
3 | 18 |
|
|
82 | 97 | </div> |
83 | 98 | </div> |
84 | 99 |
|
| 100 | + <div class="prog-keynoters"> |
| 101 | + <p class="prog-topics-label">Keynote Speakers</p> |
| 102 | + <ul class="prog-keynoters-grid"> |
| 103 | + {keynoters.map((k) => ( |
| 104 | + <Keynoter |
| 105 | + name={k.data.name} |
| 106 | + url={k.data.url || ""} |
| 107 | + tagline={k.data.tagline} |
| 108 | + bio={k.data.bio} |
| 109 | + image={k.data.image} |
| 110 | + order={k.data.order} |
| 111 | + /> |
| 112 | + ))} |
| 113 | + {placeholders.map((p) => ( |
| 114 | + <Keynoter |
| 115 | + name={p.name} |
| 116 | + url={p.url} |
| 117 | + order={p.order} |
| 118 | + placeholder={true} |
| 119 | + /> |
| 120 | + ))} |
| 121 | + </ul> |
| 122 | + </div> |
| 123 | + |
85 | 124 | </div> |
86 | 125 | </section> |
87 | 126 |
|
|
142 | 181 | color: var(--color-cream, #fff5f0); |
143 | 182 | margin-top: 1rem; |
144 | 183 | margin-bottom: 1.2rem; |
| 184 | + text-align: center; |
145 | 185 | } |
146 | 186 |
|
147 | 187 | .prog-grid { |
|
253 | 293 | border-color: var(--color-accent, #f0c040); |
254 | 294 | } |
255 | 295 |
|
| 296 | + .prog-keynoters { |
| 297 | + margin-top: 4rem; |
| 298 | + } |
| 299 | + |
| 300 | + .prog-keynoters-grid { |
| 301 | + display: grid; |
| 302 | + grid-template-columns: repeat(3, 1fr); |
| 303 | + gap: 0; |
| 304 | + margin-top: 1.5rem; |
| 305 | + border: 1px dashed var(--color-border-dark, rgba(255,255,255,0.10)); |
| 306 | + border-radius: 2px; |
| 307 | + overflow: hidden; |
| 308 | + } |
| 309 | + |
| 310 | + @media (max-width: 1024px) { |
| 311 | + .prog-keynoters-grid { |
| 312 | + grid-template-columns: repeat(2, 1fr); |
| 313 | + } |
| 314 | + } |
| 315 | + |
| 316 | + @media (max-width: 640px) { |
| 317 | + .prog-keynoters-grid { |
| 318 | + grid-template-columns: 1fr; |
| 319 | + } |
| 320 | + } |
| 321 | + |
256 | 322 | .prog-events { |
257 | 323 | margin-top: 4rem; |
258 | 324 | text-align: center; |
|
0 commit comments