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,9 +9,11 @@ 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"
@@ -27,32 +29,30 @@ export default function ArchitectureStudioPage() {
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingInline
brandName="Studio"
brandName="GRN GROUP"
navItems={[
{ name: "Work", id: "projects" },
{ name: "Philosophy", id: "philosophy" },
{ name: "Contact", id: "contact" }
{ name: "Главная", id: "/" },
{ name: "Услуги", id: "/#projects" },
{ name: "Портфолио", id: "/#projects" },
{ name: "Контакты", id: "/contacts" }
]}
button={{
text: "Inquire",
href: "contact"
text: "Оставить заявку", href: "/contacts"
}}
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="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."
title="Строительство и Ремонт любой Сложности от GRN GROUP"
description="Специализируемся на высококачественном ремонте домов, квартир и офисов. От косметического обновления до комплексной перестройки под ключ, мы воплощаем ваши идеи в жизнь с точностью и профессионализмом."
imagePosition="right"
imageSrc="https://img.b2bpic.net/free-photo/minimalist-architectural-building-details_23-2151870844.jpg"
imageAlt="modern building architecture minimalist interior concrete"
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: "View Work", href: "projects" }
{ text: "Смотреть проекты", href: "/#projects" }
]}
mediaAnimation="slide-up"
className="py-24 md:py-32"
@@ -65,7 +65,7 @@ export default function ArchitectureStudioPage() {
<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."
title="GRN GROUP: Ваш Надежный Партнер в Ремонте и Реновации. Мы преобразуем пространства, чтобы они не только эстетично выглядели, но и были максимально функциональны и комфортны. От детального планирования до безупречной реализации наша команда обеспечивает высочайшее качество и внимание к каждой детали."
useInvertedBackground={false}
className="py-32 md:py-48"
containerClassName="max-w-4xl"
@@ -75,30 +75,22 @@ export default function ArchitectureStudioPage() {
<div id="projects" data-section="projects">
<FeatureCardSix
title="Selected Projects"
description="Recent work exploring materiality, form, and spatial integrity"
title="Наши Проекты"
description="Ознакомьтесь с нашими недавними работами по преображению жилых и коммерческих пространств."
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: "Реновация Жилых Помещений", description: "Комплексный ремонт квартир и домов, включающий перепланировку, замену коммуникаций, отделку и дизайн-решения для создания идеального жилого пространства.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3E4r9ou3Tp6F2ybU0Rjz0eb8Tuu/uploaded-1781068888555-bktfgsxl.png"
},
{
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: "Ремонт Коммерческих Объектов", description: "Модернизация офисов, магазинов и других коммерческих пространств для повышения функциональности, эстетики и комфорта клиентов и сотрудников.", imageSrc: "https://img.b2bpic.net/free-photo/beautiful-modern-building-modern-architecture_181624-21692.jpg?id=11111843"
},
{
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: "Косметический Ремонт", description: "Быстрое и эффективное обновление интерьера: покраска, поклейка обоев, замена напольных покрытий. Идеально для быстрого преображения вашего пространства.", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3E4r9ou3Tp6F2ybU0Rjz0eb8Tuu/uploaded-1781068815588-ebev6112.png"
},
{
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"
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"
@@ -112,32 +104,24 @@ export default function ArchitectureStudioPage() {
<div id="metrics" data-section="metrics">
<MetricCardTwo
title="Our Practice"
description="Metrics that matter to us"
title="Наши Ключевые Показатели"
description="Более 20 лет успешной работы и тысячи довольных клиентов."
textboxLayout="default"
useInvertedBackground={false}
gridVariant="uniform-all-items-equal"
animationType="slide-up"
metrics={[
{
id: "1",
value: "18+",
description: "Years of Practice"
id: "1", value: "20+", description: "Лет на рынке"
},
{
id: "2",
value: "120+",
description: "Completed Projects"
id: "2", value: "120+", description: "Завершенных проектов"
},
{
id: "3",
value: "4",
description: "Principal Architects"
id: "3", value: "4", description: "Ведущих специалистов"
},
{
id: "4",
value: "42",
description: "Studio Team Members"
id: "4", value: "42", description: "Членов команды"
}
]}
className="py-24 md:py-32"
@@ -151,17 +135,17 @@ export default function ArchitectureStudioPage() {
<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."
tag="Свяжитесь с нами"
title="Начните Свой Проект Реновации"
description="Обсудите свои идеи и потребности с нашими экспертами. Мы поможем вам спланировать и реализовать ремонт вашей мечты."
useInvertedBackground={true}
imageSrc="https://img.b2bpic.net/free-photo/grey-concrete-building-blue-sky_181624-6496.jpg"
imageAlt="studio workspace architects design drafting collaboration"
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="your@email.com"
buttonText="Send"
termsText="We respect your inquiry. Connect with us within 48 hours."
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"
@@ -173,33 +157,32 @@ export default function ArchitectureStudioPage() {
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="Studio X"
logoText="GRN GROUP"
columns={[
{
title: "Studio",
items: [
{ label: "About", href: "philosophy" },
{ label: "Work", href: "projects" }
title: "Компания", items: [
{ label: "О нас", href: "/#philosophy" },
{ label: "Проекты", href: "/#projects" }
]
},
{
title: "Connect",
items: [
{ label: "hello@studiox.com", href: "#" },
{ label: "Contact", href: "contact" }
title: "Связь", items: [
{ label: "hello@grngroup.com", href: "mailto:hello@grngroup.com" },
{ label: "Контакты", href: "/contacts" }
]
},
{
title: "Practice",
items: [
{ label: "Residential", href: "#" },
{ label: "Commercial", href: "#" },
{ label: "Adaptive Reuse", href: "#" }
title: "Услуги", items: [
{ label: "Жилые объекты", href: "/#projects" },
{ label: "Коммерческие объекты", href: "/#projects" },
{ label: "Реконструкция", href: "/#projects" },
{ label: "Ремонт под ключ", href: "/#projects" }
]
}
]}
copyrightText="© 2025 Studio. Timeless architecture."
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"
@@ -207,5 +190,15 @@ export default function ArchitectureStudioPage() {
</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;
}