|
156 | 156 | .misc-section .talks-list, .misc-section .repo-list { padding: 0; } |
157 | 157 | .misc-section .talk-item:first-child { border-top: none; padding-top: 0.7rem; } |
158 | 158 |
|
| 159 | + /* Misc 3-col grid */ |
| 160 | + .misc-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 2.5rem; align-items: start; margin-top: 0.5rem; } |
| 161 | + .misc-grid .misc-section { margin-top: 0; } |
| 162 | + .misc-grid .misc-section-title { font-size: 1.05rem; } |
| 163 | + .misc-grid .talk-item { grid-template-columns: 1fr; gap: 0.2rem; padding: 0.7rem 0; } |
| 164 | + .misc-grid .talk-item .talk-date { font-size: 0.72rem; order: -1; } |
| 165 | + .misc-grid .talk-title { font-size: 0.92rem; } |
| 166 | + |
| 167 | + /* Tutorial list */ |
| 168 | + .tutorial-list { display: grid; gap: 0; } |
| 169 | + .tutorial-item { padding: 0.85rem 0; border-bottom: 1px solid var(--border-light); } |
| 170 | + .tutorial-item:last-child { border-bottom: none; } |
| 171 | + .tutorial-name { font-family: var(--serif); font-size: 1rem; font-weight: 600; line-height: 1.35; margin-bottom: 0.25rem; color: var(--text); } |
| 172 | + .tutorial-desc { font-size: 0.86rem; color: var(--text-muted); line-height: 1.55; } |
| 173 | + .tutorial-desc a { color: var(--accent); text-decoration: none; border-bottom: 1px solid transparent; transition: border-color 0.2s; } |
| 174 | + .tutorial-desc a:hover { border-bottom-color: var(--accent); } |
| 175 | + .tutorial-status { display: inline-block; font-size: 0.62rem; font-weight: 600; padding: 0.1rem 0.45rem; background: var(--tag-discovery-bg); color: var(--tag-discovery); border-radius: 2px; letter-spacing: 0.02em; margin-left: 0.4rem; vertical-align: middle; } |
| 176 | + |
159 | 177 | /* Repo list */ |
160 | 178 | .repo-list { display: grid; gap: 0; } |
161 | 179 | .repo-item { padding: 0.85rem 0; border-bottom: 1px solid var(--border-light); } |
|
211 | 229 | .hero-text h1 { font-size: 2.1rem; } |
212 | 230 | .news-items { grid-template-columns: 1fr; } |
213 | 231 | .sections-overview { grid-template-columns: 1fr; gap: 0; } |
| 232 | + .misc-grid { grid-template-columns: 1fr; gap: 2rem; } |
214 | 233 | .section-panel { border-top-width: 1px; } |
215 | 234 | .section-drawer { grid-row: auto; } |
216 | 235 | #panel-0 { order: 1; } #drawer-0 { order: 2; } |
@@ -438,18 +457,45 @@ <h2>${sec.title}</h2> |
438 | 457 | const hiddenCount = Math.max(0, totalTalks - PREVIEW); |
439 | 458 | const talksHTML = D.talks.items.map((t, i) => talkRow(t, i, i >= PREVIEW)).join(''); |
440 | 459 |
|
| 460 | + // TODO: move tutorials to content.json |
| 461 | + const tutorials = [ |
| 462 | + { |
| 463 | + title: 'Monte Carlo simulation from first-principles exchange data', |
| 464 | + desc: 'In <em>Vampire</em> — T<sub>c</sub> estimate, ground-state spin structure, etc.' |
| 465 | + }, |
| 466 | + { |
| 467 | + title: 'Band unfolding in VASP', |
| 468 | + desc: 'Walkthrough using <a href="https://github.com/QijingZheng/VaspBandUnfolding" target="_blank">VaspBandUnfolding ↗</a>' |
| 469 | + }, |
| 470 | + { |
| 471 | + title: 'Electronic polarization via the Berry Phase method', |
| 472 | + desc: 'DFT calculation guide.' |
| 473 | + } |
| 474 | + ]; |
| 475 | + const tutorialsHTML = tutorials.map(t => ` |
| 476 | + <div class="tutorial-item"> |
| 477 | + <div class="tutorial-name">${t.title}<span class="tutorial-status">coming soon</span></div> |
| 478 | + <div class="tutorial-desc">${t.desc}</div> |
| 479 | + </div>`).join(''); |
| 480 | + |
441 | 481 | $('#tab-misc').innerHTML = ` |
442 | 482 | <div class="page-intro"><div class="page-intro-inner"><h1>Miscellaneous</h1></div></div> |
443 | 483 | <div class="misc-page"> |
444 | | - ${repoHTML ? ` |
445 | | - <div class="misc-section"> |
446 | | - <h2 class="misc-section-title">Code</h2> |
447 | | - <div class="repo-list">${repoHTML}</div> |
448 | | - </div>` : ''} |
449 | | - <div class="misc-section"> |
450 | | - <h2 class="misc-section-title">Talks & Presentations</h2> |
451 | | - <div class="talks-list" id="talks-list">${talksHTML}</div> |
452 | | - ${hiddenCount > 0 ? `<button class="expand-toggle" onclick="toggleTalks(this)" data-more="Show more" data-less="Show fewer"><span class="arrow">▾</span> <span class="label">Show more</span></button>` : ''} |
| 484 | + <div class="misc-grid"> |
| 485 | + ${repoHTML ? ` |
| 486 | + <div class="misc-section"> |
| 487 | + <h2 class="misc-section-title">Code</h2> |
| 488 | + <div class="repo-list">${repoHTML}</div> |
| 489 | + </div>` : ''} |
| 490 | + <div class="misc-section"> |
| 491 | + <h2 class="misc-section-title">Tutorials</h2> |
| 492 | + <div class="tutorial-list">${tutorialsHTML}</div> |
| 493 | + </div> |
| 494 | + <div class="misc-section"> |
| 495 | + <h2 class="misc-section-title">Talks & Presentations</h2> |
| 496 | + <div class="talks-list" id="talks-list">${talksHTML}</div> |
| 497 | + ${hiddenCount > 0 ? `<button class="expand-toggle" onclick="toggleTalks(this)" data-more="Show more" data-less="Show fewer"><span class="arrow">▾</span> <span class="label">Show more</span></button>` : ''} |
| 498 | + </div> |
453 | 499 | </div> |
454 | 500 | </div>`; |
455 | 501 |
|
|
0 commit comments