Files
admin/www/app/components/section/layouts/LayoutFullBanner.vue
T

24 lines
1.2 KiB
Vue
Raw Normal View History

2026-07-31 19:02:00 +08:00
<script setup lang="ts">
import type { SectionBlock } from '~/types/site';
const props = defineProps<{ section: SectionBlock }>();
2026-08-03 19:09:03 +08:00
const { overline, title, subtitle, content, overlineStyle, titleStyle, bodyStyle } = useSectionContent(props.section);
2026-07-31 19:02:00 +08:00
</script>
<template>
2026-08-05 18:36:01 +08:00
<div class="section-container py-[var(--sec-py,120px)] flex-col-center text-center max-w-800px">
2026-08-04 19:18:35 +08:00
<p v-if="overline" class="text-14px font-semibold tracking-widest uppercase" :class="section.theme === 'dark' ? 'text-primary-300' : 'text-primary'" :style="overlineStyle">
2026-07-31 19:02:00 +08:00
{{ overline }}
</p>
2026-08-05 18:36:01 +08:00
<h2 class="mt-16px font-bold leading-tight" :class="section.theme === 'dark' ? 'text-white' : 'text-gray-900 dark:text-white'" :style="titleStyle">
2026-07-31 19:02:00 +08:00
{{ title }}
</h2>
2026-08-03 19:09:03 +08:00
<p v-if="subtitle" class="mt-20px text-lg md:text-xl" :class="section.theme === 'dark' ? 'text-gray-300' : 'text-gray-600 dark:text-gray-300'" :style="bodyStyle">
2026-07-31 19:02:00 +08:00
{{ subtitle }}
</p>
2026-08-05 18:36:01 +08:00
<div v-if="content" class="rich-text mt-16px text-15px leading-relaxed" :class="section.theme === 'dark' ? 'text-gray-400' : 'text-gray-500 dark:text-gray-400'" :style="bodyStyle" v-html="content" />
2026-07-31 19:02:00 +08:00
<SectionCta :section="section" class="mt-32px justify-center" />
</div>
</template>