Bob AI: Removed image from Elias Noor in team section
This commit is contained in:
@@ -1,147 +1,28 @@
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
|
||||
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
|
||||
import TeamGlassCards from '@/components/sections/team/TeamGlassCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in the sibling sections/ folder (one file per section).
|
||||
// Edit those section files directly. Non-block content (wrappers,
|
||||
// non-inlinable sections) is preserved inline; extracted section blocks
|
||||
// become component refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import ServicesSection from './HomePage/sections/Services';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import TeamSection from './HomePage/sections/Team';
|
||||
import CtaSection from './HomePage/sections/Cta';
|
||||
|
||||
export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardCarousel
|
||||
tag="Noor & Noir"
|
||||
title="Noor. Noir."
|
||||
description=" "
|
||||
primaryButton={{
|
||||
text: "View Work",
|
||||
href: "#services",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact",
|
||||
href: "/contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/liquid-marbling-paint-texture-background-fluid-painting-abstract-texture-intensive-color-mix-wallpaper_1258-99503.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/3d-wooden-interior-with-spotlights-shining-down_1048-18961.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/abstract-textured-backgound_1258-30612.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-concrete-wall_53876-92805.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beige-textured-fabric-background-with-design-space_53876-133356.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/monochrome-dark-gray-stucco_1194-6912.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesDetailedCards
|
||||
tag="Expertise"
|
||||
title="What we do"
|
||||
description="We balance clarity with depth."
|
||||
items={[
|
||||
{
|
||||
title: "Web Design",
|
||||
description: "Custom layouts and interaction design built around content, not templates.",
|
||||
tags: [
|
||||
"UX",
|
||||
"UI",
|
||||
"Creative",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/abstract-smooth-brown-wall-background-layout-design-studio-room-web-template-business-report-with-smooth-circle-gradient-color_1258-71972.jpg",
|
||||
},
|
||||
{
|
||||
title: "Brand & Identity",
|
||||
description: "Type systems, color, and voice that define your presence.",
|
||||
tags: [
|
||||
"Strategy",
|
||||
"Visuals",
|
||||
"Voice",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/abstract-luxury-plain-blur-grey-black-gradient-used-as-background-studio-wall-display-your-products_1258-52733.jpg",
|
||||
},
|
||||
{
|
||||
title: "Development",
|
||||
description: "Fast, accessible builds handed over clean.",
|
||||
tags: [
|
||||
"Code",
|
||||
"Perf",
|
||||
"Delivery",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dark-grunge-texture_1048-4055.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ServicesSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutMediaOverlay
|
||||
tag="Our Philosophy"
|
||||
title="The Duality of Design"
|
||||
description="We believe the most compelling experiences exist at the intersection of shadow and light—minimalist precision meets evocative storytelling."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/dark-smoky-room-with-concrete-floor-dramatic-lighting_84443-83704.jpg"
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamGlassCards
|
||||
tag="The Studio"
|
||||
title="Visionaries behind the lens"
|
||||
description="A collective of creative thinkers focused on digital craftsmanship."
|
||||
members={[
|
||||
{
|
||||
name: "Elias Noor",
|
||||
role: "Creative Director",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-man-portrait-with-flowers_23-2148830424.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah Noir",
|
||||
role: "Lead Designer",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-albino-woman_23-2150283438.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TeamSection />
|
||||
|
||||
<div id="cta" data-section="cta">
|
||||
<SectionErrorBoundary name="cta">
|
||||
<ContactCta
|
||||
tag="Let's talk"
|
||||
text="Have a project in mind? We'd love to hear about it."
|
||||
primaryButton={{
|
||||
text: "Get in touch",
|
||||
href: "/contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Our process",
|
||||
href: "#services",
|
||||
}}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<CtaSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
22
src/pages/HomePage/sections/About.tsx
Normal file
22
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutMediaOverlay
|
||||
tag="Our Philosophy"
|
||||
title="The Duality of Design"
|
||||
description="We believe the most compelling experiences exist at the intersection of shadow and light—minimalist precision meets evocative storytelling."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/dark-smoky-room-with-concrete-floor-dramatic-lighting_84443-83704.jpg"
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Cta.tsx
Normal file
28
src/pages/HomePage/sections/Cta.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "cta" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function CtaSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="cta" data-section="cta">
|
||||
<SectionErrorBoundary name="cta">
|
||||
<ContactCta
|
||||
tag="Let's talk"
|
||||
text="Have a project in mind? We'd love to hear about it."
|
||||
primaryButton={{
|
||||
text: "Get in touch",
|
||||
href: "/contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Our process",
|
||||
href: "#services",
|
||||
}}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
49
src/pages/HomePage/sections/Hero.tsx
Normal file
49
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,49 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroBillboardCarousel
|
||||
tag="Noor & Noir"
|
||||
title="Noor. Noir."
|
||||
description=" "
|
||||
primaryButton={{
|
||||
text: "View Work",
|
||||
href: "#services",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact",
|
||||
href: "/contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/liquid-marbling-paint-texture-background-fluid-painting-abstract-texture-intensive-color-mix-wallpaper_1258-99503.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/3d-wooden-interior-with-spotlights-shining-down_1048-18961.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/abstract-textured-backgound_1258-30612.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-concrete-wall_53876-92805.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beige-textured-fabric-background-with-design-space_53876-133356.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/monochrome-dark-gray-stucco_1194-6912.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
53
src/pages/HomePage/sections/Services.tsx
Normal file
53
src/pages/HomePage/sections/Services.tsx
Normal file
@@ -0,0 +1,53 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "services" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ServicesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesDetailedCards
|
||||
tag="Expertise"
|
||||
title="What we do"
|
||||
description="We balance clarity with depth."
|
||||
items={[
|
||||
{
|
||||
title: "Web Design",
|
||||
description: "Custom layouts and interaction design built around content, not templates.",
|
||||
tags: [
|
||||
"UX",
|
||||
"UI",
|
||||
"Creative",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/abstract-smooth-brown-wall-background-layout-design-studio-room-web-template-business-report-with-smooth-circle-gradient-color_1258-71972.jpg",
|
||||
},
|
||||
{
|
||||
title: "Brand & Identity",
|
||||
description: "Type systems, color, and voice that define your presence.",
|
||||
tags: [
|
||||
"Strategy",
|
||||
"Visuals",
|
||||
"Voice",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/abstract-luxury-plain-blur-grey-black-gradient-used-as-background-studio-wall-display-your-products_1258-52733.jpg",
|
||||
},
|
||||
{
|
||||
title: "Development",
|
||||
description: "Fast, accessible builds handed over clean.",
|
||||
tags: [
|
||||
"Code",
|
||||
"Perf",
|
||||
"Delivery",
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dark-grunge-texture_1048-4055.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
32
src/pages/HomePage/sections/Team.tsx
Normal file
32
src/pages/HomePage/sections/Team.tsx
Normal file
@@ -0,0 +1,32 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "team" section.
|
||||
|
||||
import React from 'react';
|
||||
import TeamGlassCards from '@/components/sections/team/TeamGlassCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TeamSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamGlassCards
|
||||
tag="The Studio"
|
||||
title="Visionaries behind the lens"
|
||||
description="A collective of creative thinkers focused on digital craftsmanship."
|
||||
members={[
|
||||
{
|
||||
name: "Elias Noor",
|
||||
role: "Creative Director",
|
||||
},
|
||||
{
|
||||
name: "Sarah Noir",
|
||||
role: "Lead Designer",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-albino-woman_23-2150283438.jpg",
|
||||
},
|
||||
]}
|
||||
textAnimation="fade"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user