You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

46 lines
1.9 KiB

  1. <template>
  2. <!--
  3. 统一的页面 Hero 区域。
  4. 目的:各工具页 hero 高度一致、底色一致(PC 端多页切换时不会突兀)。
  5. 左侧文案 + 右侧自定义插槽(预览卡片等)。
  6. -->
  7. <section class="relative overflow-hidden border-b border-[var(--c-e8eef7)] bg-gradient-to-br from-[var(--c-ffffff)] via-[var(--c-eef6ff)] to-[var(--c-f5faff)]">
  8. <!-- 装饰光斑(低饱和,避免 PC 端色块过重) -->
  9. <div class="pointer-events-none absolute -right-24 -top-28 h-72 w-72 rounded-full bg-[var(--c-0b8cff)]/10 blur-2xl" />
  10. <div class="pointer-events-none absolute -bottom-28 right-40 h-56 w-56 rounded-full bg-[var(--c-20d3a2)]/10 blur-2xl" />
  11. <div class="relative mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
  12. <div class="flex min-h-[220px] flex-col justify-center gap-6 py-8 lg:min-h-[280px] lg:flex-row lg:items-center lg:justify-between lg:gap-10 lg:py-10">
  13. <!-- 文案 -->
  14. <div class="max-w-[560px]">
  15. <div v-if="kicker" class="text-[11px] font-extrabold tracking-[0.18em] text-[var(--c-0b8cff)] lg:text-xs">
  16. {{ kicker }}
  17. </div>
  18. <h1 class="mt-3 text-[26px] font-extrabold leading-tight text-[var(--c-172033)] lg:text-[36px]">
  19. {{ title }}
  20. </h1>
  21. <p v-if="desc" class="mt-3 text-sm leading-relaxed text-[var(--c-66758a)] lg:text-base">
  22. {{ desc }}
  23. </p>
  24. <div v-if="$slots.actions" class="mt-5 flex flex-wrap items-center gap-3">
  25. <slot name="actions" />
  26. </div>
  27. </div>
  28. <!-- 右侧插槽:预览卡片等 -->
  29. <div v-if="$slots.aside" class="flex-shrink-0">
  30. <slot name="aside" />
  31. </div>
  32. </div>
  33. </div>
  34. </section>
  35. </template>
  36. <script setup>
  37. defineProps({
  38. kicker: { type: String, default: '' },
  39. title: { type: String, required: true },
  40. desc: { type: String, default: '' },
  41. })
  42. </script>