27 Commits

Author SHA1 Message Date
15b0f5bfd1 Update src/app/page.tsx 2026-04-05 08:04:01 +00:00
7979c9cbf1 Merge version_14 into main
Merge version_14 into main
2026-04-05 08:01:15 +00:00
4fe3aea202 Update src/app/page.tsx 2026-04-05 08:01:12 +00:00
d6bf1c8184 Merge version_13 into main
Merge version_13 into main
2026-04-05 07:44:38 +00:00
2e168f939f Update src/app/page.tsx 2026-04-05 07:44:35 +00:00
87ff64bc35 Merge version_12 into main
Merge version_12 into main
2026-04-05 07:41:12 +00:00
e02f80c91b Update src/app/page.tsx 2026-04-05 07:41:09 +00:00
ecb355445f Merge version_12 into main
Merge version_12 into main
2026-04-05 07:40:44 +00:00
b990be741c Update src/app/page.tsx 2026-04-05 07:40:38 +00:00
b739cc160a Merge version_11 into main
Merge version_11 into main
2026-04-05 07:27:42 +00:00
15dfcbc215 Update theme colors 2026-04-05 07:27:36 +00:00
35281024b5 Merge version_11 into main
Merge version_11 into main
2026-04-05 07:22:54 +00:00
fef1dd042a Update src/app/page.tsx 2026-04-05 07:22:51 +00:00
6c534bf5cf Merge version_11 into main
Merge version_11 into main
2026-04-05 07:22:30 +00:00
137264cee8 Update src/app/page.tsx 2026-04-05 07:22:24 +00:00
c1c8d403b3 Merge version_11 into main
Merge version_11 into main
2026-04-05 07:13:15 +00:00
a269cf0f6c Update src/app/page.tsx 2026-04-05 07:13:12 +00:00
9c46bbf2e4 Merge version_11 into main
Merge version_11 into main
2026-04-05 07:12:43 +00:00
d5c8973abd Update src/app/styles/base.css 2026-04-05 07:12:40 +00:00
de29fcc90d Update src/app/page.tsx 2026-04-05 07:12:40 +00:00
15ca6a404f Update src/app/layout.tsx 2026-04-05 07:12:39 +00:00
5c1dd3b329 Merge version_10 into main
Merge version_10 into main
2026-04-05 05:39:36 +00:00
3766bd3563 Update src/app/page.tsx 2026-04-05 05:39:30 +00:00
b9d857647b Merge version_10 into main
Merge version_10 into main
2026-04-05 05:39:02 +00:00
0b234675d8 Update src/app/styles/variables.css 2026-04-05 05:38:59 +00:00
0e00ae7c2d Update src/app/page.tsx 2026-04-05 05:38:59 +00:00
f9f71eec41 Merge version_9 into main
Merge version_9 into main
2026-04-05 05:36:41 +00:00
4 changed files with 46 additions and 97 deletions

View File

@@ -8,6 +8,7 @@ import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script"; import { getVisualEditScript } from "@/utils/visual-edit-script";
import { DM_Sans } from "next/font/google"; import { DM_Sans } from "next/font/google";
import { Cormorant_Garamond, Montserrat } from "next/font/google"; import { Cormorant_Garamond, Montserrat } from "next/font/google";
import { Unbounded } from "next/font/google";
@@ -22,13 +23,10 @@ export const metadata: Metadata = {
}; };
const cormorantGaramond = Cormorant_Garamond({
variable: "--font-cormorant", subsets: ["latin"], const unbounded = Unbounded({
weight: ["700"], variable: "--font-unbounded", subsets: ["latin"],
}); weight: ["900"],
const montserrat = Montserrat({
variable: "--font-montserrat", subsets: ["latin"],
weight: ["500"],
}); });
export default function RootLayout({ export default function RootLayout({
@@ -39,7 +37,7 @@ export default function RootLayout({
return ( return (
<html lang="en" suppressHydrationWarning> <html lang="en" suppressHydrationWarning>
<ServiceWrapper> <ServiceWrapper>
<body className={`${cormorantGaramond.variable} ${montserrat.variable} antialiased`}> <body className={`${unbounded.variable} antialiased`}>
<Tag /> <Tag />
{children} {children}
<script <script

View File

@@ -2,129 +2,80 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react"; import ReactLenis from "lenis/react";
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard'; import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
import HeroBillboardRotatedCarousel from '@/components/sections/hero/HeroBillboardRotatedCarousel'; import HeroBillboardRotatedCarousel from '@/components/sections/hero/HeroBillboardRotatedCarousel';
import LegalSection from '@/components/legal/LegalSection';
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered'; import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ProductCardOne from '@/components/sections/product/ProductCardOne'; import ProductCardThree from '@/components/sections/product/ProductCardThree';
import TextAbout from '@/components/sections/about/TextAbout';
export default function LandingPage() { export default function LandingPage() {
return ( return (
<ThemeProvider <ThemeProvider
defaultButtonVariant="expand-hover" defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide" defaultTextAnimation="reveal-blur"
borderRadius="rounded" borderRadius="soft"
contentWidth="small" contentWidth="mediumSmall"
sizing="largeSmallSizeMediumTitles" sizing="largeSizeMediumTitles"
background="none" background="noise"
cardStyle="outline" cardStyle="outline"
primaryButtonStyle="flat" primaryButtonStyle="flat"
secondaryButtonStyle="solid" secondaryButtonStyle="glass"
headingFontWeight="bold" headingFontWeight="bold"
> >
<ReactLenis root> <ReactLenis root>
<div id="nav" data-section="nav" className="py-10"> <div id="nav" data-section="nav" className="py-10">
<NavbarStyleCentered <NavbarStyleCentered
navItems={[ navItems={[
{ name: "AUTHORIZED ARCHIVES", id: "archive" }, { name: "ARCHIVE", id: "archive" },
{ name: "ROCK VISION & ARCHITECTURE", id: "manifesto" }, { name: "SYSTEM", id: "faq" },
]} ]}
brandName="ESTATE" brandName="ESTATE"
className="tracking-[0.05em] uppercase font-montserrat" className="tracking-[0.2em] uppercase"
/> />
</div> </div>
<div id="hero" data-section="hero" className="py-10"> <div id="hero" data-section="hero" className="py-10">
<HeroBillboardRotatedCarousel <HeroBillboardRotatedCarousel
background={{ variant: "plain" }} background={{ variant: "plain" }}
title="THE WINDOW TO EUROPE" title="ESTATE: THE NEW STANDARD."
description="Request Access to the authorized selection. ESTATE is the preservation of rock and couture." description="Curated rock-vision. Architectural silhouettes. A new archival approach to fashion."
carouselItems={[ carouselItems={[
{ id: "1", imageSrc: "http://img.b2bpic.net/free-photo/woman-lifestyle-fashion-shoot_53876-24683.jpg?q=80&w=800&blur=10&filter=sepia", imageAlt: "Gothic portrait of THE GRISHA" }, { id: "1", imageSrc: "http://img.b2bpic.net/free-photo/woman-lifestyle-fashion-shoot_53876-24683.jpg?_wi=1", imageAlt: "Fashion portrait" },
{ id: "2", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-portrait-with-overexposed-moving-style_23-2149495261.jpg?_wi=1&q=80&w=800&blur=10&filter=grayscale", imageAlt: "Grainy Grisha" }, { id: "2", imageSrc: "http://img.b2bpic.net/free-photo/rough-concrete-wall-surface_23-2148413267.jpg?_wi=1", imageAlt: "Architectural detail" },
{ id: "3", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-punk-model-posing-studio_23-2149267474.jpg?q=80&w=800&blur=10&filter=sepia", imageAlt: "Sepia archive" }, { id: "3", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-portrait-with-overexposed-moving-style_23-2149495261.jpg?_wi=1", imageAlt: "Portrait" },
{ id: "4", imageSrc: "http://img.b2bpic.net/free-photo/view-vintage-camera_23-2150315163.jpg?q=80&w=800&blur=10&filter=grayscale", imageAlt: "Architectural detail" }, { id: "4", imageSrc: "http://img.b2bpic.net/free-photo/woman-lifestyle-fashion-shoot_53876-24683.jpg?_wi=2", imageAlt: "Fashion portrait" },
{ id: "5", imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-holding-old-mirror_23-2149640689.jpg?q=80&w=800&blur=10&filter=sepia", imageAlt: "Grainy Grisha" }, { id: "5", imageSrc: "http://img.b2bpic.net/free-photo/rough-concrete-wall-surface_23-2148413267.jpg?_wi=2", imageAlt: "Architectural detail" },
{ id: "6", imageSrc: "http://img.b2bpic.net/free-photo/rough-concrete-wall-surface_23-2148413267.jpg?q=80&w=800&blur=10&filter=grayscale", imageAlt: "Sepia architectural" }, { id: "6", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-portrait-with-overexposed-moving-style_23-2149495261.jpg?_wi=2", imageAlt: "Portrait" },
]} ]}
titleClassName="tracking-[0.05em] font-montserrat" titleClassName="font-bold tracking-[-0.02em] uppercase text-[clamp(3rem,8vw,8rem)] leading-[0.9]"
carouselClassName="grayscale contrast-125" carouselClassName="opacity-80"
/>
</div>
<div id="manifesto" data-section="manifesto" className="py-20">
<TextAbout
useInvertedBackground={false}
tag="MANIFESTO"
title="ROCK VISION & ARCHITECTURE"
titleClassName="tracking-[0.05em] font-montserrat"
/> />
</div> </div>
<div id="archive" data-section="archive" className="py-20"> <div id="archive" data-section="archive" className="py-20">
<ProductCardOne <ProductCardThree
textboxLayout="split-description" textboxLayout="split-description"
gridVariant="asymmetric-60-wide-40-narrow" gridVariant="four-items-2x2-equal-grid"
animationType="blur-reveal" animationType="blur-reveal"
useInvertedBackground={false} useInvertedBackground={false}
cardClassName="overflow-hidden"
imageClassName="filter grayscale contrast-125 brightness-75"
products={[ products={[
{ id: "001", name: "ITEM #001", price: "AUTHORIZED ARCHIVES", imageSrc: "http://img.b2bpic.net/free-photo/close-up-girl-with-vintage-backpack_23-2148752408.jpg" }, { id: "p1", name: "ARTIFACT 001", price: "", imageSrc: "http://img.b2bpic.net/free-photo/close-up-girl-with-vintage-backpack_23-2148752408.jpg" },
{ id: "002", name: "ITEM #002", price: "AUTHORIZED ARCHIVES", imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-wearing-heels_23-2149741919.jpg" }, { id: "p2", name: "THE SHELL", price: "", imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-wearing-heels_23-2149741919.jpg" },
{ id: "003", name: "ITEM #003", price: "AUTHORIZED ARCHIVES", imageSrc: "http://img.b2bpic.net/free-photo/button-warm-blue-shirt-macro-shot_169016-23219.jpg" }, { id: "p3", name: "ARCHIVAL PIECE", price: "", imageSrc: "http://img.b2bpic.net/free-photo/button-warm-blue-shirt-macro-shot_169016-23219.jpg" },
{ id: "p4", name: "ARCHIVAL PIECE", price: "", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-portrait-with-overexposed-moving-style_23-2149495261.jpg" },
]} ]}
title="AUTHORIZED ARCHIVES" title="ARCHIVAL GALLERY"
description="Pieces from the private archive." description="High-fashion portraits meet structural forms in grain-filmed detail."
textBoxTitleClassName="tracking-[0.05em] font-montserrat" imageClassName="filter grayscale contrast-125 sepia-0 brightness-100 mix-blend-multiply opacity-90 contrast-more"
/> />
</div> </div>
<div id="faq" data-section="faq" className="py-20"> <div id="footer" data-section="footer" className="py-20">
<FaqSplitMedia
textboxLayout="split-actions"
useInvertedBackground={false}
title="INQUIRIES"
description="Standard protocol for new members."
imageSrc="http://img.b2bpic.net/free-photo/young-woman-portrait-with-overexposed-moving-style_23-2149495261.jpg?_wi=2&blur=10&filter=sepia"
mediaAnimation="blur-reveal"
faqsAnimation="blur-reveal"
buttons={[{ text: "Request Access", href: "/apply" }]
}
faqs={[
{ id: "q1", title: "How do I access the vault?", content: "Access is currently restricted to invite-only members." },
{ id: "q2", title: "Is the leather ethically sourced?", content: "Every hide is vetted for quality and environmental standards." },
{ id: "q3", title: "Do you ship internationally?", content: "Shipping is available only to select European hubs." },
]}
textBoxTitleClassName="tracking-[0.05em] font-montserrat"
mediaClassName="grayscale contrast-125"
/>
</div>
<div id="legal" data-section="legal" className="py-20" style={{ backgroundColor: '#2B231F', color: '#EAE7E1' }}>
<LegalSection
layout="section"
title="TERMS OF EXCLUSIVITY"
sections={[
{ heading: "Privacy Policy", content: [{ type: "paragraph", text: "Your data is handled with the same reverence as our craft." }] },
{ heading: "Membership Terms", content: [{ type: "paragraph", text: "No sharing of credentials; strict adherence to the Grisha conduct." }] },
]}
titleClassName="tracking-[0.05em] font-montserrat"
/>
</div>
<div id="footer" data-section="footer" className="py-20" style={{ backgroundColor: '#2B231F', color: '#EAE7E1' }}>
<FooterBaseCard <FooterBaseCard
logoText="ESTATE" logoText="ESTATE FASHION HOUSE. 2026. FOUNDED BY THE GRISHA."
copyrightText="© 2025 ESTATE. All rights reserved."
columns={[ columns={[
{ title: "AUTHORIZED ARCHIVES", items: [{ label: "ARCHIVE I", href: "#" }, { label: "ARCHIVE II", href: "#" }] }, { title: "NAVIGATE", items: [{ label: "LINKTREE", href: "https://linktr.ee/estate.fashion.house" }] }
{ title: "ROCK VISION & ARCHITECTURE", items: [{ label: "GRISHA", href: "#" }, { label: "PHILOSOPHY", href: "#" }] },
]} ]}
columnTitleClassName="tracking-[0.05em] uppercase opacity-70 font-montserrat" className="tracking-[0.1em] text-center uppercase"
columnItemClassName="tracking-[0.05em] uppercase font-montserrat"
/> />
</div> </div>
</ReactLenis> </ReactLenis>

View File

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

View File

@@ -10,14 +10,14 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #1A1412; --background: #1F1A17;
--card: #1A1412; --card: #2B231F;
--foreground: #EAE7E1; --foreground: #EAE7E1;
--primary-cta: #D4AF37; --primary-cta: #8c5638;
--primary-cta-text: #EAE7E1; --primary-cta-text: #EAE7E1;
--secondary-cta: #EAE7E1; --secondary-cta: #EAE7E1;
--secondary-cta-text: #2B231F; --secondary-cta-text: #2B231F;
--accent: #D4AF37; --accent: #8c5638;
--background-accent: #2B231F; --background-accent: #2B231F;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */