17 Commits

Author SHA1 Message Date
37dc3e4172 Merge version_4 into main
Merge version_4 into main
2026-06-10 06:05:28 +00:00
469100d1c7 Update src/app/page.tsx 2026-06-10 06:05:25 +00:00
e20b45d976 Merge version_4 into main
Merge version_4 into main
2026-06-10 06:04:31 +00:00
639e65a434 Update src/app/services/page.tsx 2026-06-10 06:04:28 +00:00
fdccf2fddb Update src/app/page.tsx 2026-06-10 06:04:27 +00:00
8ae240b4bc Merge version_4 into main
Merge version_4 into main
2026-06-10 06:03:37 +00:00
4cafbee85b Add src/app/services/page.tsx 2026-06-10 06:03:34 +00:00
794a677652 Update src/app/page.tsx 2026-06-10 06:03:34 +00:00
508f508f15 Merge version_3 into main
Merge version_3 into main
2026-06-10 05:25:58 +00:00
16ffd73e1b Update src/app/page.tsx 2026-06-10 05:25:55 +00:00
8f5a1aeb79 Merge version_3 into main
Merge version_3 into main
2026-06-10 05:06:10 +00:00
0f4384cc0e Update src/app/page.tsx 2026-06-10 05:06:07 +00:00
cc9aaf21e2 Update src/app/layout.tsx 2026-06-10 05:06:07 +00:00
573506d981 Merge version_2 into main
Merge version_2 into main
2026-06-10 04:54:45 +00:00
44f728e57f Update src/app/styles/base.css 2026-06-10 04:54:42 +00:00
9a3996a2e8 Update src/app/page.tsx 2026-06-10 04:54:42 +00:00
b7add705ff Update src/app/layout.tsx 2026-06-10 04:54:42 +00:00
4 changed files with 316 additions and 206 deletions

View File

@@ -6,23 +6,22 @@ import "@/lib/gsap-setup";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
import { DM_Sans } from "next/font/google";
const halant = Halant({
variable: "--font-halant",
subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: 'Aether Studio | Minimalist Architecture & Design',
description: 'Discover Aether Studio, where minimalist architecture meets innovative design. We craft elegant, functional spaces that embody modern simplicity and timeless beauty.',
title: 'GRN GROUP | Ремонт и Реновация',
description: 'GRN GROUP: 20 лет опыта в строительстве и ремонтных работах. Специализируемся на комплексной реновации домов, квартир и офисов любой сложности, включая услуги под ключ. Преобразуем пространства с профессионализмом и вниманием к деталям.',
};
const dmSans = DM_Sans({
variable: "--font-dm-sans", subsets: ["latin"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
});
export default function RootLayout({
children,
}: Readonly<{
@@ -31,9 +30,7 @@ export default function RootLayout({
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${halant.variable} ${inter.variable} antialiased`}
>
<body className={`${dmSans.variable} ${inter.variable} antialiased`}>
<Tag />
{children}
<script

View File

@@ -9,203 +9,196 @@ import FeatureCardSix from "@/components/sections/feature/FeatureCardSix";
import MetricCardTwo from "@/components/sections/metrics/MetricCardTwo";
import ContactSplit from "@/components/sections/contact/ContactSplit";
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
import { MessageCircle } from "lucide-react";
export default function ArchitectureStudioPage() {
return (
<ThemeProvider
defaultButtonVariant="expand-hover"
defaultTextAnimation="reveal-blur"
borderRadius="soft"
contentWidth="smallMedium"
sizing="largeSizeMediumTitles"
background="aurora"
cardStyle="glass-elevated"
primaryButtonStyle="double-inset"
secondaryButtonStyle="solid"
headingFontWeight="bold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
brandName="Studio"
navItems={[
{ name: "Work", id: "projects" },
{ name: "Philosophy", id: "philosophy" },
{ name: "Contact", id: "contact" }
]}
button={{
text: "Inquire",
href: "contact"
}}
className="text-xs tracking-widest uppercase"
navItemClassName="text-sm font-light tracking-wide"
buttonClassName="px-6 py-2 text-sm tracking-widest uppercase"
/>
</div>
<>
<ThemeProvider
defaultButtonVariant="expand-hover"
defaultTextAnimation="reveal-blur"
borderRadius="soft"
contentWidth="smallMedium"
sizing="largeSizeMediumTitles"
background="aurora"
cardStyle="glass-elevated"
primaryButtonStyle="double-inset"
secondaryButtonStyle="solid"
headingFontWeight="bold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
brandName="GRN GROUP"
navItems={[
{ name: "Главная", id: "/" },
{ name: "Услуги", id: "/#projects" },
{ name: "Портфолио", id: "/#projects" },
{ name: "Контакты", id: "/contacts" }
]}
button={{
text: "Оставить заявку", href: "/contacts"
}}
className="text-xs tracking-widest uppercase"
/>
</div>
<div id="hero" data-section="hero">
<HeroSplit
background={{ variant: "plain" }}
title="Timeless Architecture"
description="We craft spaces that transcend trend, marrying restraint with precision. Each project is a dialogue between site, material, and intention."
imagePosition="right"
imageSrc="https://img.b2bpic.net/free-photo/minimalist-architectural-building-details_23-2151870844.jpg"
imageAlt="modern building architecture minimalist interior concrete"
buttons={[
{ text: "View Work", href: "projects" }
]}
mediaAnimation="slide-up"
className="py-24 md:py-32"
containerClassName="max-w-7xl"
titleClassName="text-5xl md:text-7xl font-light tracking-tight leading-tight"
descriptionClassName="text-sm md:text-xl font-light leading-relaxed"
buttonClassName="px-8 py-3 text-sm tracking-widest uppercase mt-2"
/>
</div>
<div id="hero" data-section="hero">
<HeroSplit
background={{ variant: "plain" }}
title="Строительство и Ремонт любой Сложности от GRN GROUP"
description="Специализируемся на высококачественном ремонте домов, квартир и офисов. От косметического обновления до комплексной перестройки под ключ, мы воплощаем ваши идеи в жизнь с точностью и профессионализмом."
imagePosition="right"
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3E4r9ou3Tp6F2ybU0Rjz0eb8Tuu/uploaded-1781068669729-9hqicbda.png"
imageAlt="modern renovated room with wooden floor"
buttons={[
{ text: "Смотреть проекты", href: "/#projects" }
]}
mediaAnimation="slide-up"
className="py-24 md:py-32"
containerClassName="max-w-7xl"
titleClassName="text-5xl md:text-7xl font-light tracking-tight leading-tight"
descriptionClassName="text-sm md:text-xl font-light leading-relaxed"
buttonClassName="px-8 py-3 text-sm tracking-widest uppercase mt-2"
/>
</div>
<div id="philosophy" data-section="philosophy">
<TextAbout
title="We believe architecture should speak quietly. Good design requires no explanation—it exists with purpose and restraint, allowing inhabitants to inhabit space without distraction. Our practice centers on understanding context, respecting material honesty, and creating timeless environments."
useInvertedBackground={false}
className="py-32 md:py-48"
containerClassName="max-w-4xl"
titleClassName="text-3xl md:text-5xl font-light leading-relaxed text-center"
/>
</div>
<div id="philosophy" data-section="philosophy">
<TextAbout
title="GRN GROUP: Ваш Надежный Партнер в Ремонте и Реновации. Мы преобразуем пространства, чтобы они не только эстетично выглядели, но и были максимально функциональны и комфортны. От детального планирования до безупречной реализации наша команда обеспечивает высочайшее качество и внимание к каждой детали."
useInvertedBackground={false}
className="py-32 md:py-48"
containerClassName="max-w-4xl"
titleClassName="text-3xl md:text-5xl font-light leading-relaxed text-center"
/>
</div>
<div id="projects" data-section="projects">
<FeatureCardSix
title="Selected Projects"
description="Recent work exploring materiality, form, and spatial integrity"
textboxLayout="default"
useInvertedBackground={true}
features={[
{
title: "Riverside Residence",
description: "A private home responding to its landscape. Concrete, glass, and timber create a dialogue between structure and nature. Site-specific design honoring the waterfront context.",
imageSrc: "https://img.b2bpic.net/free-photo/city-building-sky_23-2148107055.jpg"
},
{
title: "Corporate Headquarters",
description: "Minimal office complex emphasizing natural light and material authenticity. Steel structure with stone cladding defines a calm, focused work environment.",
imageSrc: "https://img.b2bpic.net/free-photo/imposing-building-near-smaller-black-building_23-2148252731.jpg"
},
{
title: "Urban Studio",
description: "Adaptive reuse of an industrial warehouse into creative workspace. Careful preservation of existing structure with restrained new interventions.",
imageSrc: "https://img.b2bpic.net/free-photo/concrete-structure-blue-sky_181624-5763.jpg"
},
{
title: "Botanical Pavilion",
description: "Public garden structure exploring sustainable materials and transparent design. Steel framework with living walls creates a permeable space for community gathering.",
imageSrc: "https://img.b2bpic.net/free-photo/white-facade-modern-building_181624-6180.jpg"
}
]}
className="py-32 md:py-48"
textBoxTitleClassName="text-4xl md:text-6xl font-light tracking-tight"
textBoxDescriptionClassName="text-base md:text-lg font-light"
cardTitleClassName="text-4xl md:text-5xl font-light tracking-tight mb-4"
cardDescriptionClassName="text-lg md:text-xl font-light leading-relaxed"
stepNumberClassName="mb-4"
/>
</div>
<div id="projects" data-section="projects">
<FeatureCardSix
title="Наши Проекты"
description="Ознакомьтесь с нашими недавними работами по преображению жилых и коммерческих пространств."
textboxLayout="default"
useInvertedBackground={true}
features={[
{
title: "Реновация Жилых Помещений", description: "Комплексный ремонт квартир и домов, включающий перепланировку, замену коммуникаций, отделку и дизайн-решения для создания идеального жилого пространства.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3E4r9ou3Tp6F2ybU0Rjz0eb8Tuu/uploaded-1781068888555-bktfgsxl.png"
},
{
title: "Ремонт Коммерческих Объектов", description: "Модернизация офисов, магазинов и других коммерческих пространств для повышения функциональности, эстетики и комфорта клиентов и сотрудников.", imageSrc: "https://img.b2bpic.net/free-photo/beautiful-modern-building-modern-architecture_181624-21692.jpg?id=11111843"
},
{
title: "Косметический Ремонт", description: "Быстрое и эффективное обновление интерьера: покраска, поклейка обоев, замена напольных покрытий. Идеально для быстрого преображения вашего пространства.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3E4r9ou3Tp6F2ybU0Rjz0eb8Tuu/uploaded-1781068815588-ebev6112.png"
},
{
title: "Ремонт Под Ключ", description: "Полный цикл работ от дизайн-проекта до финальной уборки. Мы берем на себя все заботы, обеспечивая безупречный результат точно в срок.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3E4r9ou3Tp6F2ybU0Rjz0eb8Tuu/uploaded-1781068769896-p5h50dhu.png"
}
]}
className="py-32 md:py-48"
textBoxTitleClassName="text-4xl md:text-6xl font-light tracking-tight"
textBoxDescriptionClassName="text-base md:text-lg font-light"
cardTitleClassName="text-4xl md:text-5xl font-light tracking-tight mb-4"
cardDescriptionClassName="text-lg md:text-xl font-light leading-relaxed"
stepNumberClassName="mb-4"
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardTwo
title="Our Practice"
description="Metrics that matter to us"
textboxLayout="default"
useInvertedBackground={false}
gridVariant="uniform-all-items-equal"
animationType="slide-up"
metrics={[
{
id: "1",
value: "18+",
description: "Years of Practice"
},
{
id: "2",
value: "120+",
description: "Completed Projects"
},
{
id: "3",
value: "4",
description: "Principal Architects"
},
{
id: "4",
value: "42",
description: "Studio Team Members"
}
]}
className="py-24 md:py-32"
textBoxTitleClassName="text-4xl md:text-6xl font-light tracking-tight"
textBoxDescriptionClassName="text-base md:text-lg font-light"
valueClassName="text-9xl md:text-7xl font-light"
metricDescriptionClassName="text-sm md:text-base font-light uppercase tracking-wide"
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardTwo
title="Наши Ключевые Показатели"
description="Более 20 лет успешной работы и тысячи довольных клиентов."
textboxLayout="default"
useInvertedBackground={false}
gridVariant="uniform-all-items-equal"
animationType="slide-up"
metrics={[
{
id: "1", value: "20+", description: "Лет на рынке"
},
{
id: "2", value: "120+", description: "Завершенных проектов"
},
{
id: "3", value: "4", description: "Ведущих специалистов"
},
{
id: "4", value: "42", description: "Членов команды"
}
]}
className="py-24 md:py-32"
textBoxTitleClassName="text-4xl md:text-6xl font-light tracking-tight"
textBoxDescriptionClassName="text-base md:text-lg font-light"
valueClassName="text-9xl md:text-7xl font-light"
metricDescriptionClassName="text-sm md:text-base font-light uppercase tracking-wide"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplit
background={{ variant: "plain" }}
tag="Get in Touch"
title="Let's Discuss Your Project"
description="We explore commissions where thoughtful design and client vision align. Tell us about your space, your aspirations, your constraints."
useInvertedBackground={true}
imageSrc="https://img.b2bpic.net/free-photo/grey-concrete-building-blue-sky_181624-6496.jpg"
imageAlt="studio workspace architects design drafting collaboration"
mediaPosition="right"
mediaAnimation="slide-up"
inputPlaceholder="your@email.com"
buttonText="Send"
termsText="We respect your inquiry. Connect with us within 48 hours."
className="py-32 md:py-48"
tagClassName="text-sm uppercase tracking-widest"
titleClassName="text-4xl md:text-5xl font-light tracking-tight leading-tight mt-4"
descriptionClassName="text-base md:text-lg font-light leading-relaxed mt-3"
buttonClassName="px-8 py-3 text-sm tracking-widest uppercase"
termsClassName="text-sm font-light mt-4"
/>
</div>
<div id="contact" data-section="contact">
<ContactSplit
background={{ variant: "plain" }}
tag="Свяжитесь с нами"
title="Начните Свой Проект Реновации"
description="Обсудите свои идеи и потребности с нашими экспертами. Мы поможем вам спланировать и реализовать ремонт вашей мечты."
useInvertedBackground={true}
imageSrc="https://img.b2bpic.net/free-photo/image-engineering-objects-workplace-top-view-construction-concept-engineering-tools-vintage-tone-retro-filter-effect-soft-focus-selective-focus_1418-714.jpg?id=1239498"
imageAlt="meeting discussion renovation plans interior design"
mediaPosition="right"
mediaAnimation="slide-up"
inputPlaceholder="ваш@email.com"
buttonText="Отправить запрос"
termsText="Мы ценим ваше обращение. Мы свяжемся с вами в течение 48 часов для обсуждения вашего проекта."
className="py-32 md:py-48"
tagClassName="text-sm uppercase tracking-widest"
titleClassName="text-4xl md:text-5xl font-light tracking-tight leading-tight mt-4"
descriptionClassName="text-base md:text-lg font-light leading-relaxed mt-3"
buttonClassName="px-8 py-3 text-sm tracking-widest uppercase"
termsClassName="text-sm font-light mt-4"
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="Studio X"
columns={[
{
title: "Studio",
items: [
{ label: "About", href: "philosophy" },
{ label: "Work", href: "projects" }
]
},
{
title: "Connect",
items: [
{ label: "hello@studiox.com", href: "#" },
{ label: "Contact", href: "contact" }
]
},
{
title: "Practice",
items: [
{ label: "Residential", href: "#" },
{ label: "Commercial", href: "#" },
{ label: "Adaptive Reuse", href: "#" }
]
}
]}
copyrightText="© 2025 Studio. Timeless architecture."
className="mt-0"
columnTitleClassName="text-base uppercase tracking-widest font-light mb-0"
columnItemClassName="text-base font-light"
copyrightTextClassName="text-sm font-light"
/>
</div>
</ReactLenis>
</ThemeProvider>
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="GRN GROUP"
columns={[
{
title: "Компания", items: [
{ label: "О нас", href: "/#philosophy" },
{ label: "Проекты", href: "/#projects" }
]
},
{
title: "Связь", items: [
{ label: "hello@grngroup.com", href: "mailto:hello@grngroup.com" },
{ label: "Контакты", href: "/contacts" }
]
},
{
title: "Услуги", items: [
{ label: "Жилые объекты", href: "/#projects" },
{ label: "Коммерческие объекты", href: "/#projects" },
{ label: "Реконструкция", href: "/#projects" },
{ label: "Ремонт под ключ", href: "/#projects" }
]
}
]}
copyrightText="© 2025 GRN GROUP. Эксперты в ремонте и реновации."
className="mt-0"
logoTextClassName="font-bold text-gold-accent"
columnTitleClassName="text-base uppercase tracking-widest font-light mb-0"
columnItemClassName="text-base font-light"
copyrightTextClassName="text-sm font-light"
/>
</div>
</ReactLenis>
</ThemeProvider>
<a
href="https://wa.me/77011234567"
target="_blank"
rel="noopener noreferrer"
className="fixed bottom-6 right-6 bg-[#25D366] text-white p-4 rounded-full shadow-lg z-50 hover:scale-105 transition-transform"
aria-label="WhatsApp"
>
<MessageCircle className="w-6 h-6" />
</a>
</>
);
}
}

120
src/app/services/page.tsx Normal file
View File

@@ -0,0 +1,120 @@
"use client";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
import MetricCardOne from "@/components/sections/metrics/MetricCardOne";
import { Home, Building, Key, PenTool, Paintbrush } from "lucide-react";
export default function ServicesPage() {
return (
<ThemeProvider
defaultButtonVariant="expand-hover"
defaultTextAnimation="reveal-blur"
borderRadius="soft"
contentWidth="smallMedium"
sizing="largeSizeMediumTitles"
background="aurora"
cardStyle="glass-elevated"
primaryButtonStyle="double-inset"
secondaryButtonStyle="solid"
headingFontWeight="bold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
brandName="GRN GROUP"
navItems={[
{ name: "Услуги", id: "/services" },
{ name: "Проекты", id: "projects" },
{ name: "О нас", id: "philosophy" },
{ name: "Контакты", id: "contact" }
]}
button={{
text: "Запрос", href: "contact"
}}
className="text-xs tracking-widest uppercase"
navItemClassName="text-sm font-light tracking-wide"
buttonClassName="px-6 py-2 text-sm tracking-widest uppercase"
/>
</div>
<div id="services" data-section="services">
<MetricCardOne
title="Наши Услуги"
description="Мы предлагаем полный спектр услуг по ремонту и реновации для жилых и коммерческих объектов."
textboxLayout="default"
useInvertedBackground={false}
gridVariant="uniform-all-items-equal"
animationType="slide-up"
metrics={[
{
id: "1", icon: Home,
title: "Ремонт квартир", description: "Качественный ремонт жилых помещений, от косметического до капитального.", value: "от 1000 руб/м²"
},
{
id: "2", icon: Building,
title: "Ремонт коммерческих помещений", description: "Профессиональный ремонт офисов, магазинов и других коммерческих объектов.", value: "от 1500 руб/м²"
},
{
id: "3", icon: Key,
title: "Ремонт под ключ", description: "Полный цикл работ от дизайн-проекта до финишной уборки.", value: "Индивидуально"
},
{
id: "4", icon: PenTool,
title: "Дизайн-проект", description: "Разработка уникальных дизайн-проектов, соответствующих вашим требованиям и бюджету.", value: "от 500 руб/м²"
},
{
id: "5", icon: Paintbrush,
title: "Отделочные работы", description: "Все виды отделочных работ, включая покраску, обои, укладку напольных покрытий.", value: "от 300 руб/м²"
}
]}
className="py-24 md:py-32"
textBoxTitleClassName="text-4xl md:text-6xl font-light tracking-tight"
textBoxDescriptionClassName="text-base md:text-lg font-light"
cardClassName="p-6 md:p-8"
valueClassName="text-3xl md:text-4xl font-semibold mt-4"
titleClassName="text-xl md:text-2xl font-medium mt-2"
descriptionClassName="text-base font-light leading-relaxed mt-2"
iconContainerClassName="p-3 rounded-full bg-primary-cta text-white"
iconClassName="w-6 h-6"
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="GRN GROUP"
columns={[
{
title: "Компания", items: [
{ label: "О нас", href: "philosophy" },
{ label: "Проекты", href: "projects" }
]
},
{
title: "Связь", items: [
{ label: "hello@grngroup.com", href: "mailto:hello@grngroup.com" },
{ label: "Контакты", href: "contact" }
]
},
{
title: "Услуги", items: [
{ label: "Жилые объекты", href: "/services" },
{ label: "Коммерческие объекты", href: "/services" },
{ label: "Реконструкция", href: "/services" },
{ label: "Ремонт под ключ", href: "/services" }
]
}
]}
copyrightText="© 2025 GRN GROUP. Эксперты в ремонте и реновации."
className="mt-0"
columnTitleClassName="text-base uppercase tracking-widest font-light mb-0"
columnItemClassName="text-base font-light"
copyrightTextClassName="text-sm font-light"
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

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