diff --git a/public/images/le-hoi/doan-khieng-kieu.jpg b/public/images/le-hoi/doan-khieng-kieu.jpg new file mode 100644 index 0000000..39f767c Binary files /dev/null and b/public/images/le-hoi/doan-khieng-kieu.jpg differ diff --git a/public/images/le-hoi/doan-ruoc-bo-lao.jpg b/public/images/le-hoi/doan-ruoc-bo-lao.jpg new file mode 100644 index 0000000..d8c6de9 Binary files /dev/null and b/public/images/le-hoi/doan-ruoc-bo-lao.jpg differ diff --git a/public/images/le-hoi/kieu-long-vang.jpg b/public/images/le-hoi/kieu-long-vang.jpg new file mode 100644 index 0000000..8919c2d Binary files /dev/null and b/public/images/le-hoi/kieu-long-vang.jpg differ diff --git a/public/images/le-hoi/le-cau-an-ban-dem.jpg b/public/images/le-hoi/le-cau-an-ban-dem.jpg new file mode 100644 index 0000000..9f8c916 Binary files /dev/null and b/public/images/le-hoi/le-cau-an-ban-dem.jpg differ diff --git a/public/images/le-hoi/mua-rong-cong-chua.jpg b/public/images/le-hoi/mua-rong-cong-chua.jpg new file mode 100644 index 0000000..7e9f19f Binary files /dev/null and b/public/images/le-hoi/mua-rong-cong-chua.jpg differ diff --git a/public/images/le-hoi/nghi-thuc-san-chua.jpg b/public/images/le-hoi/nghi-thuc-san-chua.jpg new file mode 100644 index 0000000..d161791 Binary files /dev/null and b/public/images/le-hoi/nghi-thuc-san-chua.jpg differ diff --git a/public/images/le-hoi/ruoc-kieu.jpg b/public/images/le-hoi/ruoc-kieu.jpg new file mode 100644 index 0000000..8f7647d Binary files /dev/null and b/public/images/le-hoi/ruoc-kieu.jpg differ diff --git a/public/images/le-hoi/san-chua-tu-tren-cao.jpg b/public/images/le-hoi/san-chua-tu-tren-cao.jpg new file mode 100644 index 0000000..f1727b3 Binary files /dev/null and b/public/images/le-hoi/san-chua-tu-tren-cao.jpg differ diff --git a/public/images/le-hoi/toan-canh-le-hoi.jpg b/public/images/le-hoi/toan-canh-le-hoi.jpg new file mode 100644 index 0000000..67fc6a9 Binary files /dev/null and b/public/images/le-hoi/toan-canh-le-hoi.jpg differ diff --git a/public/images/le-hoi/tru-tri-le-hoi.jpg b/public/images/le-hoi/tru-tri-le-hoi.jpg new file mode 100644 index 0000000..eb6f76e Binary files /dev/null and b/public/images/le-hoi/tru-tri-le-hoi.jpg differ diff --git a/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 1.jpg b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 1.jpg new file mode 100644 index 0000000..1a9933a Binary files /dev/null and b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 1.jpg differ diff --git a/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 2.jpg b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 2.jpg new file mode 100644 index 0000000..ff3f048 Binary files /dev/null and b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 2.jpg differ diff --git a/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 3.jpg b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 3.jpg new file mode 100644 index 0000000..cb60620 Binary files /dev/null and b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 3.jpg differ diff --git a/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 4.jpg b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 4.jpg new file mode 100644 index 0000000..813218c Binary files /dev/null and b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 4.jpg differ diff --git a/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 5.jpg b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 5.jpg new file mode 100644 index 0000000..d7b383b Binary files /dev/null and b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội 5.jpg differ diff --git a/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội trước cổng chùa.jpg b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội trước cổng chùa.jpg new file mode 100644 index 0000000..45dcde1 Binary files /dev/null and b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội trước cổng chùa.jpg differ diff --git a/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội.jpg b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội.jpg new file mode 100644 index 0000000..ed54ee1 Binary files /dev/null and b/public/images/pháp-vân(chùa thái lạc)/ảnh lễ hội.jpg differ diff --git a/public/images/pháp-vân(chùa thái lạc)/ảnh nghi lễ rước kiệu.jpg b/public/images/pháp-vân(chùa thái lạc)/ảnh nghi lễ rước kiệu.jpg new file mode 100644 index 0000000..4d4e91a Binary files /dev/null and b/public/images/pháp-vân(chùa thái lạc)/ảnh nghi lễ rước kiệu.jpg differ diff --git a/public/images/pháp-vân(chùa thái lạc)/ảnh người dân và phật tử tham gia lễ chùa.jpg b/public/images/pháp-vân(chùa thái lạc)/ảnh người dân và phật tử tham gia lễ chùa.jpg new file mode 100644 index 0000000..4909021 Binary files /dev/null and b/public/images/pháp-vân(chùa thái lạc)/ảnh người dân và phật tử tham gia lễ chùa.jpg differ diff --git a/public/images/pháp-vân(chùa thái lạc)/ảnh thày trụ trì tham gia lễ hội.jpg b/public/images/pháp-vân(chùa thái lạc)/ảnh thày trụ trì tham gia lễ hội.jpg new file mode 100644 index 0000000..84958a5 Binary files /dev/null and b/public/images/pháp-vân(chùa thái lạc)/ảnh thày trụ trì tham gia lễ hội.jpg differ diff --git a/src/app/co-vat/page.tsx b/src/app/co-vat/page.tsx index 1635669..0449f83 100644 --- a/src/app/co-vat/page.tsx +++ b/src/app/co-vat/page.tsx @@ -5,7 +5,7 @@ import AntiquityShowcaseClient from "./AntiquityShowcaseClient"; import { BackToTopButton } from "@/app/components/landing/BackToTopButton"; import { SiteFooter } from "@/app/components/landing/SiteFooter"; import { SiteHeader } from "@/app/components/landing/SiteHeader"; -import { activeTour, antiquities } from "@/app/content"; +import { antiquities, subpageHero } from "@/app/content"; export const metadata: Metadata = { title: "Cổ vật 3D | VR360 Như Quỳnh", @@ -25,7 +25,7 @@ export default function AntiquityPage() {
- +

Phòng trưng bày số

diff --git a/src/app/components/landing/FestivalGallery.tsx b/src/app/components/landing/FestivalGallery.tsx new file mode 100644 index 0000000..7a52bb0 --- /dev/null +++ b/src/app/components/landing/FestivalGallery.tsx @@ -0,0 +1,48 @@ +import Image from "next/image"; +import { festivalGallery } from "@/app/content"; + +// Gallery "Khoảnh khắc lễ hội" — bố cục bento: dưới lg là lưới 2 cột đều, từ lg dùng +// grid-auto-flow dense với vài ô lớn/cao để tạo nhịp điệu biên tập, tránh kiểu 3 thẻ đều. +export function FestivalGallery() { + return ( +
+
+

Khoảnh khắc lễ hội

+

+ Sắc màu hội làng bên ngôi chùa cổ +

+

+ Những khoảnh khắc thật của lễ hội truyền thống tại Chùa Pháp Vân (Thái Lạc) — đám rước, múa rồng, + nghi thức tế lễ và đêm cầu an bên ngôi chùa cổ. +

+
+ +
+ {festivalGallery.map((photo) => ( +
+ {photo.alt} +
+
+

+ {photo.title} +

+

{photo.note}

+
+
+ ))} +
+
+ ); +} diff --git a/src/app/content.ts b/src/app/content.ts index d9a6e66..1860e1a 100644 --- a/src/app/content.ts +++ b/src/app/content.ts @@ -21,7 +21,10 @@ export const activeTour = { title: "Chùa Thái Lạc (Pháp Vân tự)", subtitle: "Di tích quốc gia, chạm khắc gỗ thời Trần", href: "/tour/chua-thai-lac", - heroImage: img("01.jpg"), // Chính diện cổng chùa + // Ảnh nền hero (CSS background) — toàn cảnh lễ hội múa rồng, ảnh thật của di tích. + heroImage: "/images/le-hoi/toan-canh-le-hoi.jpg", + // Ảnh lớn bên phải hero — nghi lễ rước kiệu (qua next/image). + heroFeatureImage: "/images/le-hoi/ruoc-kieu.jpg", coverImage: img("08.jpg"), // Chính sảnh gateImage: img("01.jpg"), // Chính diện cổng chùa shrineImage: img("11.jpg"), // Chính điện @@ -49,7 +52,7 @@ export const festivalVideo = { kicker: "Lễ hội & văn hóa", title: "Lễ hội cầu mưa Lạc Hồng – Văn Lâm", src: "/video/le-hoi-cau-mua-lac-hong-van-lam.mp4", - poster: img("10.jpg"), // Đài lộ thiên giữa sân chùa — không gian nghi lễ ngoài trời + poster: "/images/le-hoi/san-chua-tu-tren-cao.jpg", // Ảnh thật sân chùa ngày hội heading: "Lễ hội cầu mưa — nhịp sống tín ngưỡng Tứ Pháp", description: [ "Lễ hội cầu mưa ở Lạc Hồng (Văn Lâm, Hưng Yên) là sinh hoạt tín ngưỡng lâu đời của cư dân nông nghiệp đồng bằng Bắc Bộ, gắn với hệ Tứ Pháp — Pháp Vân, Pháp Vũ, Pháp Lôi, Pháp Điện — cầu cho mưa thuận gió hòa, mùa màng tươi tốt.", @@ -59,6 +62,95 @@ export const festivalVideo = { ctaHref: "/tour/chua-thai-lac", } as const; +// Ảnh lễ hội thật của Chùa Pháp Vân (Thái Lạc) — Quang Trung, Lạc Hồng, Văn Lâm, Hưng Yên. +// Đặt tại public/images/le-hoi/ với tên ASCII đã tối ưu (resize + nén) để an toàn khi triển khai. +const leHoi = (file: string) => `/images/le-hoi/${file}`; + +export type FestivalPhoto = { + src: string; + title: string; + note: string; + alt: string; + // Lớp span Tailwind cho bố cục bento ở breakpoint lg (dưới lg là lưới 2 cột đều). + span?: string; +}; + +// Bộ ảnh "Khoảnh khắc lễ hội" — bố cục bento ở trang chủ. Ô đầu (đêm cầu an) làm ô chủ đạo. +export const festivalGallery: FestivalPhoto[] = [ + { + src: leHoi("le-cau-an-ban-dem.jpg"), + title: "Lễ cầu an", + note: "Phật tử dâng đèn hoa sen trong đêm hội", + alt: "Phật tử áo tràng chắp tay bên đèn hoa sen trong lễ cầu an ban đêm tại Chùa Pháp Vân", + span: "lg:col-span-2 lg:row-span-2", + }, + { + src: leHoi("toan-canh-le-hoi.jpg"), + title: "Toàn cảnh đám rước", + note: "Múa rồng và đoàn rước rợp sắc cờ", + alt: "Toàn cảnh đám rước lễ hội với hai đoàn múa rồng vàng giữa hàng cây", + span: "lg:col-span-2", + }, + { + src: leHoi("ruoc-kieu.jpg"), + title: "Rước kiệu thánh", + note: "Kiệu sơn son thếp vàng giữa sân lễ", + alt: "Kiệu thánh sơn son thếp vàng được trai làng khiêng trong đám rước", + }, + { + src: leHoi("doan-khieng-kieu.jpg"), + title: "Trai làng rước kiệu", + note: "Khí thế đoàn rước qua đường làng", + alt: "Đoàn trai làng cởi trần thắt đai đỏ vàng khiêng kiệu thánh qua đường làng", + span: "lg:row-span-2", + }, + { + src: leHoi("mua-rong-cong-chua.jpg"), + title: "Múa rồng trước Tam quan", + note: "Sắc áo dài rực rỡ hai bên lối vào", + alt: "Màn múa rồng trước Tam quan chùa với hàng người mặc áo dài cầm quạt hai bên", + }, + { + src: leHoi("nghi-thuc-san-chua.jpg"), + title: "Nghi thức tế lễ", + note: "Đội tế xếp hàng giữa sân chùa", + alt: "Đội tế xếp hàng làm nghi thức giữa sân gạch chùa rợp cờ Phật giáo nhìn từ trên cao", + span: "lg:col-span-2", + }, + { + src: leHoi("kieu-long-vang.jpg"), + title: "Kiệu dưới tán lọng", + note: "Lọng vàng che kiệu trong đám rước", + alt: "Kiệu thánh dưới tán lọng vàng giữa dòng người trẩy hội", + }, + { + src: leHoi("san-chua-tu-tren-cao.jpg"), + title: "Sân chùa ngày hội", + note: "Rợp lọng vàng nhìn từ trên cao", + alt: "Sân chùa ngày hội rợp lọng vàng và dòng người nhìn từ trên cao", + }, + { + src: leHoi("doan-ruoc-bo-lao.jpg"), + title: "Đoàn rước bô lão", + note: "Các cụ trong trang phục tế truyền thống", + alt: "Đoàn các cụ bô lão mặc áo tế truyền thống cầm gậy đi trong đám rước", + }, + { + src: leHoi("tru-tri-le-hoi.jpg"), + title: "Sư trụ trì chủ lễ", + note: "Chủ lễ giữa đoàn rước long trọng", + alt: "Sư trụ trì khoác áo cà sa vàng đi giữa hai hàng người cầm lọng và cờ lễ", + }, +]; + +// Ảnh phần đầu (hero) của các trang con — dùng ảnh lễ hội thật thay cho ảnh panorama bị méo. +export const subpageHero = { + gioiThieu: leHoi("mua-rong-cong-chua.jpg"), + diTich: leHoi("nghi-thuc-san-chua.jpg"), + diTichFeature: leHoi("kieu-long-vang.jpg"), + coVat: leHoi("tru-tri-le-hoi.jpg"), +} as const; + export const navigation = [ { href: "/", label: "Trang chủ" }, { href: "/gioi-thieu", label: "Giới thiệu" }, diff --git a/src/app/di-tich/page.tsx b/src/app/di-tich/page.tsx index 93c8db3..d1a9da8 100644 --- a/src/app/di-tich/page.tsx +++ b/src/app/di-tich/page.tsx @@ -6,7 +6,7 @@ import { BackToTopButton } from "@/app/components/landing/BackToTopButton"; import { CulturalSpaceExplorer } from "@/app/components/landing/CulturalSpaceExplorer"; import { SiteFooter } from "@/app/components/landing/SiteFooter"; import { SiteHeader } from "@/app/components/landing/SiteHeader"; -import { activeTour, heritageSites } from "@/app/content"; +import { heritageSites, subpageHero } from "@/app/content"; export const metadata: Metadata = { title: "Di tích | VR360 Như Quỳnh", @@ -21,7 +21,7 @@ export default function HeritageListPage() {
Di sản văn hóa Xã Như Quỳnh
- +

Giới thiệu

diff --git a/src/app/page.tsx b/src/app/page.tsx index ecc8c02..c7ed7f3 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -3,6 +3,7 @@ import Image from "next/image"; import Link from "next/link"; import { ArrowRight, Box, Globe2, Landmark, PlayCircle, Rotate3d, School, Sparkles } from "lucide-react"; import { BackToTopButton } from "@/app/components/landing/BackToTopButton"; +import { FestivalGallery } from "@/app/components/landing/FestivalGallery"; import { FestivalVideo } from "@/app/components/landing/FestivalVideo"; import { HeritageMarquee } from "@/app/components/landing/HeritageMarquee"; import { SiteFooter } from "@/app/components/landing/SiteFooter"; @@ -84,8 +85,8 @@ export default function Home() {
Không gian di sản Xã Như Quỳnh được số hóa VR360
+ {/* Khoảnh khắc lễ hội — gallery bento ảnh thật, nối tiếp mạch "Lễ hội & văn hóa" */} + +

Giới thiệu nhanh

diff --git a/src/app/tours/chua-thai-lac.ts b/src/app/tours/chua-thai-lac.ts index 5a30755..08ff9e3 100644 --- a/src/app/tours/chua-thai-lac.ts +++ b/src/app/tours/chua-thai-lac.ts @@ -158,7 +158,7 @@ const seeds: SceneSeed[] = [ id: "video-le-hoi-cau-mua", title: "Lễ hội cầu mưa", eyebrow: EYEBROW, - yaw: 119, + yaw: 120, pitch: 2, iconType: "video", video: {