From 901829923eb268c140dbe39b40dc5e6cc461e37c Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Sun, 14 Jun 2026 04:21:34 +0000 Subject: [PATCH 1/2] Bob AI: Add projects page --- src/App.tsx | 2 + src/components/Layout.tsx | 4 +- src/pages/ProjectsPage.tsx | 92 ++++++++++++++++++++++++++++++++++++++ src/routes.ts | 1 + 4 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 src/pages/ProjectsPage.tsx diff --git a/src/App.tsx b/src/App.tsx index 33d15f9..c26cae8 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,11 +2,13 @@ import { Routes, Route } from 'react-router-dom'; import Layout from './components/Layout'; import HomePage from './pages/HomePage'; +import ProjectsPage from "@/pages/ProjectsPage"; export default function App() { return ( }> } /> + } /> ); diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index 3f1552a..6aed2d6 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -13,7 +13,9 @@ export default function Layout() { { name: "Hero", href: "#hero" }, { name: "Features", href: "#features" }, { name: "Metrics", href: "#metrics" }, - { name: "Testimonials", href: "#testimonials" } + { name: "Testimonials", href: "#testimonials" }, + { name: "Projects", href: "/projects" }, + ]; return ( diff --git a/src/pages/ProjectsPage.tsx b/src/pages/ProjectsPage.tsx new file mode 100644 index 0000000..5564a44 --- /dev/null +++ b/src/pages/ProjectsPage.tsx @@ -0,0 +1,92 @@ +import React from "react"; +import { routes } from "@/routes"; +import NavbarCentered from "@/components/ui/NavbarCentered"; +import HeroBillboard from "@/components/sections/hero/HeroBillboard"; +import FeaturesMediaCards from "@/components/sections/features/FeaturesMediaCards"; +import ContactCta from "@/components/sections/contact/ContactCta"; +import FooterSimple from "@/components/sections/footer/FooterSimple"; + +export default function ProjectsPage() { + return ( +
+ ({ name: r.label, href: r.path }))} + ctaButton={{ text: "Get Started", href: "/contact" }} + /> + +
+ + +
+ +
+ + +
+ + +
+ ); +} \ No newline at end of file diff --git a/src/routes.ts b/src/routes.ts index 362ecb5..d2757df 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -6,4 +6,5 @@ export interface Route { export const routes: Route[] = [ { path: '/', label: 'Home', pageFile: 'HomePage' }, + { path: '/projects', label: 'Projects', pageFile: 'ProjectsPage' }, ]; -- 2.49.1 From cc81d234594e5e85833ca2af3584204ee17e1868 Mon Sep 17 00:00:00 2001 From: kudinDmitriyUp Date: Sun, 14 Jun 2026 04:22:12 +0000 Subject: [PATCH 2/2] Bob AI: Populate src/pages/ProjectsPage.tsx (snippet builder, 2 sections) --- src/pages/ProjectsPage.tsx | 102 +++++-------------------------------- 1 file changed, 14 insertions(+), 88 deletions(-) diff --git a/src/pages/ProjectsPage.tsx b/src/pages/ProjectsPage.tsx index 5564a44..6624e93 100644 --- a/src/pages/ProjectsPage.tsx +++ b/src/pages/ProjectsPage.tsx @@ -1,92 +1,18 @@ -import React from "react"; -import { routes } from "@/routes"; -import NavbarCentered from "@/components/ui/NavbarCentered"; -import HeroBillboard from "@/components/sections/hero/HeroBillboard"; -import FeaturesMediaCards from "@/components/sections/features/FeaturesMediaCards"; -import ContactCta from "@/components/sections/contact/ContactCta"; -import FooterSimple from "@/components/sections/footer/FooterSimple"; +import Button from "@/components/ui/Button"; +import HeroBackgroundSlot from "@/components/ui/HeroBackgroundSlot"; +import TextAnimation from "@/components/ui/TextAnimation"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; +import ScrollReveal from "@/components/ui/ScrollReveal"; +import GridOrCarousel from "@/components/ui/GridOrCarousel"; export default function ProjectsPage() { return ( -
- ({ name: r.label, href: r.path }))} - ctaButton={{ text: "Get Started", href: "/contact" }} - /> - -
- - -
- -
- - -
- - -
+ <> +

Selected Works

+

Portfolio

Barrio de Salamanca Penthouse

A sunlit sanctuary blending classic moldings with contemporary minimalism.

+

Chamberí Townhouse

Restoring historical elegance while introducing fluid, modern living spaces.

+

Retiro Park Loft

An open-concept haven featuring raw textures and panoramic park views.

+

Justicia Studio

Maximizing natural light and bespoke joinery in a compact, elegant footprint.

+ ); -} \ No newline at end of file +} -- 2.49.1