added content cards and picture with text section. also added hero section

This commit is contained in:
2026-05-27 19:43:53 +01:00
parent ca60b38c85
commit eed242d5bd
6 changed files with 119 additions and 29 deletions

View File

@@ -1,13 +1,26 @@
import Image from "next/image"; import Image from "next/image";
import HeroSection from "@/components/hero-section"; import HeroSection from "@/components/hero-section";
import ContentCard from "@/components/ui/content-cards";
import PicWithText from "@/components/pic-with-text";
import pictureOne from "../assets/hero-picture-1.png"
import pictureTwo from "../assets/hero-picture-2.png"
import pictureThree from "../assets/hero-picture-3.png"
export default function Home() { export default function Home() {
return ( return (
<div className="flex flex-col flex-1 items-center justify-center bg-zinc-50 font-sans dark:bg-black"> <div className="flex flex-col flex-1 items-center justify-center bg-zinc-50 font-sans dark:bg-black">
<main className="flex flex-1 w-full max-w-7xl flex-col items-center justify-between py-32 px-16 bg-white dark:bg-black sm:items-start"> <main className="flex flex-1 w-full max-w-7xl flex-col items-center justify-between py-32 px-8 bg-white dark:bg-black sm:items-start">
<HeroSection/> <HeroSection />
<div className="flex flex-row flex-wrap justify-center m-auto">
<ContentCard heading="Michala Art Shop" card_text="This case study was for a small business selling artwork" button_text="click me" src={pictureOne.src}/>
<ContentCard heading="Athlito" card_text="This was an Ecommerce padel shop" button_text="click me" src={pictureTwo.src}/>
<ContentCard heading="Birchover Reclamation" card_text="This case study was for a stone yard company" button_text="click me" src={pictureThree.src}/>
<ContentCard heading="Michala Art Shop" card_text="This case study was for a small business selling artwork" button_text="click me" src={pictureOne.src}/>
</div>
<PicWithText />
</main> </main>
</div> </div>
); )
} }

View File

@@ -1,28 +1,56 @@
.hero-main { .hero-main {
width: 100%; width: 100%;
height: 400px; min-height: 400px;
} }
.hero-left { .hero-picture-stack {
width: 50%; position: relative;
width: 50%;
min-height: 320px;
flex-shrink: 0;
} }
.hero-right { .hero-right {
width: 50%; width: 50%;
padding-left: 20px; padding-left: 20px;
} }
.hero-picture { .hero-picture {
border-radius: 20px; position: absolute;
position: absolute; left: 50%;
width: 20%; top: 50%;
width: 70%;
max-width: 280px;
height: auto;
border-radius: 20px;
object-fit: cover;
transform: translate(-50%, -50%);
}
.hero-picture--tilt-20 {
transform: translate(-50%, -50%) rotate(20deg);
}
.hero-picture--tilt-40 {
transform: translate(-50%, -50%) rotate(40deg);
} }
@media (max-width: 750px) { @media (max-width: 750px) {
.hero-right { .hero-picture-stack {
width: 100%; width: 100%;
padding-top: 20px; min-height: 260px;
} }
.hero-picture {
width: 75%;
max-width: 240px;
}
.hero-right {
width: 100%;
padding-left: 0;
padding-top: 60px;
}
} }

View File

@@ -8,10 +8,10 @@ export default function HeroSection() {
return( return(
<> <>
<div className="hero-main flex flex-wrap"> <div className="hero-main flex flex-wrap">
<div className="grid grid-cols-1 grid-rows-1 p-4 w-1/2"> <div className="hero-picture-stack p-4">
<img className="not-last-of-type:col-start-1 row-start-1 w-full h-auto object-cover hero-picture" src={heroPictureOne.src}/> <img className="hero-picture" src={heroPictureOne.src} alt="" />
<img className="col-start-1 row-start-1 self-end justify-end hero-picture rotate-20" src={heroPictureTwo.src}/> <img className="hero-picture hero-picture--tilt-20" src={heroPictureTwo.src} alt="" />
<img className="col-start-1 row-start-1 self-end justify-end hero-picture rotate-40" src={heroPictureThree.src}/> <img className="hero-picture hero-picture--tilt-40" src={heroPictureThree.src} alt="" />
</div> </div>
<div className="hero-right"> <div className="hero-right">
<h1 className="mb-4 text-5xl font-bold text-heading md:text-6xl lg:text-7xl"><span className="text-transparent bg-clip-text bg-gradient-to-r bg-violet-800 from-sky-400">Sculpted Arc</span><br/> Web Solutions</h1> <h1 className="mb-4 text-5xl font-bold text-heading md:text-6xl lg:text-7xl"><span className="text-transparent bg-clip-text bg-gradient-to-r bg-violet-800 from-sky-400">Sculpted Arc</span><br/> Web Solutions</h1>

View File

@@ -0,0 +1,27 @@
import picOne from "../assets/hero-picture-1.png";
export default function PicWithText(){
return (
<div className="flex flex-col md:flex-row items-center md:items-start gap-8 w-full mt-10">
<div className="w-full md:w-1/2 shrink-0">
<img
className="w-full h-auto rounded-2xl object-cover"
src={picOne.src}
alt=""
/>
</div>
<div className="w-full md:w-1/2">
<h1 className="mb-4 text-5xl font-bold">Title of this section</h1>
<p className="text-lg font-normal text-body lg:text-xl">This is the paragraph for this section. This is also just random filler text to see how things look. here are some extra words htat make no sence!</p>
<div className="flex items-center w-full my-8">
<div className="flex-1 h-px bg-neutral-300 dark:bg-neutral-700" />
<div className="px-3">
<svg className="w-6 h-6 text-neutral-400 dark:text-neutral-500" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M10 11V8a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1Zm0 0v2a4 4 0 0 1-4 4H5m14-6V8a1 1 0 0 0-1-1h-3a1 1 0 0 0-1 1v3a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1Zm0 0v2a4 4 0 0 1-4 4h-1"/></svg>
</div>
<div className="flex-1 h-px bg-neutral-300 dark:bg-neutral-700" />
</div>
<p>This is more text, however, this is actually a quote, yes, a quote indeed!</p>
</div>
</div>
)
}

View File

@@ -2,16 +2,27 @@
interface cardProps { interface cardProps {
src?: string src?: string
button_link?: string button_link?: string
heading?: string
button_text?: string button_text?: string
card_text?: string
} }
export default function ContentCard(buttonProps: cardProps) { export default function ContentCard(CardProps: cardProps) {
return ( return (
<> <>
<img src={buttonProps.src}></img> <div className="bg-neutral-primary-soft shadow-lg shadow-blue-500/50 rounded-3xl block p-6 border-2 border-blue-500 rounded-base m-3 min-w-60 max-w-80">
<button className="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded-full"> <a href="#">
{buttonProps.button_text} <img className="rounded-2xl" src={CardProps.src} alt="" />
</button> </a>
</> <a href="#">
<h5 className="mt-6 mb-2 text-2xl font-semibold tracking-tight text-heading">{CardProps.heading}</h5>
</a>
<p className="mb-6 text-body">{CardProps.card_text}</p>
<a href="#" className="inline-flex rounded-3xl items-center text-body bg-neutral-secondary-medium box-border border border-default-medium hover:bg-neutral-tertiary-medium hover:text-heading focus:ring-4 focus:ring-neutral-tertiary shadow-xs font-medium leading-5 rounded-base text-sm px-4 py-2.5 focus:outline-none">
{CardProps.button_text}
<svg className="w-3 h-3 ms-1.5 rtl:rotate-180 -me-0.5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20"><path stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M19 12H5m14 0-4 4m4-4-4-4"/></svg>
</a>
</div>
</>
) )
} }

View File

@@ -0,0 +1,11 @@
export default function hrWithText() {
return (
<>
<div className="flex items-center w-full my-4 md:my-10">
<div className="flex-1 h-px bg-neutral-300 dark:bg-neutral-700" />
<span className="px-4 text-2xl text-neutral-400 dark:text-neutral-500 select-none">scroll down</span>
<div className="flex-1 h-px bg-neutral-300 dark:bg-neutral-700" />
</div>
</>
)
}