Files
DredgeTours/resources/js/pages/TourOverviewSection.vue
2025-09-19 00:33:32 +10:00

98 lines
3.0 KiB
Vue

<script setup lang="ts">
import SectionContainer from "@/components/dredgy/SectionContainer.vue";
import SectionTitle from "@/components/dredgy/SectionTitle.vue";
import GradientText from "@/components/dredgy/GradientText.vue";
import EdgyButton from "@/components/dredgy/EdgyButton.vue";
import ButtonLink from "@/components/dredgy/ButtonLink.vue";
import TourQuickFacts from "@/components/TourNavigator/TourQuickFacts.vue";
import type { Tour } from "@/types";
interface Props {
tour: Tour;
}
const props = defineProps<Props>();
</script>
<template>
<section class="tour-overview">
<SectionContainer>
<div
class="relative chamfer bg-neutral-900/70 border border-neutral-700/60 shadow-xl shadow-black/30 backdrop-blur-sm"
>
<!-- Banner with overlapping title -->
<div class="relative">
<div class="aspect-[16/7] md:aspect-[16/6] lg:aspect-[16/5] overflow-hidden">
<img
:src="`/img/tours/${props.tour.internal_name}.jpg`"
:alt="tour.name + 'Banner'"
class="w-full h-full object-cover"
loading="lazy"
/>
</div>
<!-- Overlapping H1 with glass background (no rounded, chamfered) -->
<div class="absolute left-6 md:left-8 -bottom-8">
<div
class="chamfer border border-white/10 glass shadow-lg shadow-black/30 px-4 md:px-5 py-2.5"
>
<h1 style="padding:0.5em" class="text-2xl md:text-3xl lg:text-4xl font-semibold tracking-tight">
<GradientText>About this Adventure</GradientText>
</h1>
</div>
</div>
</div>
<!-- Content area: flex columns, fixed height, right column flush with edge -->
<div>
<div class="flex gap-6 h-[560px] md:h-[600px] lg:h-[640px]">
<!-- Main description (wider column) -->
<div class="flex-1 pl-6 md:pl-8">
<div class="text-neutral-200 leading-relaxed h-full overflow-auto pr-1 pt-14 ">
<div
v-html="props.tour.long_description || 'No long description available'"
></div>
</div>
</div>
<!-- Quick facts (narrower right column, flush right, chamfer top-left only) -->
<aside class="w-80 md:w-88 lg:w-96 h-full">
<div
class="h-full chamfer-tl bg-neutral-900/40 backdrop-blur-sm ring-1 ring-neutral-700/50"
>
<TourQuickFacts :tour="props.tour" />
</div>
</aside>
</div>
</div>
</div>
</SectionContainer>
</section>
</template>
<style scoped>
.chamfer {
--cut: 20px;
clip-path: polygon(
0 0,
calc(100% - var(--cut)) 0,
100% var(--cut),
100% 100%,
var(--cut) 100%,
0 calc(100% - var(--cut))
);
}
/* Only the top-left corner chamfered (for the right column box) */
.chamfer-tl {
--cut: 20px;
clip-path: polygon(
var(--cut) 0,
100% 0,
100% 100%,
0 100%,
0 0
);
}
</style>