Compare commits
21 Commits
version_4
...
version_10
| Author | SHA1 | Date | |
|---|---|---|---|
| 3766bd3563 | |||
| 0b234675d8 | |||
| 0e00ae7c2d | |||
| f9f71eec41 | |||
| 6eb559bb0f | |||
| 92fb2a8008 | |||
| 0b3bf8aa21 | |||
| 09023d5756 | |||
| 43abb8e791 | |||
| dec8e97fb6 | |||
| bb4614f460 | |||
| 081247407c | |||
| 2267eff784 | |||
| 555578c127 | |||
| 45e14c3f46 | |||
| 935006000b | |||
| 5435f49fbb | |||
| 37d3b5ac45 | |||
| b46d9b1cfb | |||
| 03c5a859a0 | |||
| 234df95761 |
@@ -7,6 +7,7 @@ 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";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -20,13 +21,14 @@ export const metadata: Metadata = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const dmSans = DM_Sans({
|
|
||||||
variable: "--font-dm-sans",
|
const cormorantGaramond = Cormorant_Garamond({
|
||||||
subsets: ["latin"],
|
variable: "--font-cormorant", subsets: ["latin"],
|
||||||
|
weight: ["700"],
|
||||||
});
|
});
|
||||||
const inter = Inter({
|
const montserrat = Montserrat({
|
||||||
variable: "--font-inter",
|
variable: "--font-montserrat", subsets: ["latin"],
|
||||||
subsets: ["latin"],
|
weight: ["500"],
|
||||||
});
|
});
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
@@ -37,7 +39,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={`${cormorantGaramond.variable} ${montserrat.variable} antialiased`}>
|
||||||
<Tag />
|
<Tag />
|
||||||
{children}
|
{children}
|
||||||
<script
|
<script
|
||||||
|
|||||||
@@ -15,87 +15,94 @@ export default function LandingPage() {
|
|||||||
<ThemeProvider
|
<ThemeProvider
|
||||||
defaultButtonVariant="expand-hover"
|
defaultButtonVariant="expand-hover"
|
||||||
defaultTextAnimation="entrance-slide"
|
defaultTextAnimation="entrance-slide"
|
||||||
borderRadius="pill"
|
borderRadius="rounded"
|
||||||
contentWidth="small"
|
contentWidth="small"
|
||||||
sizing="largeSmallSizeMediumTitles"
|
sizing="largeSmallSizeMediumTitles"
|
||||||
background="none"
|
background="circleGradient"
|
||||||
cardStyle="outline"
|
cardStyle="outline"
|
||||||
primaryButtonStyle="flat"
|
primaryButtonStyle="flat"
|
||||||
secondaryButtonStyle="solid"
|
secondaryButtonStyle="solid"
|
||||||
headingFontWeight="semibold"
|
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: "The Evidence", id: "archive" },
|
{ name: "AUTHORIZED ARCHIVES", id: "archive" },
|
||||||
{ name: "The Manifesto", id: "manifesto" },
|
{ name: "ROCK VISION & ARCHITECTURE", id: "manifesto" },
|
||||||
]}
|
]}
|
||||||
brandName="ESTATE"
|
brandName="ESTATE"
|
||||||
|
className="tracking-[0.05em] uppercase font-montserrat"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="hero" data-section="hero">
|
<div id="hero" data-section="hero" className="py-10">
|
||||||
<HeroBillboardRotatedCarousel
|
<HeroBillboardRotatedCarousel
|
||||||
background={{ variant: "plain" }}
|
background={{ variant: "radial-gradient" }}
|
||||||
title="THE WINDOW TO EUROPE"
|
title="THE WINDOW TO EUROPE"
|
||||||
description="Access granted to the authorized selection. ESTATE is the preservation of rock and couture."
|
description="Request Access to the authorized selection. ESTATE is the preservation of rock and couture."
|
||||||
carouselItems={[
|
carouselItems={[
|
||||||
{ id: "1", imageSrc: "http://img.b2bpic.net/free-photo/woman-lifestyle-fashion-shoot_53876-24683.jpg", imageAlt: "Architectural detail" },
|
{ 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: "2", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-portrait-with-overexposed-moving-style_23-2149495261.jpg?_wi=1", imageAlt: "Grainy Grisha" },
|
{ 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: "3", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-punk-model-posing-studio_23-2149267474.jpg", imageAlt: "Sepia archive" },
|
{ 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: "4", imageSrc: "http://img.b2bpic.net/free-photo/view-vintage-camera_23-2150315163.jpg", imageAlt: "Architectural detail" },
|
{ 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: "5", imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-holding-old-mirror_23-2149640689.jpg", imageAlt: "Grainy Grisha" },
|
{ 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: "6", imageSrc: "http://img.b2bpic.net/free-photo/rough-concrete-wall-surface_23-2148413267.jpg", imageAlt: "Sepia architectural" },
|
{ 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" },
|
||||||
]}
|
]}
|
||||||
|
titleClassName="tracking-[-0.04em] font-black uppercase text-[clamp(3rem,8vw,10rem)]"
|
||||||
|
carouselClassName="grayscale contrast-125"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="manifesto" data-section="manifesto">
|
<div id="manifesto" data-section="manifesto" className="py-20">
|
||||||
<TextAbout
|
<TextAbout
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
tag="MANIFESTO"
|
tag="MANIFESTO"
|
||||||
title="THE VISION OF THE GRISHA"
|
title="ROCK VISION & ARCHITECTURE"
|
||||||
|
titleClassName="tracking-[0.05em] font-montserrat"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="archive" data-section="archive">
|
<div id="archive" data-section="archive" className="py-20">
|
||||||
<ProductCardOne
|
<ProductCardOne
|
||||||
textboxLayout="split-description"
|
textboxLayout="split-description"
|
||||||
gridVariant="three-columns-all-equal-width"
|
gridVariant="asymmetric-60-wide-40-narrow"
|
||||||
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: "ARCHIVE", imageSrc: "http://img.b2bpic.net/free-photo/close-up-girl-with-vintage-backpack_23-2148752408.jpg" },
|
{ 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: "002", name: "ITEM #002", price: "ARCHIVE", imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-wearing-heels_23-2149741919.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: "003", name: "ITEM #003", price: "ARCHIVE", imageSrc: "http://img.b2bpic.net/free-photo/button-warm-blue-shirt-macro-shot_169016-23219.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" },
|
||||||
]}
|
]}
|
||||||
title="THE EVIDENCE"
|
title="AUTHORIZED ARCHIVES"
|
||||||
description="Pieces from the private archive."
|
description="Pieces from the private archive."
|
||||||
|
textBoxTitleClassName="tracking-[0.05em] font-montserrat"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="faq" data-section="faq">
|
<div id="faq" data-section="faq" className="py-20">
|
||||||
<FaqSplitMedia
|
<FaqSplitMedia
|
||||||
textboxLayout="split-actions"
|
textboxLayout="split-actions"
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
title="INQUIRIES"
|
title="INQUIRIES"
|
||||||
description="Standard protocol for new members."
|
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"
|
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"
|
mediaAnimation="blur-reveal"
|
||||||
faqsAnimation="blur-reveal"
|
faqsAnimation="blur-reveal"
|
||||||
buttons={[{ text: "Apply for Access", href: "/apply" }]}
|
buttons={[{ text: "Request Access", href: "/apply" }]}
|
||||||
faqs={[
|
faqs={[
|
||||||
{ id: "q1", title: "How do I access the vault?", content: "Access is currently restricted to invite-only members." },
|
{ 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: "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: "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." },
|
|
||||||
]}
|
]}
|
||||||
|
textBoxTitleClassName="tracking-[0.05em] font-montserrat"
|
||||||
|
mediaClassName="grayscale contrast-125"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="legal" data-section="legal" style={{ backgroundColor: '#2B231F', color: '#EAE7E1', border: '1px solid #8C5638' }}>
|
<div id="legal" data-section="legal" className="py-20" style={{ backgroundColor: '#2B231F', color: '#EAE7E1' }}>
|
||||||
<LegalSection
|
<LegalSection
|
||||||
layout="section"
|
layout="section"
|
||||||
title="TERMS OF EXCLUSIVITY"
|
title="TERMS OF EXCLUSIVITY"
|
||||||
@@ -103,26 +110,20 @@ export default function LandingPage() {
|
|||||||
{ heading: "Privacy Policy", content: [{ type: "paragraph", text: "Your data is handled with the same reverence as our craft." }] },
|
{ 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." }] },
|
{ 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>
|
||||||
|
|
||||||
<div id="footer" data-section="footer" style={{ backgroundColor: '#2B231F', color: '#EAE7E1', borderTop: '1px solid #8C5638' }}>
|
<div id="footer" data-section="footer" className="py-20" style={{ backgroundColor: '#2B231F', color: '#EAE7E1' }}>
|
||||||
<FooterBaseCard
|
<FooterBaseCard
|
||||||
logoText="ESTATE"
|
logoText="ESTATE"
|
||||||
|
copyrightText="© 2025 ESTATE. All rights reserved."
|
||||||
columns={[
|
columns={[
|
||||||
{
|
{ title: "AUTHORIZED ARCHIVES", items: [{ label: "ARCHIVE I", href: "#" }, { label: "ARCHIVE II", href: "#" }] },
|
||||||
title: "ARCHIVE", items: [
|
{ title: "ROCK VISION & ARCHITECTURE", items: [{ label: "GRISHA", href: "#" }, { label: "PHILOSOPHY", href: "#" }] },
|
||||||
{ label: "Instagram", href: "https://instagram.com" },
|
|
||||||
{ label: "Vimeo", href: "#" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: "IDENTITY", items: [
|
|
||||||
{ label: "Founded by THE GRISHA", href: "#" },
|
|
||||||
{ label: "Philosophy", href: "#" },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
]}
|
]}
|
||||||
|
columnTitleClassName="tracking-[0.05em] uppercase opacity-70 font-montserrat"
|
||||||
|
columnItemClassName="tracking-[0.05em] uppercase font-montserrat"
|
||||||
/>
|
/>
|
||||||
</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-archivo), 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-archivo), serif;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,15 +10,15 @@
|
|||||||
--accent: #ffffff;
|
--accent: #ffffff;
|
||||||
--background-accent: #ffffff; */
|
--background-accent: #ffffff; */
|
||||||
|
|
||||||
--background: #2B231F;
|
--background: #1F1A17;
|
||||||
--card: #2B231F;
|
--card: #2B231F;
|
||||||
--foreground: #EAE7E1;
|
--foreground: #EAE7E1;
|
||||||
--primary-cta: #8C5638;
|
--primary-cta: #D4AF37;
|
||||||
--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: #D4AF37;
|
||||||
--background-accent: #3B332F;
|
--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