22 Commits

Author SHA1 Message Date
f203e2ae8d Merge version_3 into main
Merge version_3 into main
2026-03-06 18:24:38 +00:00
95ad1845bf Update src/app/page.tsx 2026-03-06 18:24:34 +00:00
43d6481036 Update src/app/layout.tsx 2026-03-06 18:24:34 +00:00
5dba1c9de3 Merge version_2 into main
Merge version_2 into main
2026-03-06 18:22:22 +00:00
30786f2c93 Update theme colors 2026-03-06 18:22:15 +00:00
5486a28faa Merge version_2 into main
Merge version_2 into main
2026-03-06 18:21:52 +00:00
b375ef5492 Update theme colors 2026-03-06 18:21:46 +00:00
935e926846 Merge version_2 into main
Merge version_2 into main
2026-03-06 18:21:36 +00:00
45067af6c1 Update theme colors 2026-03-06 18:21:30 +00:00
7864920823 Merge version_2 into main
Merge version_2 into main
2026-03-06 15:00:02 +00:00
beaa711a38 Update src/app/terms/page.tsx 2026-03-06 14:59:57 +00:00
d09ce5258e Update src/app/page.tsx 2026-03-06 14:59:57 +00:00
8b13d3206f Merge version_2 into main
Merge version_2 into main
2026-03-06 14:58:21 +00:00
a2747d3a5c Add src/app/terms/page.tsx 2026-03-06 14:58:16 +00:00
b8e5d947de Update src/app/page.tsx 2026-03-06 14:58:16 +00:00
fba8182342 Update src/app/layout.tsx 2026-03-06 14:58:15 +00:00
ed09a00840 Merge version_1 into main
Merge version_1 into main
2026-03-06 14:48:26 +00:00
fe9215f3b4 Merge version_1 into main
Merge version_1 into main
2026-03-06 14:48:09 +00:00
9663cade70 Merge version_1 into main
Merge version_1 into main
2026-03-06 14:45:54 +00:00
6b444ecac0 Merge version_1 into main
Merge version_1 into main
2026-03-06 14:44:13 +00:00
3c59cbd77d Merge version_1 into main
Merge version_1 into main
2026-03-06 14:43:28 +00:00
cccf742d87 Merge version_1 into main
Merge version_1 into main
2026-03-06 14:42:10 +00:00
4 changed files with 203 additions and 84 deletions

View File

@@ -1,57 +1,20 @@
import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import { Mulish } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const halant = Halant({
variable: "--font-halant", subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
});
const mulish = Mulish({
variable: "--font-mulish", subsets: ["latin"],
});
const inter = Inter({ subsets: ["latin"] });
export const metadata: Metadata = {
title: "Sakura Beauty Perth Authentic Korean & Japanese Cosmetics", description: "Perth's trusted destination for authentic Korean & Japanese skincare and beauty products. Curated K-beauty and J-beauty brands. Visit us in Northbridge today. 4.6⭐ rated.", keywords: "Korean skincare Perth, Japanese cosmetics Perth, K-beauty Perth, J-beauty Australia, authentic Korean products, COSRX Perth, Laneige Perth", metadataBase: new URL("https://sakurabeauty.com.au"),
alternates: {
canonical: "https://sakurabeauty.com.au"},
openGraph: {
title: "Sakura Beauty Perth Authentic Korean & Japanese Cosmetics", description: "Discover curated authentic Korean and Japanese beauty products at Sakura Beauty in Northbridge, Perth. Expert guidance for all skin types.", url: "https://sakurabeauty.com.au", siteName: "Sakura Beauty", type: "website", images: [
{
url: "http://img.b2bpic.net/free-photo/composition-bathroom-spa-objects_23-2147999920.jpg", alt: "Sakura Beauty premium skincare products"},
],
},
twitter: {
card: "summary_large_image", title: "Sakura Beauty Perth Korean & Japanese Beauty", description: "Authentic K-beauty & J-beauty in Northbridge. Visit us today.", images: ["http://img.b2bpic.net/free-photo/composition-bathroom-spa-objects_23-2147999920.jpg"],
},
robots: {
index: true,
follow: true,
},
};
title: "Sakura Beauty - Perth's Premium Korean & Japanese Beauty Store", description: "Discover authentic Korean and Japanese skincare, makeup & beauty products at Sakura Beauty in Northbridge, Perth. Expert staff, verified authentic products, and viral K-beauty trends."};
export default function RootLayout({
children,
}: Readonly<{
}: {
children: React.ReactNode;
}>) {
}) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${halant.variable} ${inter.variable} ${mulish.variable} antialiased`}
>
<Tag />
{children}
<html lang="en">
<body className={inter.className}>{children}
<script
dangerouslySetInnerHTML={{
__html: `
@@ -1419,7 +1382,6 @@ export default function RootLayout({
}}
/>
</body>
</ServiceWrapper>
</html>
);
}

View File

@@ -9,8 +9,8 @@ import SocialProofOne from "@/components/sections/socialProof/SocialProofOne";
import TextSplitAbout from "@/components/sections/about/TextSplitAbout";
import FeatureBorderGlow from "@/components/sections/feature/featureBorderGlow/FeatureBorderGlow";
import MetricCardEleven from "@/components/sections/metrics/MetricCardEleven";
import ContactSplitForm from "@/components/sections/contact/ContactSplitForm";
import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal";
import ContactCenter from "@/components/sections/contact/ContactCenter";
import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
export default function LandingPage() {
return (
@@ -35,7 +35,7 @@ export default function LandingPage() {
{ name: "Store", id: "store" },
{ name: "Contact", id: "contact" },
]}
button={{ text: "Call Now", href: "tel:+61898765432" }}
button={{ text: "Book Skin Consultation", href: "tel:+61898765432" }}
/>
</div>
@@ -59,7 +59,7 @@ export default function LandingPage() {
rating={5}
ratingText="4.6⭐ Rated by 145 loving customers"
buttons={[
{ text: "Call Now", href: "tel:+61898765432" },
{ text: "Book Skin Consultation", href: "tel:+61898765432" },
{ text: "Get Directions", href: "https://maps.google.com/?q=1%2F369+William+St,+Perth+WA+6000" },
]}
buttonAnimation="slide-up"
@@ -201,39 +201,27 @@ export default function LandingPage() {
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
title="Ask Our Beauty Experts"
description="Have questions about specific products, skin concerns, or Korean/Japanese beauty trends? Fill out the form below and our team will get back to you within 24 hours."
inputs={[
{
name: "name", type: "text", placeholder: "Your Name", required: true,
},
{
name: "email", type: "email", placeholder: "Email Address", required: true,
},
{
name: "phone", type: "tel", placeholder: "Phone Number", required: true,
},
]}
textarea={{
name: "message", placeholder: "Tell us about your skin concerns or the products you're interested in...", rows: 5,
required: true,
}}
buttonText="Send Message"
<ContactCenter
title="Get in Touch"
description="Have questions? Our team is here to help you find the perfect products for your skin."
tag="Contact Us"
background={{ variant: "plain" }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/leaf-candles-bath-products-with-copy-space_23-2148366062.jpg"
imageAlt="Beauty skincare consultation"
mediaAnimation="slide-up"
mediaPosition="right"
ariaLabel="Contact form to reach our beauty experts"
ariaLabel="Contact information"
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoReveal
<FooterLogoEmphasis
logoText="Sakura Beauty"
leftLink={{ text: "Privacy Policy", href: "#" }}
rightLink={{ text: "Terms of Service", href: "#" }}
columns={[
{
items: [
{ label: "Privacy Policy", href: "/privacy" },
{ label: "Terms of Service", href: "/terms" }
]
}
]}
ariaLabel="Site footer"
/>
</div>

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #f7f6f7;
--card: #ffffff;
--foreground: #250c0d;
--primary-cta: #b82b40;
--primary-cta-text: #f7f6f7;
--secondary-cta: #ffffff;
--secondary-cta-text: #250c0d;
--accent: #b90941;
--background-accent: #e8a8b6;
--background: #f6f0e9;
--card: #efe7dd;
--foreground: #2b180a;
--primary-cta: #2b180a;
--primary-cta-text: #f6f0e9;
--secondary-cta: #efe7dd;
--secondary-cta-text: #2b180a;
--accent: #94877c;
--background-accent: #afa094;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);

169
src/app/terms/page.tsx Normal file
View File

@@ -0,0 +1,169 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import LegalSection from "@/components/legal/LegalSection";
import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
export default function TermsOfServicePage() {
return (
<ThemeProvider
defaultButtonVariant="icon-arrow"
defaultTextAnimation="reveal-blur"
borderRadius="pill"
contentWidth="smallMedium"
sizing="mediumSizeLargeTitles"
background="blurBottom"
cardStyle="subtle-shadow"
primaryButtonStyle="shadow"
secondaryButtonStyle="glass"
headingFontWeight="semibold"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Sakura Beauty"
navItems={[
{ name: "Brands", id: "brands" },
{ name: "About", id: "about" },
{ name: "Store", id: "store" },
{ name: "Contact", id: "contact" },
]}
button={{ text: "Call Now", href: "tel:+61898765432" }}
/>
</div>
<div id="terms" data-section="terms">
<LegalSection
layout="page"
title="Terms of Service"
subtitle="Last updated: January 15, 2025"
sections={[
{
heading: "1. Agreement to Terms", content: [
{
type: "paragraph", text: "By accessing and using Sakura Beauty's website and services, you agree to be bound by these Terms of Service. If you do not agree to abide by the above, please do not use this service."
},
{
type: "paragraph", text: "These terms and conditions apply to all pages of the Sakura Beauty website and to all content, services, and products available through the website, including but not limited to online store services, product information, and customer support."
}
]
},
{
heading: "2. Use License", content: [
{
type: "paragraph", text: "Permission is granted to temporarily download one copy of the materials (information or software) on Sakura Beauty's website for personal, non-commercial transitory viewing only. This is the grant of a license, not a transfer of title, and under this license you may not:"
},
{
type: "list", items: [
"Modify or copy the materials", "Use the materials for any commercial purpose, or for any public display (commercial or non-commercial)", "Attempt to decompile or reverse engineer any software contained on Sakura Beauty's website", "Remove any copyright or other proprietary notations from the materials", "Transfer the materials to another person or 'mirror' the materials on any other server"
]
}
]
},
{
heading: "3. Product Information and Availability", content: [
{
type: "paragraph", text: "All products listed on our website are subject to availability. We make every effort to keep our product information accurate. However, Sakura Beauty does not warrant that product descriptions, pricing, or other content on our website is accurate, complete, reliable, current, or error-free."
},
{
type: "paragraph", text: "We reserve the right to limit quantities, refuse orders, or cancel orders at our discretion. All products are guaranteed to be 100% authentic Korean and Japanese beauty products."
}
]
},
{
heading: "4. Pricing and Payment", content: [
{
type: "paragraph", text: "All prices are subject to change without notice. Sakura Beauty reserves the right to limit quantities of products."
},
{
type: "paragraph", text: "We accept various payment methods for your convenience. Payment must be received before orders are processed, unless otherwise agreed upon."
}
]
},
{
heading: "5. Refunds and Returns", content: [
{
type: "paragraph", text: "We want you to be completely satisfied with your purchase. If you are not satisfied with a product, please contact us within 14 days of purchase."
},
{
type: "list", items: [
"Products must be unused and in original packaging", "Proof of purchase is required", "Refunds will be processed within 7-10 business days", "Original shipping costs are non-refundable", "Damaged items should be reported immediately with photographic evidence"
]
}
]
},
{
heading: "6. Disclaimer of Warranties", content: [
{
type: "paragraph", text: "The materials on Sakura Beauty's website are provided on an 'as is' basis. Sakura Beauty makes no warranties, expressed or implied, and hereby disclaims and negates all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property or other violation of rights."
}
]
},
{
heading: "7. Limitations of Liability", content: [
{
type: "paragraph", text: "In no event shall Sakura Beauty or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on Sakura Beauty's website, even if Sakura Beauty or a Sakura Beauty authorized representative has been notified orally or in writing of the possibility of such damage."
}
]
},
{
heading: "8. Accuracy of Materials", content: [
{
type: "paragraph", text: "The materials appearing on Sakura Beauty's website could include technical, typographical, or photographic errors. Sakura Beauty does not warrant that any of the materials on its website are accurate, complete, or current. Sakura Beauty may make changes to the materials contained on its website at any time without notice."
}
]
},
{
heading: "9. Links", content: [
{
type: "paragraph", text: "Sakura Beauty has not reviewed all of the sites linked to its website and is not responsible for the contents of any such linked site. The inclusion of any link does not imply endorsement by Sakura Beauty of the site. Use of any such linked website is at the user's own risk."
}
]
},
{
heading: "10. Modifications to Terms of Service", content: [
{
type: "paragraph", text: "Sakura Beauty may revise these terms of service for its website at any time without notice. By using this website, you are agreeing to be bound by the then current version of these terms of service."
}
]
},
{
heading: "11. Governing Law", content: [
{
type: "paragraph", text: "These terms and conditions are governed by and construed in accordance with the laws of Western Australia, and you irrevocably submit to the exclusive jurisdiction of the courts and venues located in Western Australia."
}
]
},
{
heading: "12. Contact Information", content: [
{
type: "paragraph", text: "If you have any questions about these Terms of Service, please contact us at:"
},
{
type: "list", items: [
"Email: hello@sakurabeauty.com", "Phone: +61 8 9876 5432", "Address: 1/369 William Street, Northbridge WA 6000"
]
}
]
}
]}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoText="Sakura Beauty"
columns={[
{
items: [
{ label: "Privacy Policy", href: "/privacy" },
{ label: "Terms of Service", href: "/terms" }
]
}
]}
ariaLabel="Site footer"
/>
</div>
</ThemeProvider>
);
}