|
1 | 1 | <script setup lang="ts"> |
2 | | -import { ref, onMounted } from 'vue' |
| 2 | +import { onMounted, ref } from 'vue' |
3 | 3 |
|
4 | 4 | // --- Tab state --- |
5 | 5 | const activeTab = ref('game') |
6 | 6 | const tabs = [ |
7 | | - { key: 'game', label: '游戏' }, |
| 7 | + { key: 'game', label: '首页' }, |
8 | 8 | { key: 'letter', label: '信' }, |
9 | 9 | { key: 'gallery', label: '文创' }, |
10 | | - { key: 'survey', label: '问卷' }, |
11 | 10 | ] |
12 | 11 |
|
13 | 12 | // --- Game --- |
@@ -152,22 +151,23 @@ onMounted(() => { |
152 | 151 |
|
153 | 152 | <!-- Tab content --> |
154 | 153 | <main class="tab-content"> |
155 | | - <!-- ====== GAME ====== --> |
156 | | - <section v-if="activeTab === 'game'" class="panel panel-game"> |
157 | | - <div class="game-hero" @click="playGame"> |
158 | | - <img |
159 | | - src="/assets/game-2026-desktop.png" |
160 | | - alt="合成大猫猫" |
161 | | - class="game-hero-img" |
162 | | - /> |
163 | | - <div class="game-hero-overlay"> |
164 | | - <span class="game-hero-badge">合成大猫猫</span> |
165 | | - <p class="game-hero-cta">点击开始游玩</p> |
| 154 | + <!-- ====== GAME + SURVEY ====== --> |
| 155 | + <section v-if="activeTab === 'game'" class="panel panel-home"> |
| 156 | + <p class="home-greeting">感谢每一位茶友的陪伴,猫猫五岁啦!</p> |
| 157 | + <div class="home-cards"> |
| 158 | + <div class="home-card" @click="playGame"> |
| 159 | + <span class="home-card-icon">🎮</span> |
| 160 | + <h3 class="home-card-title">合成大猫猫</h3> |
| 161 | + <p class="home-card-desc">五周年特别小游戏<br/>合成你的专属猫猫皇帝!</p> |
| 162 | + <span class="home-card-link">开始游戏 →</span> |
| 163 | + </div> |
| 164 | + <div class="home-card" @click="openSurvey"> |
| 165 | + <span class="home-card-icon">📋</span> |
| 166 | + <h3 class="home-card-title">五周年问卷</h3> |
| 167 | + <p class="home-card-desc">你的反馈是旦挞进步的动力<br/>问卷很短,只需几分钟~</p> |
| 168 | + <span class="home-card-link">填写问卷 →</span> |
166 | 169 | </div> |
167 | 170 | </div> |
168 | | - <p class="game-caption"> |
169 | | - 五周年特别小游戏——合成你的专属猫猫皇帝! |
170 | | - </p> |
171 | 171 | </section> |
172 | 172 |
|
173 | 173 | <!-- ====== LETTER ====== --> |
@@ -221,21 +221,8 @@ onMounted(() => { |
221 | 221 | <span class="gallery-cell-name">{{ item.name }}</span> |
222 | 222 | </div> |
223 | 223 | </div> |
224 | | - <p class="gallery-credit">美工制作:蔡欣岚 · 伍芷萱 · 张文惠 · 幺一一</p> |
225 | 224 | </section> |
226 | 225 |
|
227 | | - <!-- ====== SURVEY ====== --> |
228 | | - <section v-if="activeTab === 'survey'" class="panel panel-survey"> |
229 | | - <div class="survey-card"> |
230 | | - <div class="survey-icon">📋</div> |
231 | | - <h2 class="survey-title">帮猫猫做个小调研吧</h2> |
232 | | - <p class="survey-desc">你的反馈是旦挞不断进步的动力~<br/>问卷很短,只需要几分钟!</p> |
233 | | - <button class="survey-btn" @click="openSurvey"> |
234 | | - 打开问卷 |
235 | | - <span class="survey-btn-arrow">→</span> |
236 | | - </button> |
237 | | - </div> |
238 | | - </section> |
239 | 226 | </main> |
240 | 227 |
|
241 | 228 | <!-- Lightbox --> |
@@ -316,12 +303,14 @@ onMounted(() => { |
316 | 303 | } |
317 | 304 |
|
318 | 305 | .header-title { |
319 | | - font-family: 'ZCOOL XiaoWei', serif; |
| 306 | + font-family: 'Noto Serif SC', 'Songti SC', serif; |
320 | 307 | font-size: clamp(2.2rem, 6vw, 3.6rem); |
321 | | - font-weight: 400; |
| 308 | + font-weight: 600; |
322 | 309 | color: var(--c-blossom-deep); |
323 | 310 | letter-spacing: 0.15em; |
| 311 | + line-height: 1.6; |
324 | 312 | margin: 0; |
| 313 | + overflow: visible; |
325 | 314 | text-shadow: 0 2px 12px rgba(200, 107, 132, 0.18); |
326 | 315 | } |
327 | 316 |
|
@@ -400,71 +389,75 @@ onMounted(() => { |
400 | 389 | } |
401 | 390 | } |
402 | 391 |
|
403 | | -/* ===== GAME PANEL ===== */ |
404 | | -.game-hero { |
405 | | - position: relative; |
406 | | - border-radius: 1.25rem; |
407 | | - overflow: hidden; |
408 | | - cursor: pointer; |
409 | | - max-width: 340px; |
| 392 | +/* ===== HOME PANEL ===== */ |
| 393 | +.home-greeting { |
| 394 | + text-align: center; |
| 395 | + font-family: 'ZCOOL XiaoWei', serif; |
| 396 | + font-size: 1.05rem; |
| 397 | + color: var(--c-blossom-deep); |
| 398 | + letter-spacing: 0.08em; |
| 399 | + margin-bottom: 1.5rem; |
| 400 | + opacity: 0.85; |
| 401 | +} |
| 402 | +
|
| 403 | +.home-cards { |
| 404 | + display: grid; |
| 405 | + grid-template-columns: 1fr 1fr; |
| 406 | + gap: 1rem; |
| 407 | + max-width: 480px; |
410 | 408 | margin: 0 auto; |
411 | | - box-shadow: |
412 | | - 0 8px 32px rgba(196, 107, 132, 0.18), |
413 | | - 0 2px 8px rgba(0, 0, 0, 0.04); |
414 | | - transition: transform 0.35s ease, box-shadow 0.35s ease; |
415 | 409 | } |
416 | 410 |
|
417 | | -.game-hero:hover { |
418 | | - transform: translateY(-6px) scale(1.01); |
419 | | - box-shadow: |
420 | | - 0 16px 48px rgba(196, 107, 132, 0.28), |
421 | | - 0 4px 12px rgba(0, 0, 0, 0.06); |
| 411 | +.home-card { |
| 412 | + background: white; |
| 413 | + border-radius: 1rem; |
| 414 | + padding: 1.75rem 1.25rem; |
| 415 | + text-align: center; |
| 416 | + cursor: pointer; |
| 417 | + border: 1px solid rgba(232, 160, 180, 0.15); |
| 418 | + box-shadow: 0 4px 20px rgba(196, 107, 132, 0.08); |
| 419 | + transition: all 0.3s ease; |
422 | 420 | } |
423 | 421 |
|
424 | | -.game-hero-img { |
425 | | - width: 100%; |
426 | | - display: block; |
| 422 | +.home-card:hover { |
| 423 | + transform: translateY(-4px); |
| 424 | + box-shadow: 0 8px 32px rgba(196, 107, 132, 0.18); |
| 425 | + border-color: rgba(232, 160, 180, 0.3); |
427 | 426 | } |
428 | 427 |
|
429 | | -.game-hero-overlay { |
430 | | - position: absolute; |
431 | | - inset: 0; |
432 | | - display: flex; |
433 | | - flex-direction: column; |
434 | | - align-items: center; |
435 | | - justify-content: flex-end; |
436 | | - padding-bottom: 2rem; |
437 | | - background: linear-gradient( |
438 | | - to bottom, |
439 | | - transparent 40%, |
440 | | - rgba(60, 30, 40, 0.5) |
441 | | - ); |
| 428 | +.home-card-icon { |
| 429 | + font-size: 2rem; |
| 430 | + display: block; |
| 431 | + margin-bottom: 0.75rem; |
442 | 432 | } |
443 | 433 |
|
444 | | -.game-hero-badge { |
445 | | - background: rgba(255, 255, 255, 0.88); |
446 | | - color: var(--c-blossom-deep); |
447 | | - padding: 0.4rem 1.4rem; |
448 | | - border-radius: 999px; |
| 434 | +.home-card-title { |
449 | 435 | font-family: 'ZCOOL XiaoWei', serif; |
450 | 436 | font-size: 1.05rem; |
451 | | - letter-spacing: 0.1em; |
452 | | - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); |
| 437 | + color: var(--c-blossom-deep); |
| 438 | + margin: 0 0 0.5rem; |
| 439 | + font-weight: 400; |
| 440 | + letter-spacing: 0.08em; |
| 441 | +} |
| 442 | +
|
| 443 | +.home-card-desc { |
| 444 | + font-size: 0.82rem; |
| 445 | + color: var(--c-ink-light); |
| 446 | + line-height: 1.7; |
| 447 | + margin: 0 0 1rem; |
453 | 448 | } |
454 | 449 |
|
455 | | -.game-hero-cta { |
456 | | - color: rgba(255, 255, 255, 0.9); |
| 450 | +.home-card-link { |
| 451 | + display: inline-block; |
| 452 | + font-family: 'ZCOOL XiaoWei', serif; |
457 | 453 | font-size: 0.85rem; |
458 | | - margin-top: 0.6rem; |
459 | | - letter-spacing: 0.15em; |
| 454 | + color: var(--c-blossom-deep); |
| 455 | + letter-spacing: 0.06em; |
| 456 | + transition: letter-spacing 0.25s ease; |
460 | 457 | } |
461 | 458 |
|
462 | | -.game-caption { |
463 | | - text-align: center; |
464 | | - color: var(--c-ink-light); |
465 | | - font-size: 0.9rem; |
466 | | - margin-top: 1.2rem; |
467 | | - opacity: 0.75; |
| 459 | +.home-card:hover .home-card-link { |
| 460 | + letter-spacing: 0.15em; |
468 | 461 | } |
469 | 462 |
|
470 | 463 | /* ===== LETTER PANEL ===== */ |
@@ -604,68 +597,6 @@ onMounted(() => { |
604 | 597 | opacity: 0.6; |
605 | 598 | } |
606 | 599 |
|
607 | | -/* ===== SURVEY PANEL ===== */ |
608 | | -.survey-card { |
609 | | - text-align: center; |
610 | | - background: white; |
611 | | - border-radius: 1.25rem; |
612 | | - padding: 3rem 2rem; |
613 | | - box-shadow: 0 8px 32px rgba(196, 107, 132, 0.08); |
614 | | - border: 1px solid rgba(232, 160, 180, 0.15); |
615 | | -} |
616 | | -
|
617 | | -.survey-icon { |
618 | | - font-size: 3rem; |
619 | | - margin-bottom: 0.75rem; |
620 | | -} |
621 | | -
|
622 | | -.survey-title { |
623 | | - font-family: 'ZCOOL XiaoWei', serif; |
624 | | - font-size: 1.4rem; |
625 | | - color: var(--c-blossom-deep); |
626 | | - margin: 0 0 0.75rem; |
627 | | - font-weight: 400; |
628 | | - letter-spacing: 0.08em; |
629 | | -} |
630 | | -
|
631 | | -.survey-desc { |
632 | | - font-size: 0.92rem; |
633 | | - color: var(--c-ink-light); |
634 | | - line-height: 1.7; |
635 | | - margin-bottom: 1.75rem; |
636 | | -} |
637 | | -
|
638 | | -.survey-btn { |
639 | | - display: inline-flex; |
640 | | - align-items: center; |
641 | | - gap: 0.5rem; |
642 | | - padding: 0.75rem 2rem; |
643 | | - background: var(--c-blossom-deep); |
644 | | - color: white; |
645 | | - border: none; |
646 | | - border-radius: 999px; |
647 | | - font-family: 'ZCOOL XiaoWei', serif; |
648 | | - font-size: 1rem; |
649 | | - cursor: pointer; |
650 | | - letter-spacing: 0.1em; |
651 | | - transition: all 0.3s ease; |
652 | | - box-shadow: 0 4px 16px rgba(196, 107, 132, 0.25); |
653 | | -} |
654 | | -
|
655 | | -.survey-btn:hover { |
656 | | - background: #b5495b; |
657 | | - transform: translateY(-2px); |
658 | | - box-shadow: 0 8px 24px rgba(196, 107, 132, 0.35); |
659 | | -} |
660 | | -
|
661 | | -.survey-btn-arrow { |
662 | | - transition: transform 0.25s ease; |
663 | | -} |
664 | | -
|
665 | | -.survey-btn:hover .survey-btn-arrow { |
666 | | - transform: translateX(4px); |
667 | | -} |
668 | | -
|
669 | 600 | /* ===== LIGHTBOX ===== */ |
670 | 601 | .lightbox { |
671 | 602 | position: fixed; |
@@ -755,12 +686,13 @@ onMounted(() => { |
755 | 686 | gap: 0.75rem; |
756 | 687 | } |
757 | 688 |
|
758 | | - .survey-card { |
759 | | - padding: 2rem 1.25rem; |
| 689 | + .home-cards { |
| 690 | + grid-template-columns: 1fr; |
| 691 | + max-width: 320px; |
760 | 692 | } |
761 | 693 |
|
762 | | - .game-hero { |
763 | | - max-width: 280px; |
| 694 | + .home-card { |
| 695 | + padding: 1.25rem 1rem; |
764 | 696 | } |
765 | 697 | } |
766 | 698 | </style> |
0 commit comments