Add sixth screen: Backup & Restore image left, copy right
JSON export/import screenshot with headline and backup messaging on a
white-background section matching prior landing page screens.
3 files modified
1 files added
| | |
| | | </div> |
| | | </section> |
| | | |
| | | <section class="backup" aria-label="Backup & Restore"> |
| | | <div class="layout backup__split"> |
| | | <figure class="backup__art"> |
| | | <img |
| | | src="assets/backup-restore.jpg" |
| | | alt="TagLauncher JSON backup and restore for tags and layout" |
| | | width="1024" |
| | | height="558" |
| | | loading="lazy" |
| | | decoding="async"> |
| | | </figure> |
| | | |
| | | <div class="backup__copy"> |
| | | <h2 class="backup__headline">Backup & Restore</h2> |
| | | <p class="backup__lead"><strong>Tags and layout data</strong> support JSON <strong>backup</strong>—export / import so you never lose your setup.</p> |
| | | </div> |
| | | </div> |
| | | </section> |
| | | |
| | | <main class="page-main"> |
| | | <div class="layout"> |
| | | <section class="card"> |
| | |
| | | </div> |
| | | </section> |
| | | |
| | | <section class="backup" aria-label="Backup & Restore"> |
| | | <div class="layout backup__split"> |
| | | <figure class="backup__art"> |
| | | <img |
| | | src="assets/backup-restore.jpg" |
| | | alt="TagLauncher 数据备份:JSON 导出与导入分类布局" |
| | | width="1024" |
| | | height="558" |
| | | loading="lazy" |
| | | decoding="async"> |
| | | </figure> |
| | | |
| | | <div class="backup__copy"> |
| | | <h2 class="backup__headline">Backup & Restore</h2> |
| | | <p class="backup__lead"><strong>分类与布局数据支持</strong> JSON <strong>备份</strong> 导出 / 导入,再也不怕布局数据丢失。</p> |
| | | </div> |
| | | </div> |
| | | </section> |
| | | |
| | | <main class="page-main"> |
| | | <div class="layout"> |
| | | <section class="card"> |
| | |
| | | height: auto; |
| | | } |
| | | |
| | | /* Sixth screen — backup & restore */ |
| | | .backup { |
| | | padding: 56px 0 64px; |
| | | background: #ffffff; |
| | | } |
| | | |
| | | .backup__split { |
| | | display: grid; |
| | | grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); |
| | | gap: 28px 48px; |
| | | align-items: center; |
| | | } |
| | | |
| | | .backup__art { |
| | | margin: 0; |
| | | line-height: 0; |
| | | justify-self: start; |
| | | max-width: 540px; |
| | | width: 100%; |
| | | border-radius: 12px; |
| | | overflow: hidden; |
| | | background: #f5f5f7; |
| | | box-shadow: 0 10px 28px rgba(30, 45, 90, 0.1); |
| | | border: 1px solid rgba(0, 0, 0, 0.06); |
| | | } |
| | | |
| | | .backup__art img { |
| | | display: block; |
| | | width: 100%; |
| | | height: auto; |
| | | } |
| | | |
| | | .backup__headline { |
| | | margin: 0; |
| | | font-size: clamp(1.85rem, 3.8vw, 2.7rem); |
| | | font-weight: 800; |
| | | letter-spacing: -0.04em; |
| | | line-height: 1.12; |
| | | color: #000; |
| | | } |
| | | |
| | | .backup__lead { |
| | | margin: 22px 0 0; |
| | | font-size: clamp(0.98rem, 1.55vw, 1.1rem); |
| | | line-height: 1.75; |
| | | color: #1d1d1f; |
| | | max-width: 24em; |
| | | } |
| | | |
| | | .backup__lead strong { |
| | | font-weight: 700; |
| | | color: #000; |
| | | } |
| | | |
| | | /* Main content */ |
| | | .page-main { |
| | | padding: 56px 0 72px; |
| | |
| | | justify-self: center; |
| | | max-width: 100%; |
| | | } |
| | | |
| | | .backup__split { |
| | | grid-template-columns: 1fr; |
| | | gap: 36px; |
| | | } |
| | | |
| | | .backup__art { |
| | | justify-self: center; |
| | | max-width: 100%; |
| | | } |
| | | } |
| | | |
| | | @media (max-width: 560px) { |