24 Commits

Author SHA1 Message Date
9be4c11c00 Merge version_5 into main
Merge version_5 into main
2026-03-17 08:40:17 +00:00
c59e55a28d Update src/app/layout.tsx 2026-03-17 08:40:13 +00:00
de0cb0a72f Merge version_5 into main
Merge version_5 into main
2026-03-17 08:34:27 +00:00
beead2e265 Update src/app/page.tsx 2026-03-17 08:34:23 +00:00
133dc94e92 Merge version_5 into main
Merge version_5 into main
2026-03-17 08:33:04 +00:00
8c1e993349 Update src/app/page.tsx 2026-03-17 08:33:00 +00:00
a03ed51865 Merge version_5 into main
Merge version_5 into main
2026-03-17 08:26:56 +00:00
36db449b6b Update src/app/page.tsx 2026-03-17 08:26:52 +00:00
6410432727 Merge version_5 into main
Merge version_5 into main
2026-03-17 08:24:02 +00:00
cb57691bc9 Update src/app/page.tsx 2026-03-17 08:23:58 +00:00
c3a8945a9d Merge version_4 into main
Merge version_4 into main
2026-03-17 08:22:24 +00:00
5a9fc17b7f Update src/app/page.tsx 2026-03-17 08:22:20 +00:00
9c9e551a00 Merge version_3 into main
Merge version_3 into main
2026-03-17 08:20:17 +00:00
878ac58bc7 Update src/app/styles/variables.css 2026-03-17 08:20:13 +00:00
4647d930eb Update src/app/page.tsx 2026-03-17 08:20:12 +00:00
03755166c0 Merge version_2 into main
Merge version_2 into main
2026-03-17 08:15:40 +00:00
b6db0bd08a Update src/app/page.tsx 2026-03-17 08:15:36 +00:00
7c49dc928e Merge version_2 into main
Merge version_2 into main
2026-03-17 07:50:36 +00:00
73de6ba85d Update src/app/page.tsx 2026-03-17 07:50:32 +00:00
c8b8c1261e Merge version_1 into main
Merge version_1 into main
2026-03-17 07:46:15 +00:00
94fc406fca Merge version_1 into main
Merge version_1 into main
2026-03-17 07:43:02 +00:00
53a79bad4f Merge version_1 into main
Merge version_1 into main
2026-03-17 07:38:58 +00:00
79e5e428f1 Merge version_1 into main
Merge version_1 into main
2026-03-17 07:38:33 +00:00
2808db7e51 Merge version_1 into main
Merge version_1 into main
2026-03-17 07:38:11 +00:00
3 changed files with 28 additions and 96 deletions

View File

@@ -3,7 +3,6 @@ import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
import { DM_Sans } from "next/font/google";
@@ -27,7 +26,7 @@ export default function RootLayout({
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body className={`${dmSans.variable} antialiased`}>
<Tag />
{children}
<script
dangerouslySetInnerHTML={{

View File

@@ -5,12 +5,10 @@ import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarS
import HeroLogoBillboard from '@/components/sections/hero/HeroLogoBillboard';
import InlineImageSplitTextAbout from '@/components/sections/about/InlineImageSplitTextAbout';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import FeatureBento from '@/components/sections/feature/FeatureBento';
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import ContactCenter from '@/components/sections/contact/ContactCenter';
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
import { Award, CheckCircle, Heart, MapPin, Shield, Sparkles, Star, Users, Zap } from 'lucide-react';
import { MapPin } from 'lucide-react';
export default function LandingPage() {
return (
@@ -32,7 +30,7 @@ export default function LandingPage() {
navItems={[
{ name: "Services", id: "services" },
{ name: "About", id: "about" },
{ name: "Reviews", id: "reviews" },
{ name: "Location", id: "contact" },
{ name: "FAQ", id: "faq" }
]}
button={{ text: "Book Appointment", href: "#contact" }}
@@ -48,7 +46,7 @@ export default function LandingPage() {
{ text: "WhatsApp", href: "https://wa.me/971434071171" }
]}
background={{ variant: "plain" }}
imageSrc="http://img.b2bpic.net/free-photo/young-woman-drinking-coffee-while-sitting-bed-hotel-room_23-2149304033.jpg?_wi=1"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AT21DDEbCUKElwIvjwYyyd5jJX/uploaded-1773736258820-723nbl00.jpg"
imageAlt="Ginza Beauty Luxury Japanese Salon Interior"
mediaAnimation="blur-reveal"
buttonAnimation="slide-up"
@@ -78,84 +76,18 @@ export default function LandingPage() {
useInvertedBackground={false}
products={[
{
id: "lash-extensions", name: "Lash Extensions", price: "From AED 350", imageSrc: "http://img.b2bpic.net/free-photo/woman-with-eyelashes-extension-side-view_23-2149909207.jpg", imageAlt: "Professional Lash Extensions Service"
id: "lash-extensions", name: "Lash Extensions", price: "From AED 350", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AT21DDEbCUKElwIvjwYyyd5jJX/uploaded-1773736332501-hn800tex.jpg", imageAlt: "Professional Lash Extensions Service"
},
{
id: "japanese-nails", name: "Japanese Gel Nails", price: "From AED 280", imageSrc: "http://img.b2bpic.net/free-photo/woman-hand-with-red-manicure-two-rings-fingers-beautiful-green-palm-leaf-tropical-gray-wall_343596-3253.jpg", imageAlt: "Luxury Japanese Nail Art Service"
id: "japanese-nails", name: "Japanese Gel Nails", price: "From AED 280", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AT21DDEbCUKElwIvjwYyyd5jJX/uploaded-1773736299774-xy8c7i1t.jpg", imageAlt: "Luxury Japanese Nail Art Service"
},
{
id: "hand-care", name: "Hand & Foot Care", price: "From AED 200", imageSrc: "http://img.b2bpic.net/free-photo/close-up-manicurist-holding-nail-tool_23-2149171332.jpg", imageAlt: "Premium Hand and Foot Treatment"
id: "hand-care", name: "Pedicure", price: "From AED 200", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AT21DDEbCUKElwIvjwYyyd5jJX/uploaded-1773736373401-zowypo31.jpg", imageAlt: "Premium Hand and Foot Treatment"
}
]}
/>
</div>
<div id="features" data-section="features">
<FeatureBento
title="Why Ginza Beauty"
description="We combine traditional Japanese craftsmanship with modern techniques to deliver exceptional results."
textboxLayout="default"
useInvertedBackground={true}
animationType="slide-up"
features={[
{
title: "Authentic Japanese Techniques", description: "Precision methods rooted in Japanese beauty traditions and hospitality philosophy.", bentoComponent: "icon-info-cards", items: [
{ icon: Sparkles, label: "First in UAE", value: "Authentic" },
{ icon: Award, label: "Expert Artists", value: "Skilled" }
]
},
{
title: "Premium Quality", description: "High-end products and meticulous attention to detail in every service.", bentoComponent: "icon-info-cards", items: [
{ icon: Shield, label: "Certified", value: "Professional" },
{ icon: CheckCircle, label: "Long-lasting", value: "Results" }
]
},
{
title: "Calm & Serene", description: "A peaceful sanctuary designed for relaxation and rejuvenation.", bentoComponent: "icon-info-cards", items: [
{ icon: Zap, label: "Clean", value: "Immaculate" },
{ icon: Star, label: "Welcoming", value: "Omotenashi" }
]
},
{
title: "Exceptional Hospitality", description: "Personalized service rooted in Japanese 'Omotenashi' philosophy.", bentoComponent: "icon-info-cards", items: [
{ icon: Heart, label: "Personal", value: "Attentive" },
{ icon: Sparkles, label: "Premium", value: "Experience" }
]
},
{
title: "4.9 Google Rating", description: "Trusted by 280+ happy clients across Dubai.", bentoComponent: "icon-info-cards", items: [
{ icon: Star, label: "Highly Rated", value: "4.9★" },
{ icon: Users, label: "Happy Clients", value: "280+" }
]
},
{
title: "Long-Lasting Results", description: "Our techniques are designed for durability and natural beauty.", bentoComponent: "icon-info-cards", items: [
{ icon: CheckCircle, label: "Touch-ups", value: "Every 4w" },
{ icon: Zap, label: "Maintenance", value: "Simple" }
]
}
]}
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardFifteen
testimonial="Perfect nails and beautiful natural lashes. The attention to detail and professionalism is unmatched. The serene atmosphere makes every visit special."
rating={5}
author="Sarah Johnson"
avatars={[
{ src: "http://img.b2bpic.net/free-photo/front-view-business-woman-suit_23-2148603018.jpg", alt: "Sarah Johnson" },
{ src: "http://img.b2bpic.net/free-photo/cute-hipster-woman-taking-photos-retro-camera_176420-16727.jpg", alt: "Fatima Al Mansouri" },
{ src: "http://img.b2bpic.net/free-photo/thoughtful-business-woman-standing-with-crossed-arms_23-2148095675.jpg", alt: "Aisha Ahmed" },
{ src: "http://img.b2bpic.net/free-photo/young-blonde-woman-smiling-city_839833-7650.jpg", alt: "Hana Martinez" },
{ src: "http://img.b2bpic.net/free-photo/high-angle-modern-woman-talking-phone_23-2148415865.jpg", alt: "Emma Wilson" }
]}
ratingAnimation="slide-up"
avatarsAnimation="slide-up"
useInvertedBackground={false}
/>
</div>
<div id="faq" data-section="faq">
<FaqSplitMedia
title="Frequently Asked Questions"
@@ -164,7 +96,7 @@ export default function LandingPage() {
useInvertedBackground={true}
mediaAnimation="blur-reveal"
faqsAnimation="slide-up"
imageSrc="http://img.b2bpic.net/free-photo/young-woman-drinking-coffee-while-sitting-bed-hotel-room_23-2149304033.jpg?_wi=2"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AT21DDEbCUKElwIvjwYyyd5jJX/uploaded-1773736440356-3ts9tf95.jpg"
imageAlt="Ginza Beauty Salon FAQ"
mediaPosition="left"
faqs={[
@@ -180,9 +112,6 @@ export default function LandingPage() {
{
id: "faq-4", title: "What makes Japanese nails different?", content: "Japanese nail art emphasizes precision, minimalism, and natural beauty. Our artists use advanced techniques to create intricate designs with impeccable attention to detail."
},
{
id: "faq-5", title: "Is the salon clean and hygienic?", content: "Absolutely. We follow strict international hygiene standards. All tools are sterilized, and we maintain a pristine, serene environment for your safety and comfort."
},
{
id: "faq-6", title: "Do you offer custom color matching?", content: "Yes! We work with you to find the perfect shades and designs that match your skin tone and style preferences. Personalization is at the heart of our service."
}
@@ -191,17 +120,23 @@ export default function LandingPage() {
</div>
<div id="contact" data-section="contact">
<ContactCenter
tag="Get in Touch"
title="Visit Us Today"
description="Unit 12, First Floor, Al Barsha Mall | 23rd Street, Al Barsha 2, Dubai | Beside Al Barsha Pond Park\n\nPhone: +971 4 340 7171\nWhatsApp: Available\n\nSunThu: 10:15 AM 7:00 PM\nFriSat: 12:15 PM 9:00 PM"
<ContactSplit
tag="Al Barsha"
title="Location"
description="Address: Unit 12, First Floor, Al Barsha Mall, 23rd Street, Al Barsha 2, Dubai
Open: 9AM -
"
mediaPosition="left"
mediaAnimation="blur-reveal"
useInvertedBackground={false}
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AT21DDEbCUKElwIvjwYyyd5jJX/uploaded-1773736458342-7tiww9rq.jpg"
imageAlt="Ginza Beauty Salon Location"
background={{ variant: "plain" }}
tagIcon={MapPin}
tagAnimation="slide-up"
background={{ variant: "plain" }}
useInvertedBackground={false}
buttonText="Get In Touch"
inputPlaceholder="Enter your email"
buttonText="Book Appointment"
termsText="By booking with us, you agree to our terms and confirm your appointment details will be used to contact you."
onSubmit={() => {}}
/>
</div>
@@ -218,15 +153,13 @@ export default function LandingPage() {
},
{
title: "Company", items: [
{ label: "About Us", href: "#about" },
{ label: "Why Ginza Beauty", href: "#features" },
{ label: "Reviews", href: "#testimonials" }
{ label: "About Us", href: "#about" }
]
},
{
title: "Support", items: [
{ label: "FAQ", href: "#faq" },
{ label: "Contact Us", href: "#contact" },
{ label: "Location", href: "#contact" },
{ label: "Aftercare Guide", href: "#" }
]
},

View File

@@ -13,12 +13,12 @@
--background: #fffafa;
--card: #fff7f7;
--foreground: #1a0000;
--primary-cta: #e63946;
--primary-cta: #ebb4ba;
--primary-cta-text: #fffafa;
--secondary-cta: #ffffff;
--secondary-cta-text: #1a0000;
--accent: #f5c4c7;
--background-accent: #f09199;
--accent: #ebb4ba;
--background-accent: #ebb4ba;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);