23 Commits

Author SHA1 Message Date
c3a0efb81a Update src/app/page.tsx 2026-04-19 05:55:13 +00:00
add684eba8 Update src/app/page.tsx 2026-04-19 05:54:41 +00:00
aa80ec8442 Merge version_5 into main
Merge version_5 into main
2026-04-17 06:43:31 +00:00
ae5278da87 Update src/app/page.tsx 2026-04-17 06:43:28 +00:00
038cfec09c Merge version_5 into main
Merge version_5 into main
2026-04-17 06:43:07 +00:00
f9114b63a8 Update src/app/page.tsx 2026-04-17 06:43:01 +00:00
fad0e0d27b Merge version_5 into main
Merge version_5 into main
2026-04-17 06:42:35 +00:00
cb1d5587b9 Update src/app/page.tsx 2026-04-17 06:42:29 +00:00
a0060fb654 Merge version_4 into main
Merge version_4 into main
2026-04-17 06:37:50 +00:00
94485e2b2c Update src/app/page.tsx 2026-04-17 06:37:44 +00:00
7f69f2462c Merge version_3 into main
Merge version_3 into main
2026-04-17 06:37:27 +00:00
c6582f2b1e Update theme fonts 2026-04-17 06:37:24 +00:00
e449c89631 Update theme fonts 2026-04-17 06:37:24 +00:00
969a66088b Merge version_3 into main
Merge version_3 into main
2026-04-17 06:37:23 +00:00
ca593240e2 Update theme fonts 2026-04-17 06:37:20 +00:00
f72532fe09 Merge version_3 into main
Merge version_3 into main
2026-04-17 06:37:19 +00:00
3d91ed9bbc Update theme fonts 2026-04-17 06:37:19 +00:00
dcf001740d Update theme fonts 2026-04-17 06:37:16 +00:00
bdc82b62ce Update theme fonts 2026-04-17 06:37:16 +00:00
b52b717dab Merge version_3 into main
Merge version_3 into main
2026-04-17 06:37:11 +00:00
612963993a Update theme colors 2026-04-17 06:37:08 +00:00
34edcfa56d Merge version_2 into main
Merge version_2 into main
2026-04-17 06:34:17 +00:00
93f6663b77 Merge version_1 into main
Merge version_1 into main
2026-04-17 06:31:22 +00:00
3 changed files with 75 additions and 152 deletions

View File

@@ -7,6 +7,9 @@ import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
import { DM_Sans } from "next/font/google";
import { Open_Sans } from "next/font/google";
import { Manrope } from "next/font/google";
import { Libre_Baskerville } from "next/font/google";
@@ -21,8 +24,16 @@ export const metadata: Metadata = {
},
};
const dmSans = DM_Sans({
variable: "--font-dm-sans",
const libreBaskerville = Libre_Baskerville({
variable: "--font-libre-baskerville",
subsets: ["latin"],
weight: ["400", "700"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
@@ -34,7 +45,7 @@ export default function RootLayout({
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body className={`${dmSans.variable} antialiased`}>
<body className={`${libreBaskerville.variable} ${inter.variable} antialiased`}>
<Tag />
{children}
<script

View File

@@ -4,14 +4,13 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FeatureBorderGlow from '@/components/sections/feature/featureBorderGlow/FeatureBorderGlow';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
import HeroCarouselLogo from '@/components/sections/hero/heroCarouselLogo/HeroCarouselLogo';
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
import FooterCard from '@/components/sections/footer/FooterCard';
import HeroBillboardRotatedCarousel from '@/components/sections/hero/HeroBillboardRotatedCarousel';
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import TestimonialCardTwo from '@/components/sections/testimonial/TestimonialCardTwo';
import SocialProofOne from '@/components/sections/socialProof/SocialProofOne';
import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
import { Calendar, Flame, Layers } from "lucide-react";
import { Calendar, Flame, Layers, MapPin } from "lucide-react";
export default function LandingPage() {
return (
@@ -31,75 +30,69 @@ export default function LandingPage() {
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
navItems={[
{
name: "About", id: "about"},
{
name: "Menu", id: "menu"},
{
name: "Experiences", id: "features"},
{
name: "Contact", id: "contact"},
{ name: "About", id: "about" },
{ name: "Menu", id: "menu" },
{ name: "Philosophy", id: "features" },
{ name: "Reservations", id: "contact" },
]}
brandName="SAVOUR"
brandName="Per Se"
button={{
text: "Reserve", href: "#contact"}}
text: "Reserve", href: "https://www.google.com/maps/place/Per+Se/@40.7682178,-74.0591165,13z/data=!3m1!5s0x89c258f620dd2c59:0xca20f753fe2c35e7!4m10!1m2!2m1!1srestoran+di+dekat+new+york+amerika+serikat!3m6!1s0x89c258f62fec73a7:0x5e24118dffac8a65!8m2!3d40.7682178!4d-73.9828988!15sCipyZXN0b3JhbiBkaSBkZWthdCBuZXcgeW9yayBhbWVyaWthIHNlcmlrYXRaLCIqcmVzdG9yYW4gZGkgZGVrYXQgbmV3IHlvcmsgYW1lcmlrYSBzZXJpa2F0kgEWZmluZV9kaW5pbmdfcmVzdGF1cmFudOABAA!16zL20vMGNxdjh5?entry=ttu&g_ep=EgoyMDI2MDQxNC4wIKXMDSoASAFQAw%3D%3D" }}
/>
</div>
<div id="hero" data-section="hero">
<HeroCarouselLogo
logoText="SAVOUR"
description="Culinary Excellence Redefined. Experience the future of fine dining in Jakarta with award-winning fusion cuisine and AI-powered recommendations."
<HeroBillboardRotatedCarousel
title="Per Se"
description="Thomas Kellers acclaimed three-Michelin-starred restaurant offering an iconic fine dining experience overlooking Central Park."
background={{ variant: "sparkles-gradient" }}
buttons={[
{
text: "Reserve Now", href: "#contact"},
{
text: "Explore Menu", href: "#menu"},
{ text: "Reserve Now", href: "#contact" },
]}
slides={[
{
imageSrc: "http://img.b2bpic.net/free-photo/gourmet-seafood-dish-with-white-wine_84443-82012.jpg", imageAlt: "Culinary Art"},
{
imageSrc: "http://img.b2bpic.net/free-photo/home-interior-decorated-brown-shades_23-2151934914.jpg", imageAlt: "Luxury Interior"},
{
imageSrc: "http://img.b2bpic.net/free-photo/top-view-dining-tables-without-food_23-2150157792.jpg", imageAlt: "Wine Pairing"},
{
imageSrc: "http://img.b2bpic.net/free-photo/top-view-detox-drink-arrangement_23-2148683595.jpg", imageAlt: "Plating Detail"},
{
imageSrc: "http://img.b2bpic.net/free-photo/living-room-with-large-blue-sofa-large-coffee-table-with-large-window-that-says-room-is-decorated-with-large-plant_123827-23873.jpg", imageAlt: "Signature Cocktails"},
{
imageSrc: "http://img.b2bpic.net/free-photo/belgian-waffle-with-vanilla-ice-cream-golden-chocolate_114579-1928.jpg", imageAlt: "Gourmet Dish"},
carouselItems={[
{ id: "1", imageSrc: "https://images.unsplash.com/photo-1514362545857-3bc16c4c7d1b?auto=format&fit=crop&w=1200&q=80", imageAlt: "Elegant Fine Dining" },
{ id: "2", imageSrc: "https://images.unsplash.com/photo-1414235077428-338989a2e8c0?auto=format&fit=crop&w=1200&q=80", imageAlt: "Gourmet Cuisine" },
{ id: "3", imageSrc: "https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=1200&q=80", imageAlt: "Sophisticated Table Setting" },
{ id: "4", imageSrc: "https://images.unsplash.com/photo-1555396273-367ea4eb4db5?auto=format&fit=crop&w=1200&q=80", imageAlt: "Luxury Interior" },
{ id: "5", imageSrc: "https://images.unsplash.com/photo-1582235478144-59e21703e7e8?auto=format&fit=crop&w=1200&q=80", imageAlt: "Culinary Artistry" },
{ id: "6", imageSrc: "https://images.unsplash.com/photo-1544148103-0773bf10d330?auto=format&fit=crop&w=1200&q=80", imageAlt: "Fine Wine Selection" },
]}
/>
</div>
<div id="about" data-section="about">
<TextSplitAbout
useInvertedBackground={false}
title="Our Philosophy"
title="A Culinary Landmark"
description={[
"SAVOUR is an award-winning fine dining destination that harmonizes traditional French techniques with the vibrant, bold flavors of Indonesia.", "Our mission is to create a symphony of taste on every plate, engaging all senses in a refined atmosphere crafted for true culinary enthusiasts."]}
"Per Se is the second fine-dining restaurant by chef Thomas Keller. It features a daily nine-course tasting menu and a nine-course vegetable tasting menu, using classic French technique and the finest quality ingredients available.", "Our commitment to hospitality ensures that every guest is treated to an extraordinary culinary journey at the highest level of service."
]}
buttons={[{ text: "Reserve", href: "#contact" }]}
useInvertedBackground={false}
/>
</div>
<div id="proof" data-section="proof">
<SocialProofOne
names={["Three Michelin Stars", "James Beard Foundation Award", "The World's 50 Best Restaurants", "Forbes Five-Star Rating"]}
title="Accolades"
description="Recognized globally for culinary excellence."
textboxLayout="default"
useInvertedBackground={false}
/>
</div>
<div id="features" data-section="features">
<FeatureBorderGlow
animationType="slide-up"
textboxLayout="split"
useInvertedBackground={false}
features={[
{
icon: Flame,
title: "AI Menu Intelligence", description: "Personalized menu recommendations tailored to your unique palate profile."},
{
icon: Calendar,
title: "Real-time Reservations", description: "Seamless, instant booking experience at your fingertips, anytime."},
{
icon: Layers,
title: "Immersive Experience", description: "Atmospheric 3D dining environments with dynamic ambiance adjustments."},
{ icon: Flame, title: "Chef's Tasting", description: "A daily changing menu reflecting the finest seasonal ingredients." },
{ icon: Calendar, title: "Exceptional Service", description: "Dedicated staff providing unmatched, personalized hospitality." },
{ icon: MapPin, title: "Iconic Location", description: "Stunning views of Central Park from the heart of Manhattan." },
]}
title="The Future of Dining"
description="Innovative technology meets traditional culinary craft to elevate your dining experience to new heights."
title="Our Standards"
description="Beyond just a meal, we offer a legacy of craftsmanship and refined taste."
/>
</div>
@@ -110,118 +103,37 @@ export default function LandingPage() {
gridVariant="three-columns-all-equal-width"
useInvertedBackground={false}
products={[
{
id: "p1", name: "Wagyu A5 Tartare", price: "IDR 350,000", imageSrc: "http://img.b2bpic.net/free-photo/soft-cake-decorated-with-orangeand-chocolate-dark-table_140725-86366.jpg"},
{
id: "p2", name: "Lobster Thermidor", price: "IDR 550,000", imageSrc: "http://img.b2bpic.net/free-photo/top-view-wedding-table-arrangement_23-2150279481.jpg"},
{
id: "p3", name: "Duck Confit", price: "IDR 320,000", imageSrc: "http://img.b2bpic.net/free-photo/shrimp-plate-garnished-with-sauce-bread-stuffing-spinach-shredded-carrot_141793-2275.jpg"},
{
id: "p4", name: "Truffle Arancini", price: "IDR 120,000", imageSrc: "http://img.b2bpic.net/free-photo/close-up-fork-with-wedding-rings_23-2148242381.jpg"},
{
id: "p5", name: "Chocolate Sphere", price: "IDR 180,000", imageSrc: "http://img.b2bpic.net/free-photo/cocktail-served-crystal-glass_140725-7809.jpg"},
{
id: "p6", name: "Beef Wellington", price: "IDR 480,000", imageSrc: "http://img.b2bpic.net/free-photo/boiled-coffee-cups-sweets_140725-3711.jpg"},
{ id: "p1", name: "Oysters and Pearls", price: "Tasting Menu", imageSrc: "https://images.unsplash.com/photo-1541532713600-ca30318c3029?auto=format&fit=crop&w=800&q=80" },
{ id: "p2", name: "Butter Poached Lobster", price: "Tasting Menu", imageSrc: "https://images.unsplash.com/photo-1512621776951-a57141f2eefd?auto=format&fit=crop&w=800&q=80" },
{ id: "p3", name: "Signature Truffles", price: "Tasting Menu", imageSrc: "https://images.unsplash.com/photo-1548943487-a2e4e43b6853?auto=format&fit=crop&w=800&q=80" },
]}
title="Seasonal Curated Menu"
description="Experience hand-selected dishes crafted by our award-winning culinary team."
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardTwo
animationType="depth-3d"
textboxLayout="default"
useInvertedBackground={false}
testimonials={[
{
id: "1", name: "Michael Chen", role: "Food Critic", testimonial: "Absolutely incredible experience! The wagyu tartare was absolute perfection.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-funny-pin-up-woman-holding-cake-hands_176420-3320.jpg"},
{
id: "2", name: "Sarah Johnson", role: "Culinary Blogger", testimonial: "The best fine dining in Jakarta. The service and atmosphere were unmatched.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-brunettte-woman-chef-cooking-carrot-cake-making-fish-face-with-mouth-squinting-eyes-crazy-comical_839833-19935.jpg"},
{
id: "3", name: "James Wilson", role: "Business Executive", testimonial: "A symphony of taste and elegance. Highly recommend the fusion menu.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-man-luxury-restaurant_23-2150598346.jpg"},
{
id: "4", name: "Elena Rodriguez", role: "Art Collector", testimonial: "Art on a plate. Truly an unforgettable night of high-end gastronomy.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-couple-having-lunch-luxury-restaurant_23-2150598345.jpg"},
{
id: "5", name: "David Kim", role: "Gourmet Traveler", testimonial: "SAVOUR sets a new global standard for modern, intelligent fine dining.", imageSrc: "http://img.b2bpic.net/free-photo/classic-luxury-style-restaurant-with-tables-chairs_140725-9390.jpg"},
]}
title="Guest Testimonials"
description="What our esteemed guests are saying about their journey at SAVOUR."
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardSeven
animationType="depth-3d"
textboxLayout="default"
useInvertedBackground={false}
metrics={[
{
id: "m1", value: "15+", title: "Years of Excellence", items: [
"Established 2009", "Global standard"],
},
{
id: "m2", value: "25+", title: "Culinary Awards", items: [
"Best Fine Dining 2024", "Excellence in Service"],
},
{
id: "m3", value: "100%", title: "Customer Satisfaction", items: [
"Curated experience", "Personalized service"],
},
]}
title="Culinary Achievements"
description="Recognized for consistent innovation and service excellence globally."
title="Tasting Menu"
description="Sample the pinnacle of contemporary American-French fusion."
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
useInvertedBackground={false}
title="Reservations"
description="Secure your table for an extraordinary culinary journey at SAVOUR."
title="Inquire for Reservations"
description="Please fill out the form below to initiate your reservation inquiry. Our team will contact you shortly to confirm your booking."
inputs={[
{
name: "name", type: "text", placeholder: "Full Name", required: true,
},
{
name: "email", type: "email", placeholder: "Email Address", required: true,
},
{ name: "name", type: "text", placeholder: "Full Name", required: true },
{ name: "email", type: "email", placeholder: "Email Address", required: true },
]}
textarea={{
name: "message", placeholder: "Special requests or reservation notes...", rows: 4,
}}
imageSrc="http://img.b2bpic.net/free-photo/beautiful-castle-architecture_23-2150754910.jpg"
textarea={{ name: "message", placeholder: "Dietary restrictions or special requests...", rows: 4 }}
buttonText="Submit Inquiry"
imageSrc="https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?auto=format&fit=crop&w=1200&q=80"
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoEmphasis
columns={[
{
items: [
{
label: "About", href: "#about"},
{
label: "Menu", href: "#menu"},
{
label: "Reservations", href: "#contact"},
],
},
{
items: [
{
label: "Privacy", href: "#"},
{
label: "Terms", href: "#"},
{
label: "Careers", href: "#"},
],
},
]}
logoText="SAVOUR"
/>
<FooterCard
logoText="Per Se"
copyrightText="© 2026 | Per Se Restaurant"
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}
}

View File

@@ -11,7 +11,7 @@ html {
body {
background-color: var(--background);
color: var(--foreground);
font-family: var(--font-dm-sans), sans-serif;
font-family: var(--font-inter), sans-serif;
position: relative;
min-height: 100vh;
overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4,
h5,
h6 {
font-family: var(--font-dm-sans), sans-serif;
font-family: var(--font-libre-baskerville), serif;
}