10 Commits

Author SHA1 Message Date
8f68d40397 Merge version_4 into main
Merge version_4 into main
2026-06-03 12:09:43 +00:00
13f7ade5fc Update src/app/page.tsx 2026-06-03 12:09:37 +00:00
2aa84b7576 Merge version_3 into main
Merge version_3 into main
2026-06-03 12:05:11 +00:00
486122a6d5 Update src/app/styles/variables.css 2026-06-03 12:05:05 +00:00
6726b2494a Update src/app/styles/base.css 2026-06-03 12:05:05 +00:00
2eab5beb00 Update src/app/page.tsx 2026-06-03 12:05:04 +00:00
ecaf7c1c97 Update src/app/layout.tsx 2026-06-03 12:05:04 +00:00
3226bc44eb Merge version_2 into main
Merge version_2 into main
2026-06-03 11:58:32 +00:00
2cd8dcff34 Update src/app/page.tsx 2026-06-03 11:58:29 +00:00
9db8bae460 Merge version_1 into main
Merge version_1 into main
2026-06-03 11:55:02 +00:00
4 changed files with 52 additions and 59 deletions

View File

@@ -1,13 +1,13 @@
import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import "./globals.css";
import "@/lib/gsap-setup";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Manrope } from "next/font/google";
import { DM_Sans } from "next/font/google";
import { Libre_Baskerville } from "next/font/google";
@@ -16,23 +16,15 @@ export const metadata: Metadata = {
description: 'Experience premium haircuts, beard trims, and wet shaves at Nordkrone Barbershop. Blending Scandinavian design with timeless grooming artistry in Stockholm.',
keywords: ["barbershop, luxury, grooming, haircut, beard trim, wet shave, Stockholm, premium, Scandinavian, style"],
openGraph: {
"title": "Nordkrone Barbershop | Luxury Grooming & Style",
"description": "Experience premium haircuts, beard trims, and wet shaves at Nordkrone Barbershop. Blending Scandinavian design with timeless grooming artistry in Stockholm.",
"url": "https://www.nordkrone.com",
"siteName": "Nordkrone Barbershop",
"images": [
"title": "Nordkrone Barbershop | Luxury Grooming & Style", "description": "Experience premium haircuts, beard trims, and wet shaves at Nordkrone Barbershop. Blending Scandinavian design with timeless grooming artistry in Stockholm.", "url": "https://www.nordkrone.com", "siteName": "Nordkrone Barbershop", "images": [
{
"url": "http://img.b2bpic.net/free-photo/sensual-glamour-portrait-beautiful-woman-model-with-fresh-daily-makeup-with-dark-red-lips-color-clean-healthy-skin-face-studio-lights_158538-14326.jpg",
"alt": "Luxurious barbershop interior"
"url": "http://img.b2bpic.net/free-photo/sensual-glamour-portrait-beautiful-woman-model-with-fresh-daily-makeup-with-dark-red-lips-color-clean-healthy-skin-face-studio-lights_158538-14326.jpg", "alt": "Luxurious barbershop interior"
}
],
"type": "website"
},
twitter: {
"card": "summary_large_image",
"title": "Nordkrone Barbershop | Luxury Grooming & Style",
"description": "Experience premium haircuts, beard trims, and wet shaves at Nordkrone Barbershop. Blending Scandinavian design with timeless grooming artistry in Stockholm.",
"images": [
"card": "summary_large_image", "title": "Nordkrone Barbershop | Luxury Grooming & Style", "description": "Experience premium haircuts, beard trims, and wet shaves at Nordkrone Barbershop. Blending Scandinavian design with timeless grooming artistry in Stockholm.", "images": [
"http://img.b2bpic.net/free-photo/sensual-glamour-portrait-beautiful-woman-model-with-fresh-daily-makeup-with-dark-red-lips-color-clean-healthy-skin-face-studio-lights_158538-14326.jpg"
]
},
@@ -42,13 +34,13 @@ export const metadata: Metadata = {
},
};
const manrope = Manrope({
variable: "--font-manrope",
subsets: ["latin"],
const libreBaskerville = Libre_Baskerville({
variable: "--font-libre-baskerville", subsets: ["latin"],
weight: ["400", "700"],
});
const dmSans = DM_Sans({
variable: "--font-dm-sans",
subsets: ["latin"],
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
});
export default function RootLayout({
@@ -59,7 +51,7 @@ export default function RootLayout({
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body className={`${manrope.variable} ${dmSans.variable} antialiased`}>
<body className={`${libreBaskerville.variable} ${inter.variable} antialiased`}>
<Tag />
{children}
<script
@@ -71,4 +63,4 @@ export default function RootLayout({
</ServiceWrapper>
</html>
);
}
}

View File

@@ -2,7 +2,7 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import ContactCTA from '@/components/sections/contact/ContactCTA';
import ContactSplit from '@/components/sections/contact/ContactSplit';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeatureCardSeven from '@/components/sections/feature/FeatureCardSeven';
import FooterBase from '@/components/sections/footer/FooterBase';
@@ -62,7 +62,7 @@ export default function LandingPage() {
background={{
variant: "radial-gradient"}}
logoText="Nordkrone Barbershop"
description="The Art of Refined Grooming. Experience the Nordkrone difference, where tradition meets modern elegance. \\n\\n4.9 ★ Rating across 500+ reviews | 3,200+ Satisfied Clients | 15+ Years of Craftsmanship."
description="The Art of Refined Grooming. Experience the Nordkrone difference, where tradition meets modern elegance. \n\n4.9 ★ Rating across 500+ reviews | 3,200+ Satisfied Clients | 15+ Years of Craftsmanship."
buttons={[
{
text: "Book an Appointment", href: "#contact"},
@@ -117,17 +117,17 @@ export default function LandingPage() {
useInvertedBackground={true}
features={[
{
title: "Classic Haircut", description: "Precision cut and style with a hot towel finish. $60 (45 min)", imageSrc: "http://img.b2bpic.net/free-photo/male-self-care-setting-still-life_23-2150326549.jpg", imageAlt: "Classic haircut tools"},
title: "Classic Haircut", description: "Precision cut and style with a hot towel finish. 600 NOK (45 min)", imageSrc: "http://img.b2bpic.net/free-photo/male-self-care-setting-still-life_23-2150326549.jpg", imageAlt: "Classic haircut tools"},
{
title: "Beard Trim & Shape", description: "Expert beard grooming, line-up, and conditioning. $40 (30 min)", imageSrc: "http://img.b2bpic.net/free-photo/professional-hairdresser-modeling-beard-barbershop-close-up-photo_613910-18583.jpg", imageAlt: "Man getting beard trim"},
title: "Beard Trim & Shape", description: "Expert beard grooming, line-up, and conditioning. 400 NOK (30 min)", imageSrc: "http://img.b2bpic.net/free-photo/professional-hairdresser-modeling-beard-barbershop-close-up-photo_613910-18583.jpg", imageAlt: "Man getting beard trim"},
{
title: "Royal Wet Shave", description: "Traditional straight razor shave, hot lather, and facial massage. $75 (60 min)", imageSrc: "http://img.b2bpic.net/free-photo/razor-shaving-brush-folded-napkin-near-wooden-bowl-with-foam-against-blue-background_23-2148088325.jpg", imageAlt: "Traditional wet shave"},
title: "Royal Wet Shave", description: "Traditional straight razor shave, hot lather, and facial massage. 750 NOK (60 min)", imageSrc: "http://img.b2bpic.net/free-photo/razor-shaving-brush-folded-napkin-near-wooden-bowl-with-foam-against-blue-background_23-2148088325.jpg", imageAlt: "Traditional wet shave"},
{
title: "Hair & Beard Combo", description: "Full haircut and comprehensive beard service. $95 (75 min)", imageSrc: "http://img.b2bpic.net/free-photo/front-view-man-shaving-his-beard_23-2148506239.jpg", imageAlt: "Hair and beard grooming"},
title: "Hair & Beard Combo", description: "Full haircut and comprehensive beard service. 950 NOK (75 min)", imageSrc: "http://img.b2bpic.net/free-photo/front-view-man-shaving-his-beard_23-2148506239.jpg", imageAlt: "Hair and beard grooming"},
{
title: "Youth Haircut", description: "Stylish cuts for our younger clientele (under 12). $45 (30 min)", imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-man-with-backpack-his-back_158595-3453.jpg", imageAlt: "Youth haircut"},
title: "Youth Haircut", description: "Stylish cuts for our younger clientele (under 12). 450 NOK (30 min)", imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-man-with-backpack-his-back_158595-3453.jpg", imageAlt: "Youth haircut"},
{
title: "Head Shave", description: "Close, clean head shave with a soothing finish. $65 (45 min)", imageSrc: "http://img.b2bpic.net/free-photo/handsome-man-with-beard-closed-eyes-barbershop-closeup_1153-9484.jpg", imageAlt: "Man getting head shave"},
title: "Head Shave", description: "Close, clean head shave with a soothing finish. 650 NOK (45 min)", imageSrc: "http://img.b2bpic.net/free-photo/handsome-man-with-beard-closed-eyes-barbershop-closeup_1153-9484.jpg", imageAlt: "Man getting head shave"},
]}
title="Our Signature Services"
description="Discover our range of meticulously crafted grooming experiences."
@@ -141,19 +141,19 @@ export default function LandingPage() {
useInvertedBackground={false}
plans={[
{
id: "cut", title: "The Crown Cut", price: "$60", period: "/ visit", features: [
id: "cut", title: "The Crown Cut", price: "600 NOK", period: "/ visit", features: [
"Precision Cut & Style", "Hot Towel Finish", "Neck Shave", "Hair Wash & Conditioning"],
button: {
text: "Book Now", href: "#contact"},
imageSrc: "http://img.b2bpic.net/free-photo/top-view-male-self-care-setting-still-life_23-2150326550.jpg", imageAlt: "The Crown Cut service"},
{
id: "combo", title: "The Royal Treatment", price: "$95", period: "/ visit", features: [
id: "combo", title: "The Royal Treatment", price: "950 NOK", period: "/ visit", features: [
"Includes The Crown Cut", "Expert Beard Trim", "Hot Lather & Straight Razor Line Up", "Facial Steaming & Moisturize"],
button: {
text: "Book Now", href: "#contact"},
imageSrc: "http://img.b2bpic.net/free-photo/professional-barber-with-shave-brush-old-male-client_23-2148181929.jpg", imageAlt: "The Royal Treatment service"},
{
id: "shave", title: "Nordic Wet Shave", price: "$75", period: "/ visit", features: [
id: "shave", title: "Nordic Wet Shave", price: "750 NOK", period: "/ visit", features: [
"Traditional Straight Razor Shave", "Pre-Shave Oil Application", "Hot Lather & Cold Towel", "Post-Shave Balm"],
button: {
text: "Book Now", href: "#contact"},
@@ -237,19 +237,20 @@ export default function LandingPage() {
</div>
<div id="contact" data-section="contact">
<ContactCTA
useInvertedBackground={false}
<ContactSplit
tag="Book Your Visit"
title="Schedule Your Premium Grooming Experience"
description="Connect with us for your next premium grooming experience. We look forward to welcoming you!\n\n**Address:** Bogstadveien 24, 0355 Oslo\n**Phone:** +47 22 44 88 00\n**Email:** booking@nordkrone.no\n**Hours:** Mon-Fri: 9AM-7PM, Sat: 10AM-6PM"
background={{
variant: "sparkles-gradient"}}
tag="Connect with Us"
title="Your Next Appointment Awaits"
description="Visit us, call us, or book your next premium grooming experience using the form below. We look forward to welcoming you.\\n\\n**Address:** Storgatan 1, 111 45 Stockholm\\n**Hours:** Mon-Fri: 9AM-7PM, Sat: 10AM-6PM\\n**Booking:** Use the form for service, barber, date & time preference."
buttons={[
{
text: "Call Us: +123 456 7890", href: "tel:+1234567890"},
{
text: "Get Directions", href: "https://maps.google.com/?q=Nordkrone+Barbershop"},
]}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/stylish-barbershop-interior-with-vintage-chairs_23-2148496417.jpg"
imageAlt="Stylish barbershop interior"
mediaAnimation="opacity"
mediaPosition="right"
inputPlaceholder="Your Name, Email, and Preferred Service"
buttonText="Submit Booking Request"
onSubmit={(email: string) => console.log('Booking inquiry submitted:', email)}
/>
</div>
@@ -283,11 +284,11 @@ export default function LandingPage() {
{
label: "Book Now", href: "#contact"},
{
label: "Storgatan 1, Stockholm", href: "https://maps.google.com/?q=Nordkrone+Barbershop"},
label: "Bogstadveien 24, 0355 Oslo", href: "https://maps.google.com/?q=Bogstadveien%2024%2C%200355%20Oslo"},
{
label: "+123 456 7890", href: "tel:+1234567890"},
label: "+47 22 44 88 00", href: "tel:+4722448800"},
{
label: "info@nordkrone.com", href: "mailto:info@nordkrone.com"},
label: "booking@nordkrone.no", href: "mailto:booking@nordkrone.no"},
],
},
]}
@@ -298,4 +299,4 @@ export default function LandingPage() {
</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-var(--font-libre-baskerville), serif), sans-serif;
position: relative;
min-height: 100vh;
overscroll-behavior: none;
@@ -24,5 +24,5 @@ h3,
h4,
h5,
h6 {
font-family: var(--font-manrope), sans-serif;
font-family: var(--font-var(--font-libre-baskerville), serif), sans-serif;
}

View File

@@ -10,15 +10,15 @@
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #0a0a0a;
--card: #1a1a1a;
--foreground: #f5f5f5;
--primary-cta: #ffdf7d;
--primary-cta-text: #0a0a0a;
--secondary-cta: #1a1a1a;
--secondary-cta-text: #ffffff;
--accent: #b8860b;
--background-accent: #8b6914;
--background: #0D0D0D;
--card: #1A1A1A;
--foreground: #F0F0F0;
--primary-cta: #B49A67;
--primary-cta-text: #000000;
--secondary-cta: #3A3A3A;
--secondary-cta-text: #1a1a1a;
--accent: #D4AF37;
--background-accent: #242424;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);