Compare commits
27 Commits
version_2_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 83901c9d8a | |||
|
|
0b7d4cc8de | ||
| c381388d3c | |||
| fd9fb5cce7 | |||
| c517dcbaf9 | |||
| 3b25c59522 | |||
| 509f321ca7 | |||
| 8312c6d099 | |||
| 37e3e8f176 | |||
|
|
6e42f1b457 | ||
| c302c1c502 | |||
| e1e7ea0803 | |||
| ed0dad5b37 | |||
| 9fb22866ba | |||
| 9848e4145c | |||
| 1356930036 | |||
| 6d40960a81 | |||
| 7e2496df8f | |||
| 0028067dcb | |||
| a4ed2a0f23 | |||
| 7abcb06318 | |||
| 52db58be45 | |||
| 476c73d835 | |||
| 7823caa101 | |||
| 7aa1d5e449 | |||
| 87bcca1af1 | |||
| 925ef781a6 |
@@ -5,15 +5,15 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/darkTheme/luxury */
|
||||
--background: #0f1010;
|
||||
--card: #3d3d3d;
|
||||
--foreground: #f5f0eb;
|
||||
--primary-cta: #ffffff;
|
||||
--background: #0a0a0a;
|
||||
--card: #1a1a1a;
|
||||
--foreground: #ffffffe6;
|
||||
--primary-cta: #e6e6e6;
|
||||
--primary-cta-text: #0a0a0a;
|
||||
--secondary-cta: #1a1a1a;
|
||||
--secondary-cta-text: #f5f0eb;
|
||||
--accent: #d4b896;
|
||||
--background-accent: #4f402d;
|
||||
--secondary-cta-text: #ffffffe6;
|
||||
--accent: #737373;
|
||||
--background-accent: #737373;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 1rem;
|
||||
|
||||
@@ -14,7 +14,9 @@ import JourneysSection from './HomePage/sections/Journeys';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
import ReviewsSection from './HomePage/sections/Reviews';export default function HomePage(): React.JSX.Element {
|
||||
import ReviewsSection from './HomePage/sections/Reviews';
|
||||
import NewsletterSection from './HomePage/sections/Newsletter';
|
||||
import FaqSection from './HomePage/sections/Faq';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<StyleProvider siteBackground="none" heroBackground="none" buttonVariant="default">
|
||||
<SiteBackgroundSlot />
|
||||
@@ -29,8 +31,10 @@ import ReviewsSection from './HomePage/sections/Reviews';export default function
|
||||
|
||||
<JourneysSection />
|
||||
<ReviewsSection />
|
||||
<FaqSection />
|
||||
|
||||
<ContactSection />
|
||||
<NewsletterSection />
|
||||
</StyleProvider>
|
||||
);
|
||||
}
|
||||
|
||||
65
src/pages/HomePage/sections/Faq.tsx
Normal file
65
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,65 @@
|
||||
import React from 'react';
|
||||
import TextAnimation from '@/components/ui/TextAnimation';
|
||||
import ScrollReveal from '@/components/ui/ScrollReveal';
|
||||
import Accordion from '@/components/ui/Accordion';
|
||||
import Tag from '@/components/ui/Tag';
|
||||
|
||||
export default function FaqSection() {
|
||||
const faqItems = [
|
||||
{
|
||||
title: "What time is check-in and check-out?",
|
||||
content: "Check-in is at 3:00 PM and check-out is at 11:00 AM. Early check-in and late check-out are subject to availability."
|
||||
},
|
||||
{
|
||||
title: "Are the rooms pet-friendly?",
|
||||
content: "Yes, we have designated pet-friendly rooms. Please let us know in advance so we can prepare for your furry friend."
|
||||
},
|
||||
{
|
||||
title: "What is your cancellation policy?",
|
||||
content: "You can cancel free of charge up to 48 hours before your scheduled arrival. Cancellations made within 48 hours will incur a one-night fee."
|
||||
},
|
||||
{
|
||||
title: "Do I need to pay a deposit?",
|
||||
content: "A valid credit card is required to secure your reservation, but no deposit is charged until you arrive, unless you book a non-refundable rate."
|
||||
},
|
||||
{
|
||||
title: "Do you offer airport transfers?",
|
||||
content: "Yes, we can arrange airport transfers for an additional fee. Please contact our concierge team at least 24 hours before your flight."
|
||||
},
|
||||
{
|
||||
title: "Is parking available on-site?",
|
||||
content: "We offer secure valet parking for our guests at a daily rate. Self-parking is also available nearby."
|
||||
}
|
||||
];
|
||||
|
||||
return (
|
||||
<section data-webild-section="faq" id="faq" className="relative w-full py-24 bg-background">
|
||||
<div className="w-content-width mx-auto">
|
||||
<div className="flex flex-col md:flex-row gap-12 md:gap-24">
|
||||
<div className="w-full md:w-1/3 flex flex-col items-start">
|
||||
<ScrollReveal variant="fade">
|
||||
<Tag text="FAQ" className="mb-6" />
|
||||
</ScrollReveal>
|
||||
<TextAnimation
|
||||
text="Common Questions"
|
||||
variant="fade-blur"
|
||||
tag="h2"
|
||||
gradientText={false}
|
||||
className="text-4xl md:text-5xl font-bold text-foreground mb-6"
|
||||
/>
|
||||
<ScrollReveal variant="fade" delay={0.2}>
|
||||
<p className="text-lg text-accent">
|
||||
Everything you need to know before you book your stay with us. If you have any other questions, feel free to reach out.
|
||||
</p>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
<div className="w-full md:w-2/3">
|
||||
<ScrollReveal variant="fade" delay={0.3}>
|
||||
<Accordion items={faqItems} />
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
55
src/pages/HomePage/sections/Newsletter.tsx
Normal file
55
src/pages/HomePage/sections/Newsletter.tsx
Normal file
@@ -0,0 +1,55 @@
|
||||
import { useState } from "react"
|
||||
import { motion } from "motion/react"
|
||||
import TextAnimation from "@/components/ui/TextAnimation"
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal"
|
||||
import Input from "@/components/ui/Input"
|
||||
import Button from "@/components/ui/Button"
|
||||
import Tag from "@/components/ui/Tag"
|
||||
|
||||
export default function Newsletter() {
|
||||
const [email, setEmail] = useState("")
|
||||
|
||||
const handleSubmit = (e: React.FormEvent) => {
|
||||
e.preventDefault()
|
||||
// Handle submit
|
||||
setEmail("")
|
||||
}
|
||||
|
||||
return (
|
||||
<section className="relative w-full py-24 bg-background" data-webild-section="newsletter">
|
||||
<div className="w-content-width mx-auto">
|
||||
<ScrollReveal variant="fade">
|
||||
<div className="flex flex-col items-center text-center max-w-2xl mx-auto">
|
||||
<Tag text="Newsletter" className="mb-6" />
|
||||
<TextAnimation
|
||||
text="Join Our Mailing List"
|
||||
variant="fade-blur"
|
||||
tag="h2"
|
||||
className="text-4xl md:text-5xl font-bold text-foreground mb-6"
|
||||
gradientText={false}
|
||||
/>
|
||||
<p className="text-lg text-accent mb-10">
|
||||
Sign up for our newsletter to receive exclusive offers, seasonal menus, and updates directly to your inbox.
|
||||
</p>
|
||||
|
||||
<form onSubmit={handleSubmit} className="w-full flex flex-col sm:flex-row gap-4">
|
||||
<Input
|
||||
type="email"
|
||||
placeholder="Enter your email address"
|
||||
value={email}
|
||||
onChange={(e) => setEmail(e.target.value)}
|
||||
required
|
||||
className="flex-1"
|
||||
/>
|
||||
<Button
|
||||
text="Subscribe"
|
||||
variant="primary"
|
||||
className="w-full sm:w-auto"
|
||||
/>
|
||||
</form>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user