feat: update branding, SEO, slugs and social links for Fethiye location
This commit is contained in:
@@ -7,39 +7,38 @@ import Link from 'next/link'
|
|||||||
|
|
||||||
const services = [
|
const services = [
|
||||||
{
|
{
|
||||||
title: 'Mimari Hizmetler',
|
title: 'Mimari Tasarım',
|
||||||
description: 'A.N.Tarchitecture, proaktif entegre tasarım yaklaşımıyla kapsamlı bir profesyonel mimari hizmet yelpazesi sunar:',
|
description: 'A.N.T Architecture, Fethiye merkezli modern bir mimari yaklaşım ile kapsamlı tasarım hizmetleri sunar:',
|
||||||
list: [
|
list: [
|
||||||
'Proje Geliştirme: Saha analizi, potansiyel çalışma, sosyal kabul edilebilirlik stratejileri ve planlama',
|
'Konsept Tasarımı ve Geliştirme: Saha analizi, potansiyel çalışmaları ve master planlama',
|
||||||
'Plan ve Şartnamelerin Tasarımı ve Üretimi.',
|
'Mimari Plan ve Proje Hazırlama: Detaylı uygulama projeleri ve teknik şartnameler',
|
||||||
'Proje Modelleme Yönetimi: Entegre BIM (Yapı Bilgi Modellemesi) tasarımı',
|
'BIM Destekli Tasarım: Yapı Bilgi Modellemesi ile entegre proje yönetimi',
|
||||||
'Düzenleyici Stratejiler: Yönetmelikler, saha çalışması, enerji ve güneş ışığı analizi',
|
'Ruhsat ve İzin Süreçleri: Yerel yönetmeliklere uygun strateji geliştirme',
|
||||||
'Kentsel Tasarım: Master planlama, peyzaj tasarımı ve inşaat mühendisliği işleri',
|
'3D Görselleştirme: Fotorealistik renderlar, 360° turlar ve video animasyonlar',
|
||||||
'3D Görselleştirme: 3D perspektifler, modelleme ve animasyonlar',
|
'Şantiye Yönetimi ve Denetimi: Projenin uygulama aşamasında sahada kalite kontrolü'
|
||||||
'İnşaat Hizmeti ve Yönetimi: İnşaat yönetimi ve saha denetimi'
|
|
||||||
],
|
],
|
||||||
button: 'PROJELERİ GÖRÜNTÜLE',
|
button: 'PROJELERİ GÖRÜNTÜLE',
|
||||||
image: 'https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?q=80&w=2070&auto=format&fit=crop'
|
image: 'https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?q=80&w=2070&auto=format&fit=crop'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'İç Mimari Hizmetleri',
|
title: 'İç Mimari ve Dekorasyon',
|
||||||
description: 'A.N.Tarchitecture, sürdürülebilirlik, zarafet ve işlevselliği şirketinizin değerleriyle uyumlu akıllı düzenlerle birleştirerek, imajını ve işe alım kapasitesini artıran iç mimari konusunda derin bir uzmanlık sunar:',
|
description: 'A.N.T Architecture, yaşam alanlarınıza ruh katan, işlevsel ve estetik iç mekan çözümleri üretir. Fethiye ve çevresindeki lüks villa ve ticari projelerde derin uzmanlık sunuyoruz:',
|
||||||
list: [
|
list: [
|
||||||
'Aktif Müşteri Dinleme: Alan programlama ve planlama, bütçe analizi',
|
'Mekan Planlama: İhtiyaç analizi ve fonksiyonel yerleşim planları',
|
||||||
'Konsept Geliştirme: Plan ve şartnamelerin üretimi, malzeme seçimi, entegre mobilya ve özel objelerin kavramsallaştırılması',
|
'Malzeme ve Mobilya Seçimi: Kişiye özel mobilya tasarımı ve malzeme kürasyonu',
|
||||||
'Entegre Tabela: Plan ve şartnamelerin modellenmesi ve üretimi',
|
'Aydınlatma Tasarımı: Atmosferik ve teknik aydınlatma çözümleri',
|
||||||
'3D Görselleştirme: 3D perspektifler, modelleme ve animasyonlar'
|
'Anahtar Teslim Uygulama: Tasarımdan montaj aşamasına kadar tam kontrol'
|
||||||
],
|
],
|
||||||
button: 'TÜM PROJELER',
|
button: 'TÜM PROJELER',
|
||||||
image: 'https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?q=80&w=2070&auto=format&fit=crop'
|
image: 'https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?q=80&w=2070&auto=format&fit=crop'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Planlama ve Uzmanlık Hizmetleri',
|
title: 'Danışmanlık ve Uzmanlık',
|
||||||
description: 'A.N.Tarchitecture, bina planlama, programlama ve denetleme konularında, müşteri ihtiyaçlarını ve gereksinimlerini net bir şekilde tanımlamak için titiz ve sistematik yöntemler kullanarak çeşitli uzmanlıklar sunar.',
|
description: 'Gayrimenkul yatırımlarınızdan önce teknik ve mimari değerlendirmeler yaparak riskleri minimize etmenize yardımcı oluyoruz.',
|
||||||
list: [
|
list: [
|
||||||
'Fonksiyonel ve Teknik Programların (FTP) Geliştirilmesi: Müdahale stratejileri, organizasyonun genel özellikleri, işlevsellik ve alanlar',
|
'Fizibilite Çalışmaları: Teknik ve yasal kısıtlamaların analizi',
|
||||||
'Fizibilite Çalışması ve Ön Konseptler: Teknik ve düzenleyici koşulların ve kısıtlamaların analizi',
|
'Yatırım Danışmanlığı: Arsa ve bina potansiyel değerlendirmesi',
|
||||||
'Teknik Uzmanlık: Su yalıtım sorunlarının ve erken yaşlanmanın tespiti, yaşam döngüsü analizi'
|
'Yenileme ve Restorasyon: Mevcut yapıların modernizasyonu ve korunması'
|
||||||
],
|
],
|
||||||
button: null,
|
button: null,
|
||||||
image: 'https://images.unsplash.com/photo-1518780664697-55e3ad937233?q=80&w=2070&auto=format&fit=crop'
|
image: 'https://images.unsplash.com/photo-1518780664697-55e3ad937233?q=80&w=2070&auto=format&fit=crop'
|
||||||
@@ -47,12 +46,12 @@ const services = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
const projectPhases = [
|
const projectPhases = [
|
||||||
{ num: '00', title: 'ÖN KAVRAMSAL ÇALIŞMALAR', desc: 'Bir binanın kapsamını belirlemek için ihtiyaçlarını ve işlevlerini anlamaya ve belgelemeye yardımcı olan hazırlık aşaması.' },
|
{ num: '00', title: 'ÖN ANALİZ VE KONCEPT', desc: 'İhtiyaçların belirlenmesi, arazi etüdü ve ilk fikirlerin eskizlerle somutlaştırıldığı hazırlık aşaması.' },
|
||||||
{ num: '01', title: 'TASARIM AŞAMASI', desc: 'Bu aşama saha incelemesi, program incelemesi, ilk eskiz tasarımı ve ön bütçe analizini içerir.' },
|
{ num: '01', title: 'TASARIM SÜRECİ', desc: 'Saha incelemeleri, program analizi ve bütçe planlamasının yapıldığı temel tasarım aşaması.' },
|
||||||
{ num: '02', title: 'TASARIM GELİŞTİRME', desc: 'Eskizler onaylandıktan sonra, gerekli ön planları, kesitleri ve görünüşleri oluşturarak projeyi daha detaylı geliştiriyoruz.' },
|
{ num: '02', title: 'DETAYLI GELİŞTİRME', desc: 'Taslakların onaylanmasının ardından plan, kesit ve görünüşlerin teknik detaylarla zenginleştirilmesi.' },
|
||||||
{ num: '03', title: 'İNŞAAT BELGELERİ', desc: 'Bu inşaat için gerekli olan teknik planların gerçek geliştirilme aşamasıdır.' },
|
{ num: '03', title: 'UYGULAMA PROJELERİ', desc: 'İnşaat aşamasında kullanılacak tüm teknik detayların ve imalat çizimlerinin hazırlanması.' },
|
||||||
{ num: '04', title: 'İHALE', desc: 'Genel yüklenici tekliflerinin analizinde ve inşaat sözleşmesinin imzalanmasında müşteriye yardımcı oluyor ve danışmanlık yapıyoruz.' },
|
{ num: '04', title: 'TEKLİF VE SÖZLEŞME', desc: 'Yüklenici firma seçimi, maliyet analizi ve inşaat sözleşmelerinin yönetimi konusunda danışmanlık.' },
|
||||||
{ num: '05', title: 'SAHA DENETİMİ', desc: 'Projenin planlara sadık kalarak yürütülmesini sağlıyoruz. İnşaat sahasındaki öngörülemeyen sorunlara tasarımı uyarlamak için çözümler sunuyoruz.' }
|
{ num: '05', title: 'SAHA DENETİMİ', desc: 'Uygulamanın projeye uygun ilerlemesinin sağlanması ve sahada karşılaşılan sorunlara mimari çözümler üretilmesi.' }
|
||||||
]
|
]
|
||||||
|
|
||||||
export default function AboutPage() {
|
export default function AboutPage() {
|
||||||
@@ -93,9 +92,10 @@ export default function AboutPage() {
|
|||||||
transition={{ duration: 1.2, ease: [0.22, 1, 0.36, 1] }}
|
transition={{ duration: 1.2, ease: [0.22, 1, 0.36, 1] }}
|
||||||
>
|
>
|
||||||
<p className="text-[24px] md:text-[36px] lg:text-[42px] leading-[1.2] font-normal tracking-tight text-white/95">
|
<p className="text-[24px] md:text-[36px] lg:text-[42px] leading-[1.2] font-normal tracking-tight text-white/95">
|
||||||
Mimariyi, teknik disiplin ile yaratıcı vizyonun kusursuz dengesi olarak tanımlıyorum. Tasarım sürecimde hem iç hem de dış mekân projelerinde bütüncül bir yaklaşımı benimsiyor; projelerimi sadece birer yapı olarak değil, çevresiyle nefes alan yaşam alanları olarak tasarlıyorum.
|
Mimariyi, teknik disiplin ile yaratıcı vizyonun kusursuz dengesi olarak tanımlıyorum. Fethiye merkezli tasarım sürecimde, her projemde bütüncül bir yaklaşımı benimsiyor; yapıları sadece betonarme kütleler değil, çevresiyle nefes alan yaşam alanları olarak tasarlıyorum.
|
||||||
|
<br /><br />
|
||||||
Projelerimin teknik omurgasını AutoCAD üzerinde detaylı plan ve kesit çalışmalarıyla oluştururken, 3D modelleme ve görselleştirme süreçlerinde sunduğum gerçekçi sunumlarla tasarıma derinlik kazandırıyorum. Konsept tasarımından uygulama detaylarına kadar her aşamada, mekânın işlevselliğini estetik bir değerle harmanlamayı amaçlıyorum. </p>
|
Projelerimin teknik omurgasını AutoCAD üzerinde detaylı plan ve kesit çalışmalarıyla kurgularken, 3D modelleme süreçlerinde sunduğum gerçekçi sunumlarla hayalleri somuta dönüştürüyorum. Konseptten uygulamaya her aşamada işlevselliği estetik bir değerle harmanlamayı amaçlıyorum.
|
||||||
|
</p>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
|
|
||||||
<motion.div
|
<motion.div
|
||||||
@@ -105,8 +105,8 @@ export default function AboutPage() {
|
|||||||
transition={{ duration: 1.2, delay: 0.3, ease: [0.22, 1, 0.36, 1] }}
|
transition={{ duration: 1.2, delay: 0.3, ease: [0.22, 1, 0.36, 1] }}
|
||||||
className="flex flex-col space-y-12 lg:space-y-16 mt-4"
|
className="flex flex-col space-y-12 lg:space-y-16 mt-4"
|
||||||
>
|
>
|
||||||
<p className="text-[13px] md:text-[14px] leading-relaxed text-zinc-400 font-medium">
|
<p className="text-[14px] md:text-[15px] leading-relaxed text-zinc-300 font-medium italic border-l border-white/20 pl-6">
|
||||||
2006 yılında Toronto'da CGBWstudio adıyla Charles-Bernard Gagnon tarafından kurulan ve 2008'de Quebec City'ye taşınan firma, felsefesi ve sürecin her aşamasında yüksek kaliteli profesyonel hizmet sunma taahhüdü sayesinde bölge pazarında öne çıkmıştır. Bu yaklaşım, firmanın yenilikçi projelerden oluşan bir portföy oluşturmasını sağlamıştır. 2013 yılında ekip, daha anlamlı bir isim olan A.N.Tarchitecture adını seçmiştir.
|
2025 yılında Fethiye'de temelleri atılan A.N.T Architecture, mimar Ayça Nur Turhan'ın modern tasarım vizyonunu ve teknik disiplinini bir araya getirerek kurulmuştur. Yerel dokuyu modern çizgilerle buluşturan ofisimiz, villa projelerinden ticari mekanlara kadar her ölçekte mimari ve iç mimari çözümler sunmaktadır.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="flex flex-col space-y-6">
|
<div className="flex flex-col space-y-6">
|
||||||
@@ -120,7 +120,7 @@ export default function AboutPage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="text-[10px] md:text-[11px] font-bold uppercase tracking-[0.2em] leading-[1.5] text-white/60">
|
<div className="text-[10px] md:text-[11px] font-bold uppercase tracking-[0.2em] leading-[1.5] text-white/60">
|
||||||
AYÇA NUR TURHAN KURUCU <br />MİMAR, OAQ
|
AYÇA NUR TURHAN <br />KURUCU MİMAR
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
@@ -189,8 +189,8 @@ export default function AboutPage() {
|
|||||||
style={{ padding: bottomPadding }}
|
style={{ padding: bottomPadding }}
|
||||||
className="flex justify-between items-end"
|
className="flex justify-between items-end"
|
||||||
>
|
>
|
||||||
<motion.h1 style={{ fontSize: cargoFontSize }} className="font-bebas leading-[0.8] text-black mix-blend-difference tracking-tighter">A.N.T</motion.h1>
|
<motion.h1 style={{ fontSize: cargoFontSize }} className="font-bebas leading-[0.8] text-white mix-blend-difference tracking-tighter">A.N.T</motion.h1>
|
||||||
<motion.h1 style={{ fontSize: archFontSize }} className="font-bebas leading-[0.8] text-black mix-blend-difference tracking-tighter">ARCHITECTURE</motion.h1>
|
<motion.h1 style={{ fontSize: archFontSize }} className="font-bebas leading-[0.8] text-white mix-blend-difference tracking-tighter">ARCHITECTURE</motion.h1>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
|
|
||||||
@@ -199,16 +199,11 @@ export default function AboutPage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function ServiceCard({ service, index, scrollYProgress }: { service: any, index: number, scrollYProgress: any }) {
|
function ServiceCard({ service, index, scrollYProgress }: { service: any, index: number, scrollYProgress: any }) {
|
||||||
// Cards start visible but at different Y positions (staggered cascade)
|
|
||||||
// Card 0: y=0 (top), Card 1: y=200px lower, Card 2: y=400px lower
|
|
||||||
// As user scrolls, each card slides UP to y=0 to align with Card 0
|
|
||||||
const initialOffsets = [0, 200, 400]
|
const initialOffsets = [0, 200, 400]
|
||||||
|
|
||||||
// Sequential timing: Card 1 arrives first, Card 2 arrives after
|
|
||||||
const ranges: [number, number][] = [
|
const ranges: [number, number][] = [
|
||||||
[0, 0.01], // Card 0: always in place
|
[0, 0.01],
|
||||||
[0, 0.50], // Card 1: slides up during first half
|
[0, 0.50],
|
||||||
[0.15, 0.85], // Card 2: starts after Card 1 is moving, arrives by 85%
|
[0.15, 0.85],
|
||||||
]
|
]
|
||||||
|
|
||||||
const y = useTransform(
|
const y = useTransform(
|
||||||
@@ -220,17 +215,16 @@ function ServiceCard({ service, index, scrollYProgress }: { service: any, index:
|
|||||||
return (
|
return (
|
||||||
<motion.div
|
<motion.div
|
||||||
style={{ y }}
|
style={{ y }}
|
||||||
className="relative w-full h-full bg-white text-black flex flex-col rounded-2xl overflow-hidden"
|
className="relative w-full h-full bg-white text-black flex flex-col rounded-2xl overflow-hidden shadow-2xl"
|
||||||
>
|
>
|
||||||
{/* Content Area */}
|
|
||||||
<div className="flex-1 p-10 lg:p-14 overflow-hidden">
|
<div className="flex-1 p-10 lg:p-14 overflow-hidden">
|
||||||
<h2 className="text-[32px] lg:text-[40px] mb-10 font-normal tracking-tight leading-[1.1]">
|
<h2 className="text-[32px] lg:text-[40px] mb-8 font-normal tracking-tight leading-[1.1]">
|
||||||
{service.title}
|
{service.title}
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-[15px] mb-10 text-black/80 leading-relaxed font-medium">
|
<p className="text-[15px] mb-8 text-black/80 leading-relaxed font-medium">
|
||||||
{service.description}
|
{service.description}
|
||||||
</p>
|
</p>
|
||||||
<ul className="space-y-4 mb-12">
|
<ul className="space-y-4 mb-10">
|
||||||
{service.list.map((item: string, i: number) => (
|
{service.list.map((item: string, i: number) => (
|
||||||
<li key={i} className="text-[14px] text-black/70 flex items-start border-b border-black/5 pb-2 last:border-0 leading-snug">
|
<li key={i} className="text-[14px] text-black/70 flex items-start border-b border-black/5 pb-2 last:border-0 leading-snug">
|
||||||
<span className="mr-3 text-black/30">•</span>
|
<span className="mr-3 text-black/30">•</span>
|
||||||
@@ -245,7 +239,6 @@ function ServiceCard({ service, index, scrollYProgress }: { service: any, index:
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Fixed Image at Bottom */}
|
|
||||||
<div className="h-[35%] lg:h-[40%] relative w-full overflow-hidden grayscale group hover:grayscale-0 transition-all duration-700">
|
<div className="h-[35%] lg:h-[40%] relative w-full overflow-hidden grayscale group hover:grayscale-0 transition-all duration-700">
|
||||||
<Image
|
<Image
|
||||||
src={service.image}
|
src={service.image}
|
||||||
|
|||||||
@@ -3,10 +3,8 @@
|
|||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
|
|
||||||
const socialLinks = [
|
const socialLinks = [
|
||||||
{ name: 'FACEBOOK', href: 'https://facebook.com' },
|
{ name: 'INSTAGRAM (MİMAR)', href: 'https://www.instagram.com/mimaraycanurturan_/' },
|
||||||
{ name: 'INSTAGRAM', href: 'https://instagram.com' },
|
{ name: 'INSTAGRAM (KİŞİSEL)', href: 'https://www.instagram.com/aycanurturan_/' },
|
||||||
{ name: 'LINKEDIN', href: 'https://linkedin.com' },
|
|
||||||
{ name: '***', href: '**' },
|
|
||||||
]
|
]
|
||||||
|
|
||||||
const offices = [
|
const offices = [
|
||||||
|
|||||||
BIN
app/favicon.ico
BIN
app/favicon.ico
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 15 KiB |
@@ -25,8 +25,32 @@ const oswald = Oswald({
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "A.N.T ARCHITECTURE",
|
title: {
|
||||||
description: "Ayça Nur Turhan - Mimarlık ve Tasarım",
|
template: '%s | A.N.T Architecture',
|
||||||
|
default: 'A.N.T Architecture | Ayça Nur Turhan - Fethiye Mimarlık ve Tasarım',
|
||||||
|
},
|
||||||
|
description: 'Ayça Nur Turhan tarafından Fethiye\'de kurulan A.N.T Architecture, modern mimari ve yenilikçi tasarım çözümleri sunar. Villa projeleri, iç mekan tasarımı ve uygulama hizmetleri.',
|
||||||
|
keywords: ['Fethiye Mimarlık', 'Ayça Nur Turhan', 'Ant Architecture', 'Modern Mimari', 'Villa Tasarımı', 'İç Mimarlık Fethiye'],
|
||||||
|
authors: [{ name: 'Ayça Nur Turhan' }],
|
||||||
|
creator: 'Ayça Nur Turhan',
|
||||||
|
publisher: 'A.N.T Architecture',
|
||||||
|
formatDetection: {
|
||||||
|
email: false,
|
||||||
|
address: true,
|
||||||
|
telephone: true,
|
||||||
|
},
|
||||||
|
openGraph: {
|
||||||
|
title: 'A.N.T Architecture | Ayça Nur Turhan',
|
||||||
|
description: 'Fethiye merkezli modern mimari ve tasarım ofisi.',
|
||||||
|
url: 'https://aycanurturhan.com', // Change this to actual URL if known
|
||||||
|
siteName: 'A.N.T Architecture',
|
||||||
|
locale: 'tr_TR',
|
||||||
|
type: 'website',
|
||||||
|
},
|
||||||
|
robots: {
|
||||||
|
index: true,
|
||||||
|
follow: true,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
|
|||||||
95
app/projects/[slug]/page.tsx
Normal file
95
app/projects/[slug]/page.tsx
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
'use client'
|
||||||
|
|
||||||
|
import { useParams } from 'next/navigation'
|
||||||
|
import { projects } from '@/data/projects'
|
||||||
|
import { motion } from 'framer-motion'
|
||||||
|
import Image from 'next/image'
|
||||||
|
import Link from 'next/link'
|
||||||
|
import { notFound } from 'next/navigation'
|
||||||
|
|
||||||
|
export default function ProjectDetailPage() {
|
||||||
|
const params = useParams()
|
||||||
|
const slug = params.slug as string
|
||||||
|
|
||||||
|
const project = projects.find(p => p.slug === slug)
|
||||||
|
|
||||||
|
if (!project) {
|
||||||
|
notFound()
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<main className="min-h-screen bg-white">
|
||||||
|
{/* Navigation */}
|
||||||
|
<nav className="fixed top-0 left-0 w-full z-50 p-6 md:p-10 flex justify-between items-center mix-blend-difference text-white pointer-events-none">
|
||||||
|
<Link href="/" className="pointer-events-auto font-bebas text-2xl tracking-tighter hover:opacity-70 transition-opacity">
|
||||||
|
A.N.T
|
||||||
|
</Link>
|
||||||
|
<Link href="/projects" className="pointer-events-auto text-[10px] font-bold uppercase tracking-[0.2em] hover:opacity-70 transition-opacity">
|
||||||
|
Tüm Projeler
|
||||||
|
</Link>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div className="flex flex-col md:flex-row min-h-screen">
|
||||||
|
{/* Left Side: Info */}
|
||||||
|
<div className="w-full md:w-1/3 pt-32 pb-10 px-6 md:px-10 flex flex-col justify-between">
|
||||||
|
<motion.div
|
||||||
|
initial={{ opacity: 0, y: 20 }}
|
||||||
|
animate={{ opacity: 1, y: 0 }}
|
||||||
|
transition={{ duration: 0.8 }}
|
||||||
|
>
|
||||||
|
<div className="text-[10px] font-bold text-black/40 uppercase tracking-[0.3em] mb-4">
|
||||||
|
{project.year} — {project.location}
|
||||||
|
</div>
|
||||||
|
<h1 className="text-4xl md:text-6xl font-bebas text-black leading-none tracking-tighter uppercase mb-6">
|
||||||
|
{project.title}
|
||||||
|
</h1>
|
||||||
|
<div className="h-[1px] w-12 bg-black mb-6" />
|
||||||
|
<p className="text-sm text-black/60 leading-relaxed max-w-sm">
|
||||||
|
Bu proje, modern mimari prensipleri ve fonksiyonel tasarım anlayışıyla hayata geçirilmiştir.
|
||||||
|
Detaylar ve uygulama süreçleri hakkında daha fazla bilgi için bizimle iletişime geçebilirsiniz.
|
||||||
|
</p>
|
||||||
|
</motion.div>
|
||||||
|
|
||||||
|
<motion.div
|
||||||
|
initial={{ opacity: 0 }}
|
||||||
|
animate={{ opacity: 1 }}
|
||||||
|
transition={{ delay: 0.4, duration: 0.8 }}
|
||||||
|
className="hidden md:block"
|
||||||
|
>
|
||||||
|
<div className="text-[10px] font-bold text-black uppercase tracking-[0.2em]">
|
||||||
|
Kategori: {project.category || 'Belirtilmemiş'}
|
||||||
|
</div>
|
||||||
|
</motion.div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Right Side: Image */}
|
||||||
|
<div className="w-full md:w-2/3 h-[70vh] md:h-screen relative">
|
||||||
|
<motion.div
|
||||||
|
initial={{ opacity: 0, scale: 1.1 }}
|
||||||
|
animate={{ opacity: 1, scale: 1 }}
|
||||||
|
transition={{ duration: 1.2, ease: [0.76, 0, 0.24, 1] }}
|
||||||
|
className="w-full h-full"
|
||||||
|
>
|
||||||
|
<Image
|
||||||
|
src={project.image}
|
||||||
|
alt={project.title}
|
||||||
|
fill
|
||||||
|
priority
|
||||||
|
className="object-cover"
|
||||||
|
/>
|
||||||
|
</motion.div>
|
||||||
|
|
||||||
|
{/* Subtle Overlay */}
|
||||||
|
<div className="absolute inset-0 bg-black/5 pointer-events-none" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Mobile Footer Info */}
|
||||||
|
<div className="md:hidden p-6 border-t border-black/5">
|
||||||
|
<div className="text-[10px] font-bold text-black uppercase tracking-[0.2em]">
|
||||||
|
Kategori: {project.category || 'Belirtilmemiş'}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import { motion, useScroll, useTransform } from 'framer-motion'
|
import { motion, useScroll, useTransform } from 'framer-motion'
|
||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
|
import Link from 'next/link'
|
||||||
import { projects } from '@/data/projects'
|
import { projects } from '@/data/projects'
|
||||||
import { useState, useEffect } from 'react'
|
import { useState, useEffect } from 'react'
|
||||||
|
|
||||||
@@ -28,8 +29,8 @@ export default function ProjectsPage() {
|
|||||||
<main className="relative min-h-screen bg-white pt-32 pb-60 px-6 md:px-10">
|
<main className="relative min-h-screen bg-white pt-32 pb-60 px-6 md:px-10">
|
||||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 md:gap-8">
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 md:gap-8">
|
||||||
{projects.map((project, idx) => (
|
{projects.map((project, idx) => (
|
||||||
|
<Link key={project.slug} href={`/projects/${project.slug}`}>
|
||||||
<motion.div
|
<motion.div
|
||||||
key={project.id}
|
|
||||||
initial={{ opacity: 0, y: 20 }}
|
initial={{ opacity: 0, y: 20 }}
|
||||||
animate={{ opacity: 1, y: 0 }}
|
animate={{ opacity: 1, y: 0 }}
|
||||||
transition={{ duration: 0.6, delay: idx * 0.05 }}
|
transition={{ duration: 0.6, delay: idx * 0.05 }}
|
||||||
@@ -55,6 +56,7 @@ export default function ProjectsPage() {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
|
</Link>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
import { useRef, useEffect } from 'react'
|
import { useRef, useEffect } from 'react'
|
||||||
import { motion, useAnimationFrame } from 'framer-motion'
|
import { motion, useAnimationFrame } from 'framer-motion'
|
||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
|
import Link from 'next/link'
|
||||||
import { Project } from '@/data/projects'
|
import { Project } from '@/data/projects'
|
||||||
|
|
||||||
interface ProjectSliderProps {
|
interface ProjectSliderProps {
|
||||||
@@ -43,9 +44,10 @@ export default function ProjectSlider({ projects }: ProjectSliderProps) {
|
|||||||
>
|
>
|
||||||
<div className="flex space-x-6 md:space-x-12 px-6 md:px-10">
|
<div className="flex space-x-6 md:space-x-12 px-6 md:px-10">
|
||||||
{doubledProjects.map((project, idx) => (
|
{doubledProjects.map((project, idx) => (
|
||||||
<div
|
<Link
|
||||||
key={`${project.id}-${idx}`}
|
href={`/projects/${project.slug}`}
|
||||||
className="group relative flex-shrink-0 w-[80vw] sm:w-[500px] md:w-[600px]"
|
key={`${project.slug}-${idx}`}
|
||||||
|
className="group relative flex-shrink-0 w-[80vw] sm:w-[500px] md:w-[600px] block"
|
||||||
>
|
>
|
||||||
{/* Image Container */}
|
{/* Image Container */}
|
||||||
<div className="relative aspect-[4/3] overflow-hidden rounded-[1px]">
|
<div className="relative aspect-[4/3] overflow-hidden rounded-[1px]">
|
||||||
@@ -68,7 +70,7 @@ export default function ProjectSlider({ projects }: ProjectSliderProps) {
|
|||||||
<span className="text-sm md:text-lg">→</span>
|
<span className="text-sm md:text-lg">→</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</Link>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
export interface Project {
|
export interface Project {
|
||||||
id: number;
|
id: number;
|
||||||
|
slug: string;
|
||||||
year: string;
|
year: string;
|
||||||
location: string;
|
location: string;
|
||||||
title: string;
|
title: string;
|
||||||
@@ -10,6 +11,7 @@ export interface Project {
|
|||||||
export const projects: Project[] = [
|
export const projects: Project[] = [
|
||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
|
slug: 'jdhm-genel-merkez',
|
||||||
year: '2018',
|
year: '2018',
|
||||||
location: 'SAINT-AUGUSTIN-DE-DESMAURES',
|
location: 'SAINT-AUGUSTIN-DE-DESMAURES',
|
||||||
title: 'JDHM – GENEL MERKEZ',
|
title: 'JDHM – GENEL MERKEZ',
|
||||||
@@ -18,6 +20,7 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 2,
|
id: 2,
|
||||||
|
slug: 'sale',
|
||||||
year: '2019',
|
year: '2019',
|
||||||
location: 'MONTREAL, QC',
|
location: 'MONTREAL, QC',
|
||||||
title: 'ŞALE',
|
title: 'ŞALE',
|
||||||
@@ -26,22 +29,17 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 3,
|
id: 3,
|
||||||
|
slug: 'modern-muze',
|
||||||
year: '2020',
|
year: '2020',
|
||||||
location: 'QUEBEC CITY, QC',
|
location: 'QUEBEC CITY, QC',
|
||||||
title: 'MODERN MÜZE',
|
title: 'MODERN MÜZE',
|
||||||
image: 'https://images.unsplash.com/photo-1511818966892-d7d671e672a2?q=80&w=2070&auto=format&fit=crop',
|
image: 'https://images.unsplash.com/photo-1511818966892-d7d671e672a2?q=80&w=2070&auto=format&fit=crop',
|
||||||
category: 'Kültürel'
|
category: 'Kültürel'
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
id: 4,
|
id: 4,
|
||||||
year: '2021',
|
slug: 'orman-evi',
|
||||||
location: 'TORONTO, ON',
|
|
||||||
title: 'ŞEHİR KULESİ',
|
|
||||||
image: 'https://images.unsplash.com/photo-1449156001533-cb39414bb589?q=80&w=2070&auto=format&fit=crop',
|
|
||||||
category: 'Konut'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 5,
|
|
||||||
year: '2022',
|
year: '2022',
|
||||||
location: 'VANCOUVER, BC',
|
location: 'VANCOUVER, BC',
|
||||||
title: 'ORMAN EVİ',
|
title: 'ORMAN EVİ',
|
||||||
@@ -49,7 +47,8 @@ export const projects: Project[] = [
|
|||||||
category: 'Konut'
|
category: 'Konut'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 6,
|
id: 5,
|
||||||
|
slug: 'kocina',
|
||||||
year: '2023',
|
year: '2023',
|
||||||
location: 'SAINTE-FOY, QC',
|
location: 'SAINTE-FOY, QC',
|
||||||
title: 'KOCINA',
|
title: 'KOCINA',
|
||||||
@@ -57,7 +56,8 @@ export const projects: Project[] = [
|
|||||||
category: 'Ticari'
|
category: 'Ticari'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 7,
|
id: 6,
|
||||||
|
slug: 'yamac-evi',
|
||||||
year: '2022',
|
year: '2022',
|
||||||
location: 'MONT-TREMBLANT, QC',
|
location: 'MONT-TREMBLANT, QC',
|
||||||
title: 'YAMAÇ EVİ',
|
title: 'YAMAÇ EVİ',
|
||||||
@@ -65,7 +65,8 @@ export const projects: Project[] = [
|
|||||||
category: 'Konut'
|
category: 'Konut'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 8,
|
id: 7,
|
||||||
|
slug: 'makusham-studyo',
|
||||||
year: '2021',
|
year: '2021',
|
||||||
location: 'LÉVIS, QC',
|
location: 'LÉVIS, QC',
|
||||||
title: 'MAKUSHAM STÜDYO',
|
title: 'MAKUSHAM STÜDYO',
|
||||||
@@ -73,19 +74,13 @@ export const projects: Project[] = [
|
|||||||
category: 'Kültürel'
|
category: 'Kültürel'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 9,
|
id: 8,
|
||||||
|
slug: 'must-societe',
|
||||||
year: '2023',
|
year: '2023',
|
||||||
location: 'BROSSARD, QC',
|
location: 'BROSSARD, QC',
|
||||||
title: 'MUST SOCIÉTÉ',
|
title: 'MUST SOCIÉTÉ',
|
||||||
image: 'https://images.unsplash.com/photo-1504384308090-c894fdcc538d?q=80&w=2070&auto=format&fit=crop',
|
image: 'https://images.unsplash.com/photo-1504384308090-c894fdcc538d?q=80&w=2070&auto=format&fit=crop',
|
||||||
category: 'Ticari'
|
category: 'Ticari'
|
||||||
},
|
},
|
||||||
{
|
|
||||||
id: 10,
|
|
||||||
year: '2022',
|
|
||||||
location: 'RIMOUSKI, QC',
|
|
||||||
title: 'GÖL KENARI KULÜBESİ',
|
|
||||||
image: 'https://images.unsplash.com/photo-1449156001533-cb39414bb589?q=80&w=2070&auto=format&fit=crop',
|
|
||||||
category: 'Konut'
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user