Compare commits
54 Commits
version_1
...
version_14
| Author | SHA1 | Date | |
|---|---|---|---|
| 4fe3aea202 | |||
| d6bf1c8184 | |||
| 2e168f939f | |||
| 87ff64bc35 | |||
| e02f80c91b | |||
| ecb355445f | |||
| b990be741c | |||
| b739cc160a | |||
| 15dfcbc215 | |||
| 35281024b5 | |||
| fef1dd042a | |||
| 6c534bf5cf | |||
| 137264cee8 | |||
| c1c8d403b3 | |||
| a269cf0f6c | |||
| 9c46bbf2e4 | |||
| d5c8973abd | |||
| de29fcc90d | |||
| 15ca6a404f | |||
| 5c1dd3b329 | |||
| 3766bd3563 | |||
| b9d857647b | |||
| 0b234675d8 | |||
| 0e00ae7c2d | |||
| f9f71eec41 | |||
| 6eb559bb0f | |||
| 92fb2a8008 | |||
| 0b3bf8aa21 | |||
| 09023d5756 | |||
| 43abb8e791 | |||
| dec8e97fb6 | |||
| bb4614f460 | |||
| 081247407c | |||
| 2267eff784 | |||
| 555578c127 | |||
| 45e14c3f46 | |||
| 935006000b | |||
| 5435f49fbb | |||
| 37d3b5ac45 | |||
| b46d9b1cfb | |||
| 03c5a859a0 | |||
| 234df95761 | |||
| 7d4372fd2b | |||
| 9d9c9d1d4a | |||
| 13353ecc05 | |||
| e2ac9ce464 | |||
| 99a7aa594e | |||
| c298e8b7db | |||
| 196936c960 | |||
| 563a8d10b4 | |||
| f19b405840 | |||
| 8eddb6b335 | |||
| a5571c92e2 | |||
| b225fc078b |
@@ -7,6 +7,8 @@ import { ServiceWrapper } from "@/components/ServiceWrapper";
|
|||||||
import Tag from "@/tag/Tag";
|
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 { Unbounded } from "next/font/google";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -20,13 +22,11 @@ export const metadata: Metadata = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const dmSans = DM_Sans({
|
|
||||||
variable: "--font-dm-sans",
|
|
||||||
subsets: ["latin"],
|
const unbounded = Unbounded({
|
||||||
});
|
variable: "--font-unbounded", subsets: ["latin"],
|
||||||
const inter = Inter({
|
weight: ["900"],
|
||||||
variable: "--font-inter",
|
|
||||||
subsets: ["latin"],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
@@ -37,7 +37,7 @@ export default function RootLayout({
|
|||||||
return (
|
return (
|
||||||
<html lang="en" suppressHydrationWarning>
|
<html lang="en" suppressHydrationWarning>
|
||||||
<ServiceWrapper>
|
<ServiceWrapper>
|
||||||
<body className={`${dmSans.variable} ${inter.variable} antialiased`}>
|
<body className={`${unbounded.variable} antialiased`}>
|
||||||
<Tag />
|
<Tag />
|
||||||
{children}
|
{children}
|
||||||
<script
|
<script
|
||||||
|
|||||||
129
src/app/page.tsx
129
src/app/page.tsx
@@ -2,126 +2,81 @@
|
|||||||
|
|
||||||
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="pill"
|
borderRadius="soft"
|
||||||
contentWidth="small"
|
contentWidth="mediumSmall"
|
||||||
sizing="largeSmallSizeMediumTitles"
|
sizing="largeSizeMediumTitles"
|
||||||
background="grid"
|
background="noise"
|
||||||
cardStyle="gradient-mesh"
|
cardStyle="outline"
|
||||||
primaryButtonStyle="flat"
|
primaryButtonStyle="flat"
|
||||||
secondaryButtonStyle="solid"
|
secondaryButtonStyle="glass"
|
||||||
headingFontWeight="extrabold"
|
headingFontWeight="bold"
|
||||||
>
|
>
|
||||||
<ReactLenis root>
|
<ReactLenis root>
|
||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav" className="py-10">
|
||||||
<NavbarStyleCentered
|
<NavbarStyleCentered
|
||||||
navItems={[
|
navItems={[
|
||||||
{ name: "Archive", id: "archive" },
|
{ name: "ARCHIVE", id: "archive" },
|
||||||
{ name: "Manifesto", id: "manifesto" },
|
{ name: "SYSTEM", id: "faq" },
|
||||||
]}
|
]}
|
||||||
brandName="ESTATE"
|
brandName="ESTATE"
|
||||||
|
className="tracking-[0.2em] uppercase"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="hero" data-section="hero">
|
<div id="hero" data-section="hero" className="py-10">
|
||||||
<HeroBillboardRotatedCarousel
|
<HeroBillboardRotatedCarousel
|
||||||
background={{ variant: "rotated-rays-static" }}
|
background={{ variant: "plain" }}
|
||||||
title="THE WINDOW TO EUROPE"
|
title="ESTATE: THE NEW STANDARD."
|
||||||
description="Access granted to the authorized selection. ESTATE is the preservation of rock and couture."
|
description="Curated rock-vision. Architectural silhouettes. A new archival approach to fashion."
|
||||||
|
buttons={[{ text: "EXPLORE THE COLLECTION", href: "#archive" }]}
|
||||||
carouselItems={[
|
carouselItems={[
|
||||||
{ id: "1", imageSrc: "http://img.b2bpic.net/free-photo/woman-lifestyle-fashion-shoot_53876-24683.jpg", imageAlt: "Window to Europe" },
|
{ 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", imageAlt: "European Archive" },
|
{ 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", imageAlt: "The Vision" },
|
{ 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", imageAlt: "Estate Design" },
|
{ 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", imageAlt: "Signature Look" },
|
{ 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", imageAlt: "Luxury Detail" },
|
{ id: "6", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-portrait-with-overexposed-moving-style_23-2149495261.jpg?_wi=2", imageAlt: "Portrait" },
|
||||||
]}
|
]}
|
||||||
|
titleClassName="font-bold tracking-[-0.02em] uppercase text-[clamp(3rem,8vw,8rem)] leading-[0.9]"
|
||||||
|
carouselClassName="opacity-80"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="manifesto" data-section="manifesto">
|
<div id="archive" data-section="archive" className="py-20">
|
||||||
<TextAbout
|
<ProductCardThree
|
||||||
useInvertedBackground={false}
|
|
||||||
tag="MANIFESTO"
|
|
||||||
title="THE VISION OF THE GRISHA"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="archive" data-section="archive">
|
|
||||||
<ProductCardOne
|
|
||||||
textboxLayout="split-description"
|
textboxLayout="split-description"
|
||||||
gridVariant="three-columns-all-equal-width"
|
gridVariant="four-items-2x2-equal-grid"
|
||||||
animationType="slide-up"
|
animationType="blur-reveal"
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
products={[
|
products={[
|
||||||
{ id: "001", name: "ITEM #001", price: "ARCHIVE", 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", onProductClick: () => window.location.href = '#contact' },
|
||||||
{ id: "002", name: "ITEM #002", price: "ARCHIVE", 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", onProductClick: () => window.location.href = '#contact' },
|
||||||
{ id: "003", name: "ITEM #003", price: "ARCHIVE", 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", onProductClick: () => window.location.href = '#contact' },
|
||||||
|
{ id: "p4", name: "ARCHIVAL PIECE", price: "", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-portrait-with-overexposed-moving-style_23-2149495261.jpg", onProductClick: () => window.location.href = '#contact' },
|
||||||
]}
|
]}
|
||||||
title="AUTHORIZED SELECTION"
|
title="ARCHIVAL GALLERY"
|
||||||
description="Pieces from the private archive."
|
description="High-fashion portraits meet structural forms in grain-filmed detail."
|
||||||
|
imageClassName="filter grayscale contrast-125 sepia-0 brightness-100 mix-blend-multiply opacity-90 contrast-more"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="faq" data-section="faq">
|
<div id="footer" data-section="footer" className="py-20">
|
||||||
<FaqSplitMedia
|
|
||||||
textboxLayout="default"
|
|
||||||
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"
|
|
||||||
mediaAnimation="blur-reveal"
|
|
||||||
faqsAnimation="slide-up"
|
|
||||||
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." },
|
|
||||||
{ id: "q4", title: "Are these pieces limited?", content: "Yes, every item in our archive is produced in strictly limited runs." },
|
|
||||||
{ id: "q5", title: "Can I visit the boutique?", content: "Boutique appointments are handled via private request." },
|
|
||||||
]}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="legal" data-section="legal">
|
|
||||||
<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." }] },
|
|
||||||
]}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="footer" data-section="footer">
|
|
||||||
<FooterBaseCard
|
<FooterBaseCard
|
||||||
logoText="ESTATE"
|
logoText="ESTATE FASHION HOUSE. 2026. FOUNDED BY THE GRISHA."
|
||||||
columns={[
|
columns={[
|
||||||
{
|
{ title: "NAVIGATE", items: [{ label: "LINKTREE", href: "https://linktr.ee/estate.fashion.house" }] }
|
||||||
title: "ARCHIVE", items: [
|
|
||||||
{ label: "Instagram", href: "https://instagram.com" },
|
|
||||||
{ label: "Vimeo", href: "#" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "IDENTITY", items: [
|
|
||||||
{ label: "Founded by THE GRISHA", href: "#" },
|
|
||||||
{ label: "Philosophy", href: "#" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
|
className="tracking-[0.1em] text-center uppercase"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</ReactLenis>
|
</ReactLenis>
|
||||||
|
|||||||
@@ -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-inter), 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-dm-sans), sans-serif;
|
font-family: var(--font-unbounded), serif;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,15 +10,15 @@
|
|||||||
--accent: #ffffff;
|
--accent: #ffffff;
|
||||||
--background-accent: #ffffff; */
|
--background-accent: #ffffff; */
|
||||||
|
|
||||||
--background: #EAE7E1;
|
--background: #1F1A17;
|
||||||
--card: #f3f0ea;
|
--card: #2B231F;
|
||||||
--foreground: #2B231F;
|
--foreground: #EAE7E1;
|
||||||
--primary-cta: #2B231F;
|
--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: #8C5638;
|
--accent: #8c5638;
|
||||||
--background-accent: #EAE7E1;
|
--background-accent: #2B231F;
|
||||||
|
|
||||||
/* text sizing - set by ThemeProvider */
|
/* text sizing - set by ThemeProvider */
|
||||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||||
|
|||||||
Reference in New Issue
Block a user