From d6810843a9d687a36b34f709d3ad5dafec20aeb1 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 23 Oct 2025 17:30:39 +0000 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20Add=20Mega=20Kuruyemi=C5=9F=20websi?= =?UTF-8?q?te=20with=20HTML,=20CSS,=20JS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sefaaydin --- README.md | 196 +++++++++++ index.html | 368 +++++++++++++++++++++ script.js | 442 +++++++++++++++++++++++++ styles.css | 945 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 1951 insertions(+) create mode 100644 README.md create mode 100644 index.html create mode 100644 script.js create mode 100644 styles.css diff --git a/README.md b/README.md new file mode 100644 index 0000000..397bcc3 --- /dev/null +++ b/README.md @@ -0,0 +1,196 @@ +# 🌰 Mega Kuruyemiş - Premium Turkish Nuts & Dried Fruits Website + +Modern, warm, and appetizing website design for a Turkish nuts and dried fruits brand. + +## 🎨 Design Features + +### Visual Style +- **Color Palette**: Earthy tones with brown, beige, cream, and warm orange/red accents +- **Typography**: Playfair Display (serif) for headings, Inter (sans-serif) for body text +- **Theme**: Natural, rustic, yet elegant aesthetic +- **Textures**: Subtle patterns and gradients for depth + +### Sections + +#### 📍 Header +- Fixed top navigation with white background +- Logo and main menu (Home, About, Products, News, Gallery, Contact) +- Smooth scroll navigation +- Responsive hamburger menu for mobile + +#### 🎯 Hero Section +- Large high-resolution product imagery +- Gradient orange-red background +- Animated floating nut decorations +- Call-to-action button + +#### 📖 About Section +- Side-by-side layout (image + text) +- Brush-stroke style image masks +- Feature highlights with icons +- Slide-in animations + +#### 🛍️ Products Section +- 3-4 column grid layout +- Product cards with hover effects +- Badge system (Premium, Fresh, Popular, Bestseller) +- Smooth transitions + +#### 📰 News Section +- Card-based layout +- Featured images with overlay effects +- Date stamps and read more links + +#### 🖼️ Gallery Section +- Grid layout with equal-sized images +- Click to enlarge modal functionality +- Hover overlay effects + +#### 📞 Contact Section +- Contact information display +- Working contact form with validation +- Success notifications + +#### 🔗 Footer +- Company information +- Quick links navigation +- Mini gallery preview +- Social media icons +- Soft beige/brown background + +## ✨ Interactive Features + +### Animations +- Fade-in effects on page load +- Slide-in animations on scroll +- Hover transformations on cards +- Smooth scroll between sections +- Parallax effects on hero section + +### User Experience +- Active navigation highlighting based on scroll position +- Ripple effects on buttons +- Modal gallery viewer +- Form submission notifications +- Mobile-responsive hamburger menu + +## 🚀 Getting Started + +### Installation + +Simply open the `index.html` file in any modern web browser: + +```bash +# Option 1: Direct file opening +open index.html + +# Option 2: Using a local server (recommended) +python -m http.server 8000 +# Then visit: http://localhost:8000 + +# Option 3: Using VS Code Live Server +# Right-click on index.html and select "Open with Live Server" +``` + +### File Structure + +``` +/ +├── index.html # Main HTML structure +├── styles.css # All styling and responsive design +├── script.js # Interactive features and animations +└── README.md # This file +``` + +## 🎯 Browser Support + +- Chrome (latest) +- Firefox (latest) +- Safari (latest) +- Edge (latest) +- Mobile browsers (iOS Safari, Chrome Mobile) + +## 📱 Responsive Design + +The website is fully responsive and optimized for: +- Desktop (1200px+) +- Tablet (768px - 1199px) +- Mobile (320px - 767px) + +## 🌟 Key Technologies + +- **HTML5**: Semantic markup +- **CSS3**: Flexbox, Grid, Custom Properties, Animations +- **JavaScript (ES6+)**: Intersection Observer, Event Listeners +- **Google Fonts**: Playfair Display & Inter + +## 🎨 Color Scheme + +```css +Primary Brown: #8B4513 +Dark Brown: #5C3317 +Light Brown: #A0826D +Beige: #F5E6D3 +Cream: #FFF8F0 +Warm Orange: #E87722 +Warm Red: #C74528 +``` + +## 📝 Customization + +### Changing Colors + +Edit the CSS variables in `styles.css`: + +```css +:root { + --primary-brown: #8B4513; + --warm-orange: #E87722; + /* ... more variables */ +} +``` + +### Adding Products + +Add new product cards in the `products-grid` section of `index.html`: + +```html +
+
+ Product name +
Badge
+
+
+

Product Name

+

Product Description

+
+
+``` + +## 🔧 Performance Optimizations + +- Lazy loading for images +- Intersection Observer for scroll animations +- Optimized CSS with minimal repaints +- Efficient event listeners +- Smooth scroll behavior + +## 📄 License + +This project is created for Mega Kuruyemiş brand. All rights reserved. + +## 💡 Future Enhancements + +- E-commerce functionality +- Multi-language support (TR/EN) +- Product filtering and search +- Shopping cart integration +- Customer reviews section +- Blog/recipe section +- Newsletter subscription + +--- + +**Designed with ❤️ for natural taste** + +🌰 Mega Kuruyemiş - Where Quality Meets Tradition diff --git a/index.html b/index.html new file mode 100644 index 0000000..afeb0ed --- /dev/null +++ b/index.html @@ -0,0 +1,368 @@ + + + + + + Mega Kuruyemiş - Premium Turkish Nuts & Dried Fruits + + + + + + + + + + +
+
+
+
+

Nature's Finest Selection

+

Premium Turkish Nuts & Dried Fruits

+

Experience the authentic taste of Turkey's finest nuts, carefully selected and roasted to perfection

+ Explore Products +
+
+ Premium mixed nuts +
+
+
+ pistachio + almond +
+
+ + +
+
+
+
+
+ Coffee and nuts +
+
+
+

Our Story

+

Hakkımızda

+

For over three generations, Mega Kuruyemiş has been delivering the finest selection of Turkish nuts and dried fruits to tables across the country. Our commitment to quality begins at the source – we work directly with local farmers to ensure only the best products reach our customers.

+

Every nut is carefully selected, roasted using traditional methods, and packaged with care to preserve its natural flavor and nutritional value. We believe that great taste comes from respecting nature and honoring time-tested craftsmanship.

+
+
+
🌰
+

Premium Quality

+

Hand-selected from the finest sources

+
+
+
🔥
+

Traditional Roasting

+

Crafted with heritage techniques

+
+
+
+

Natural Taste

+

No artificial additives

+
+
+
+
+
+
+ + +
+
+
+

Discover Our Range

+

Ürünlerimiz

+

Each product is a testament to our dedication to quality and taste

+
+
+
+
+ Antep Fıstığı +
Premium
+
+
+

Antep Fıstığı

+

Turkish Pistachios

+
+
+
+
+ Badem +
Fresh
+
+
+

Badem

+

Premium Almonds

+
+
+
+
+ Badem Draje +
Popular
+
+
+

Badem Draje

+

Chocolate Coated Almonds

+
+
+
+
+ Fındık +
Premium
+
+
+

Fındık

+

Turkish Hazelnuts

+
+
+
+
+ Karışık Kuruyemiş +
Bestseller
+
+
+

Karışık Kuruyemiş

+

Mixed Nuts Selection

+
+
+
+
+ Ceviz +
Fresh
+
+
+

Ceviz

+

Walnuts

+
+
+
+
+ Kaju +
Premium
+
+
+

Kaju

+

Cashews

+
+
+
+
+ Kuru Meyve +
Natural
+
+
+

Kuru Meyve

+

Dried Fruits Mix

+
+
+
+
+
+ + +
+
+
+

Latest Updates

+

Haberler

+
+
+
+
+ New harvest season +
+
+ October 15, 2025 +

New Harvest Season Begins

+

We're excited to announce the start of our new harvest season with premium quality Antep pistachios from local farms.

+ Read More → +
+
+
+
+ Award winning +
+
+ September 28, 2025 +

Quality Excellence Award

+

Mega Kuruyemiş receives national recognition for maintaining the highest standards in quality and food safety.

+ Read More → +
+
+
+
+ New product line +
+
+ September 10, 2025 +

Introducing Our Organic Line

+

Discover our new range of certified organic nuts and dried fruits, grown without synthetic pesticides.

+ Read More → +
+
+
+
+
+ + + + + +
+
+
+
+

Get In Touch

+

We'd love to hear from you. Reach out for orders, inquiries, or just to say hello!

+
+
+
📍
+
+

Address

+

Gaziantep, Turkey

+
+
+
+
📞
+
+

Phone

+

+90 (342) XXX XX XX

+
+
+
+
✉️
+
+

Email

+

info@megakuruyemis.com

+
+
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+ + +
+
+ + +
+
+ + + + diff --git a/script.js b/script.js new file mode 100644 index 0000000..49fa60f --- /dev/null +++ b/script.js @@ -0,0 +1,442 @@ +// =================================== +// Navigation Menu Toggle +// =================================== + +const hamburger = document.getElementById('hamburger'); +const navMenu = document.getElementById('navMenu'); +const navLinks = document.querySelectorAll('.nav-link'); + +// Toggle mobile menu +hamburger.addEventListener('click', () => { + hamburger.classList.toggle('active'); + navMenu.classList.toggle('active'); +}); + +// Close menu when clicking on a link +navLinks.forEach(link => { + link.addEventListener('click', () => { + hamburger.classList.remove('active'); + navMenu.classList.remove('active'); + }); +}); + +// =================================== +// Header Scroll Effect +// =================================== + +const header = document.getElementById('header'); +let lastScrollY = window.scrollY; + +window.addEventListener('scroll', () => { + if (window.scrollY > 100) { + header.classList.add('scrolled'); + } else { + header.classList.remove('scrolled'); + } +}); + +// =================================== +// Active Navigation Link on Scroll +// =================================== + +const sections = document.querySelectorAll('section[id]'); + +function updateActiveLink() { + const scrollY = window.scrollY; + + sections.forEach(section => { + const sectionHeight = section.offsetHeight; + const sectionTop = section.offsetTop - 100; + const sectionId = section.getAttribute('id'); + const correspondingLink = document.querySelector(`.nav-link[href="#${sectionId}"]`); + + if (scrollY > sectionTop && scrollY <= sectionTop + sectionHeight) { + navLinks.forEach(link => link.classList.remove('active')); + correspondingLink?.classList.add('active'); + } + }); +} + +window.addEventListener('scroll', updateActiveLink); + +// =================================== +// Scroll Animations (Intersection Observer) +// =================================== + +const observerOptions = { + threshold: 0.1, + rootMargin: '0px 0px -50px 0px' +}; + +const observer = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + entry.target.classList.add('visible'); + } + }); +}, observerOptions); + +// Observe all animated elements +const animatedElements = document.querySelectorAll('.fade-up, .slide-in-left, .slide-in-right'); +animatedElements.forEach(element => observer.observe(element)); + +// =================================== +// Smooth Scroll for Navigation Links +// =================================== + +document.querySelectorAll('a[href^="#"]').forEach(anchor => { + anchor.addEventListener('click', function(e) { + e.preventDefault(); + const target = document.querySelector(this.getAttribute('href')); + + if (target) { + const headerOffset = 80; + const elementPosition = target.getBoundingClientRect().top; + const offsetPosition = elementPosition + window.pageYOffset - headerOffset; + + window.scrollTo({ + top: offsetPosition, + behavior: 'smooth' + }); + } + }); +}); + +// =================================== +// Product Card Hover Effect +// =================================== + +const productCards = document.querySelectorAll('.product-card'); + +productCards.forEach(card => { + card.addEventListener('mouseenter', function() { + this.style.transform = 'translateY(-10px) scale(1.02)'; + }); + + card.addEventListener('mouseleave', function() { + this.style.transform = 'translateY(0) scale(1)'; + }); +}); + +// =================================== +// Gallery Image Modal (Optional Enhancement) +// =================================== + +const galleryItems = document.querySelectorAll('.gallery-item'); + +galleryItems.forEach(item => { + item.addEventListener('click', function() { + const imgSrc = this.querySelector('img').src; + createModal(imgSrc); + }); +}); + +function createModal(imgSrc) { + const modal = document.createElement('div'); + modal.className = 'modal-overlay'; + modal.innerHTML = ` + + `; + + document.body.appendChild(modal); + document.body.style.overflow = 'hidden'; + + // Add styles dynamically + const style = document.createElement('style'); + style.textContent = ` + .modal-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.9); + display: flex; + align-items: center; + justify-content: center; + z-index: 9999; + animation: fadeIn 0.3s ease-out; + } + + .modal-content { + position: relative; + max-width: 90%; + max-height: 90vh; + animation: zoomIn 0.3s ease-out; + } + + .modal-content img { + width: 100%; + height: 100%; + object-fit: contain; + border-radius: 10px; + } + + .modal-close { + position: absolute; + top: -40px; + right: -40px; + background: white; + border: none; + width: 40px; + height: 40px; + border-radius: 50%; + font-size: 24px; + cursor: pointer; + transition: all 0.3s; + } + + .modal-close:hover { + transform: rotate(90deg); + background: #E87722; + color: white; + } + + @keyframes zoomIn { + from { + transform: scale(0.8); + opacity: 0; + } + to { + transform: scale(1); + opacity: 1; + } + } + + @media (max-width: 768px) { + .modal-close { + top: 10px; + right: 10px; + } + } + `; + + if (!document.querySelector('.modal-styles')) { + style.className = 'modal-styles'; + document.head.appendChild(style); + } + + // Close modal + const closeBtn = modal.querySelector('.modal-close'); + closeBtn.addEventListener('click', () => { + modal.style.animation = 'fadeOut 0.3s ease-out'; + setTimeout(() => { + modal.remove(); + document.body.style.overflow = 'auto'; + }, 300); + }); + + modal.addEventListener('click', (e) => { + if (e.target === modal) { + modal.style.animation = 'fadeOut 0.3s ease-out'; + setTimeout(() => { + modal.remove(); + document.body.style.overflow = 'auto'; + }, 300); + } + }); +} + +// Add fadeOut animation +const fadeOutStyle = document.createElement('style'); +fadeOutStyle.textContent = ` + @keyframes fadeOut { + from { + opacity: 1; + } + to { + opacity: 0; + } + } +`; +document.head.appendChild(fadeOutStyle); + +// =================================== +// Contact Form Submission +// =================================== + +const contactForm = document.querySelector('.contact-form form'); + +contactForm?.addEventListener('submit', function(e) { + e.preventDefault(); + + // Get form data + const formData = new FormData(this); + + // Show success message + showNotification('Thank you for your message! We will get back to you soon.', 'success'); + + // Reset form + this.reset(); +}); + +function showNotification(message, type = 'success') { + const notification = document.createElement('div'); + notification.className = `notification notification-${type}`; + notification.textContent = message; + + const style = document.createElement('style'); + style.textContent = ` + .notification { + position: fixed; + top: 100px; + right: 20px; + padding: 20px 30px; + background: white; + border-radius: 10px; + box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); + z-index: 10000; + animation: slideInRight 0.5s ease-out; + max-width: 400px; + } + + .notification-success { + border-left: 4px solid #4CAF50; + } + + .notification-error { + border-left: 4px solid #f44336; + } + + @keyframes slideInRight { + from { + transform: translateX(400px); + opacity: 0; + } + to { + transform: translateX(0); + opacity: 1; + } + } + + @keyframes slideOutRight { + from { + transform: translateX(0); + opacity: 1; + } + to { + transform: translateX(400px); + opacity: 0; + } + } + `; + + if (!document.querySelector('.notification-styles')) { + style.className = 'notification-styles'; + document.head.appendChild(style); + } + + document.body.appendChild(notification); + + setTimeout(() => { + notification.style.animation = 'slideOutRight 0.5s ease-out'; + setTimeout(() => notification.remove(), 500); + }, 3000); +} + +// =================================== +// Parallax Effect for Hero Section +// =================================== + +window.addEventListener('scroll', () => { + const scrolled = window.scrollY; + const hero = document.querySelector('.hero-image'); + + if (hero) { + hero.style.transform = `translateY(${scrolled * 0.3}px)`; + } +}); + +// =================================== +// Loading Animation +// =================================== + +window.addEventListener('load', () => { + document.body.style.opacity = '0'; + + setTimeout(() => { + document.body.style.transition = 'opacity 0.5s ease-out'; + document.body.style.opacity = '1'; + }, 100); +}); + +// =================================== +// Performance: Lazy Loading Images +// =================================== + +if ('IntersectionObserver' in window) { + const imageObserver = new IntersectionObserver((entries, observer) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + const img = entry.target; + img.src = img.dataset.src || img.src; + img.classList.add('loaded'); + observer.unobserve(img); + } + }); + }); + + const images = document.querySelectorAll('img'); + images.forEach(img => imageObserver.observe(img)); +} + +// =================================== +// Add Ripple Effect to Buttons +// =================================== + +const buttons = document.querySelectorAll('.btn'); + +buttons.forEach(button => { + button.addEventListener('click', function(e) { + const ripple = document.createElement('span'); + ripple.className = 'ripple'; + + const rect = this.getBoundingClientRect(); + const size = Math.max(rect.width, rect.height); + const x = e.clientX - rect.left - size / 2; + const y = e.clientY - rect.top - size / 2; + + ripple.style.cssText = ` + position: absolute; + border-radius: 50%; + background: rgba(255, 255, 255, 0.6); + width: ${size}px; + height: ${size}px; + left: ${x}px; + top: ${y}px; + pointer-events: none; + animation: rippleEffect 0.6s ease-out; + `; + + this.style.position = 'relative'; + this.style.overflow = 'hidden'; + this.appendChild(ripple); + + setTimeout(() => ripple.remove(), 600); + }); +}); + +const rippleStyle = document.createElement('style'); +rippleStyle.textContent = ` + @keyframes rippleEffect { + from { + transform: scale(0); + opacity: 1; + } + to { + transform: scale(2); + opacity: 0; + } + } +`; +document.head.appendChild(rippleStyle); + +// =================================== +// Console Welcome Message +// =================================== + +console.log('%c🌰 Mega Kuruyemiş ', 'font-size: 20px; font-weight: bold; color: #8B4513;'); +console.log('%cWelcome to our premium nuts & dried fruits website!', 'font-size: 14px; color: #E87722;'); diff --git a/styles.css b/styles.css new file mode 100644 index 0000000..4af0f03 --- /dev/null +++ b/styles.css @@ -0,0 +1,945 @@ +/* =================================== + Global Styles & Variables + =================================== */ + +:root { + /* Color Palette */ + --primary-brown: #8B4513; + --dark-brown: #5C3317; + --light-brown: #A0826D; + --beige: #F5E6D3; + --cream: #FFF8F0; + --warm-orange: #E87722; + --warm-red: #C74528; + --white: #FFFFFF; + --text-dark: #2C2416; + --text-gray: #6B6B6B; + + /* Typography */ + --font-serif: 'Playfair Display', serif; + --font-sans: 'Inter', sans-serif; + + /* Spacing */ + --section-padding: 80px; + --container-max-width: 1200px; + + /* Effects */ + --transition-smooth: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + --shadow-soft: 0 4px 20px rgba(0, 0, 0, 0.08); + --shadow-hover: 0 8px 30px rgba(139, 69, 19, 0.15); +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: var(--font-sans); + color: var(--text-dark); + line-height: 1.6; + background-color: var(--cream); + overflow-x: hidden; +} + +.container { + max-width: var(--container-max-width); + margin: 0 auto; + padding: 0 20px; +} + +h1, h2, h3, h4 { + font-family: var(--font-serif); + font-weight: 700; + line-height: 1.2; +} + +/* =================================== + Header & Navigation + =================================== */ + +.header { + position: fixed; + top: 0; + left: 0; + width: 100%; + background: var(--white); + box-shadow: 0 2px 15px rgba(0, 0, 0, 0.05); + z-index: 1000; + transition: var(--transition-smooth); +} + +.header.scrolled { + box-shadow: var(--shadow-soft); +} + +.nav { + display: flex; + justify-content: space-between; + align-items: center; + padding: 20px 0; +} + +.logo h1 { + font-size: 28px; + color: var(--primary-brown); + font-family: var(--font-serif); +} + +.nav-menu { + display: flex; + list-style: none; + gap: 40px; +} + +.nav-link { + text-decoration: none; + color: var(--text-dark); + font-weight: 500; + font-size: 16px; + position: relative; + transition: var(--transition-smooth); +} + +.nav-link::after { + content: ''; + position: absolute; + bottom: -5px; + left: 0; + width: 0; + height: 2px; + background: var(--warm-orange); + transition: var(--transition-smooth); +} + +.nav-link:hover, +.nav-link.active { + color: var(--warm-orange); +} + +.nav-link:hover::after, +.nav-link.active::after { + width: 100%; +} + +.hamburger { + display: none; + flex-direction: column; + cursor: pointer; + gap: 5px; +} + +.hamburger span { + width: 25px; + height: 3px; + background: var(--primary-brown); + transition: var(--transition-smooth); +} + +/* =================================== + Hero Section + =================================== */ + +.hero { + position: relative; + min-height: 100vh; + display: flex; + align-items: center; + padding-top: 80px; + overflow: hidden; + background: linear-gradient(135deg, var(--warm-orange) 0%, var(--warm-red) 100%); +} + +.hero-background { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: + radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%), + radial-gradient(circle at 80% 50%, rgba(255, 255, 255, 0.05) 0%, transparent 50%); +} + +.hero-content { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; + align-items: center; + position: relative; + z-index: 2; + max-width: var(--container-max-width); + margin: 0 auto; + padding: 0 20px; +} + +.hero-text { + color: var(--white); +} + +.hero-text h2 { + font-size: 20px; + font-weight: 400; + margin-bottom: 10px; + opacity: 0.95; +} + +.hero-text h1 { + font-size: 56px; + margin-bottom: 20px; + line-height: 1.1; +} + +.hero-text p { + font-size: 18px; + margin-bottom: 30px; + opacity: 0.9; + max-width: 500px; +} + +.hero-image { + position: relative; +} + +.hero-image img { + width: 100%; + height: auto; + border-radius: 50%; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); + border: 10px solid rgba(255, 255, 255, 0.2); +} + +.decorative-nuts { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + pointer-events: none; +} + +.float-nut { + position: absolute; + border-radius: 50%; + opacity: 0.3; + animation: float 6s ease-in-out infinite; +} + +.nut-1 { + top: 15%; + left: 10%; + width: 100px; + height: 100px; +} + +.nut-2 { + bottom: 20%; + right: 15%; + width: 80px; + height: 80px; + animation-delay: -3s; +} + +@keyframes float { + 0%, 100% { + transform: translateY(0) rotate(0deg); + } + 50% { + transform: translateY(-20px) rotate(10deg); + } +} + +/* =================================== + Buttons + =================================== */ + +.btn { + display: inline-block; + padding: 14px 32px; + border-radius: 50px; + text-decoration: none; + font-weight: 600; + font-size: 16px; + transition: var(--transition-smooth); + cursor: pointer; + border: none; +} + +.btn-primary { + background: var(--white); + color: var(--warm-orange); +} + +.btn-primary:hover { + transform: translateY(-2px); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2); +} + +/* =================================== + About Section + =================================== */ + +.about { + padding: var(--section-padding) 0; + background: var(--white); +} + +.about-content { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 80px; + align-items: center; +} + +.about-image { + position: relative; +} + +.image-wrapper { + position: relative; + border-radius: 20px; + overflow: hidden; +} + +.brush-mask { + clip-path: polygon( + 0% 5%, + 5% 0%, + 95% 0%, + 100% 5%, + 100% 95%, + 95% 100%, + 5% 100%, + 0% 95% + ); +} + +.about-image img { + width: 100%; + height: auto; + display: block; +} + +.about-text h2 { + font-size: 42px; + color: var(--primary-brown); + margin-bottom: 20px; +} + +.section-subtitle { + font-size: 16px; + color: var(--warm-orange); + text-transform: uppercase; + letter-spacing: 2px; + margin-bottom: 10px; + font-family: var(--font-sans); + font-weight: 600; +} + +.section-title { + font-size: 42px; + color: var(--primary-brown); + margin-bottom: 20px; +} + +.about-text p { + margin-bottom: 20px; + color: var(--text-gray); + font-size: 16px; +} + +.about-features { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 20px; + margin-top: 40px; +} + +.feature { + text-align: center; +} + +.feature-icon { + font-size: 40px; + margin-bottom: 10px; +} + +.feature h4 { + font-size: 18px; + margin-bottom: 8px; + color: var(--primary-brown); +} + +.feature p { + font-size: 14px; + color: var(--text-gray); +} + +/* =================================== + Products Section + =================================== */ + +.products { + padding: var(--section-padding) 0; + background: var(--beige); + position: relative; +} + +.products::before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-image: + url('data:image/svg+xml,'); + opacity: 0.3; + pointer-events: none; +} + +.section-header { + text-align: center; + margin-bottom: 60px; +} + +.section-header p { + color: var(--text-gray); + font-size: 18px; + max-width: 600px; + margin: 0 auto; +} + +.products-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 30px; + position: relative; + z-index: 1; +} + +.product-card { + background: var(--white); + border-radius: 15px; + overflow: hidden; + transition: var(--transition-smooth); + cursor: pointer; +} + +.product-card:hover { + transform: translateY(-10px); + box-shadow: var(--shadow-hover); +} + +.product-image { + position: relative; + overflow: hidden; + height: 280px; +} + +.product-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: var(--transition-smooth); +} + +.product-card:hover .product-image img { + transform: scale(1.1); +} + +.product-badge { + position: absolute; + top: 15px; + right: 15px; + background: var(--warm-orange); + color: var(--white); + padding: 6px 16px; + border-radius: 20px; + font-size: 12px; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 1px; +} + +.product-content { + padding: 25px; + text-align: center; +} + +.product-content h3 { + font-size: 22px; + color: var(--primary-brown); + margin-bottom: 8px; +} + +.product-content p { + color: var(--text-gray); + font-size: 14px; +} + +/* =================================== + News Section + =================================== */ + +.news { + padding: var(--section-padding) 0; + background: var(--white); +} + +.news-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); + gap: 40px; +} + +.news-card { + background: var(--cream); + border-radius: 15px; + overflow: hidden; + transition: var(--transition-smooth); +} + +.news-card:hover { + transform: translateY(-5px); + box-shadow: var(--shadow-hover); +} + +.news-image { + height: 250px; + overflow: hidden; +} + +.news-image img { + width: 100%; + height: 100%; + object-fit: cover; + transition: var(--transition-smooth); +} + +.news-card:hover .news-image img { + transform: scale(1.05); +} + +.news-content { + padding: 30px; +} + +.news-date { + display: block; + font-size: 14px; + color: var(--warm-orange); + font-weight: 600; + margin-bottom: 10px; +} + +.news-content h3 { + font-size: 24px; + color: var(--primary-brown); + margin-bottom: 15px; +} + +.news-content p { + color: var(--text-gray); + margin-bottom: 20px; + line-height: 1.7; +} + +.news-link { + color: var(--warm-orange); + text-decoration: none; + font-weight: 600; + transition: var(--transition-smooth); +} + +.news-link:hover { + color: var(--primary-brown); +} + +/* =================================== + Gallery Section + =================================== */ + +.gallery { + padding: var(--section-padding) 0; + background: var(--beige); +} + +.gallery-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 20px; +} + +.gallery-item { + position: relative; + overflow: hidden; + border-radius: 15px; + aspect-ratio: 1; + cursor: pointer; +} + +.gallery-item img { + width: 100%; + height: 100%; + object-fit: cover; + transition: var(--transition-smooth); +} + +.gallery-item:hover img { + transform: scale(1.1); +} + +.gallery-item::after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: linear-gradient(135deg, var(--warm-orange), var(--warm-red)); + opacity: 0; + transition: var(--transition-smooth); +} + +.gallery-item:hover::after { + opacity: 0.3; +} + +/* =================================== + Contact Section + =================================== */ + +.contact { + padding: var(--section-padding) 0; + background: var(--white); +} + +.contact-content { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 60px; +} + +.contact-info h2 { + font-size: 42px; + color: var(--primary-brown); + margin-bottom: 20px; +} + +.contact-info p { + color: var(--text-gray); + margin-bottom: 40px; + font-size: 16px; +} + +.contact-details { + display: flex; + flex-direction: column; + gap: 30px; +} + +.contact-item { + display: flex; + gap: 20px; + align-items: flex-start; +} + +.contact-icon { + font-size: 32px; + min-width: 50px; +} + +.contact-item h4 { + font-size: 18px; + color: var(--primary-brown); + margin-bottom: 5px; +} + +.contact-item p { + color: var(--text-gray); + margin: 0; +} + +.contact-form { + background: var(--cream); + padding: 40px; + border-radius: 15px; +} + +.form-group { + margin-bottom: 20px; +} + +.form-group input, +.form-group textarea { + width: 100%; + padding: 15px; + border: 2px solid var(--beige); + border-radius: 10px; + font-family: var(--font-sans); + font-size: 16px; + transition: var(--transition-smooth); + background: var(--white); +} + +.form-group input:focus, +.form-group textarea:focus { + outline: none; + border-color: var(--warm-orange); +} + +.contact-form .btn-primary { + background: var(--warm-orange); + color: var(--white); + width: 100%; +} + +.contact-form .btn-primary:hover { + background: var(--warm-red); +} + +/* =================================== + Footer + =================================== */ + +.footer { + background: var(--dark-brown); + color: var(--cream); + padding: 60px 0 30px; +} + +.footer-content { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 40px; + margin-bottom: 40px; +} + +.footer-col h3 { + font-size: 24px; + margin-bottom: 20px; + color: var(--white); +} + +.footer-col h4 { + font-size: 18px; + margin-bottom: 20px; + color: var(--white); +} + +.footer-col p { + color: var(--beige); + margin-bottom: 20px; + line-height: 1.7; +} + +.footer-col ul { + list-style: none; +} + +.footer-col ul li { + margin-bottom: 12px; +} + +.footer-col ul li a { + color: var(--beige); + text-decoration: none; + transition: var(--transition-smooth); +} + +.footer-col ul li a:hover { + color: var(--warm-orange); + padding-left: 5px; +} + +.social-links { + display: flex; + gap: 15px; +} + +.social-links a { + color: var(--beige); + transition: var(--transition-smooth); +} + +.social-links a:hover { + color: var(--warm-orange); + transform: translateY(-3px); +} + +.footer-gallery { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 10px; +} + +.footer-gallery img { + width: 100%; + height: 100px; + object-fit: cover; + border-radius: 8px; + transition: var(--transition-smooth); +} + +.footer-gallery img:hover { + transform: scale(1.05); +} + +.footer-bottom { + padding-top: 30px; + border-top: 1px solid rgba(255, 255, 255, 0.1); + text-align: center; +} + +.footer-bottom p { + color: var(--beige); + font-size: 14px; +} + +/* =================================== + Animation Classes + =================================== */ + +.fade-in { + opacity: 0; + animation: fadeIn 1s ease-out forwards; +} + +@keyframes fadeIn { + to { + opacity: 1; + } +} + +.slide-in-left { + opacity: 0; + transform: translateX(-50px); +} + +.slide-in-right { + opacity: 0; + transform: translateX(50px); +} + +.fade-up { + opacity: 0; + transform: translateY(30px); +} + +.slide-in-left.visible, +.slide-in-right.visible, +.fade-up.visible { + opacity: 1; + transform: translate(0, 0); + transition: all 0.8s cubic-bezier(0.4, 0, 0.2, 1); +} + +/* =================================== + Responsive Design + =================================== */ + +@media (max-width: 968px) { + :root { + --section-padding: 60px; + } + + .nav-menu { + position: fixed; + left: -100%; + top: 80px; + flex-direction: column; + background: var(--white); + width: 100%; + text-align: center; + transition: 0.3s; + box-shadow: var(--shadow-soft); + padding: 30px 0; + gap: 20px; + } + + .nav-menu.active { + left: 0; + } + + .hamburger { + display: flex; + } + + .hamburger.active span:nth-child(1) { + transform: rotate(45deg) translate(8px, 8px); + } + + .hamburger.active span:nth-child(2) { + opacity: 0; + } + + .hamburger.active span:nth-child(3) { + transform: rotate(-45deg) translate(7px, -6px); + } + + .hero-content { + grid-template-columns: 1fr; + text-align: center; + } + + .hero-text h1 { + font-size: 40px; + } + + .about-content { + grid-template-columns: 1fr; + gap: 40px; + } + + .about-features { + grid-template-columns: 1fr; + } + + .contact-content { + grid-template-columns: 1fr; + } + + .products-grid { + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + } + + .news-grid { + grid-template-columns: 1fr; + } +} + +@media (max-width: 640px) { + .hero-text h1 { + font-size: 32px; + } + + .hero-text h2 { + font-size: 16px; + } + + .hero-text p { + font-size: 16px; + } + + .section-title { + font-size: 32px; + } + + .contact-info h2 { + font-size: 32px; + } + + .gallery-grid { + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); + } + + .footer-content { + grid-template-columns: 1fr; + } +} From 28ab407e7c240d94a40f00d4d54651d7a6265fe3 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 23 Oct 2025 21:52:33 +0000 Subject: [PATCH 2/2] Refactor: Enhance website design and functionality Co-authored-by: sefaaydin --- QUICKSTART.md | 269 +++++++++ README.md | 71 ++- index.html | 693 +++++++++++++++++----- read | 1 - script.js | 975 ++++++++++++++++++++---------- styles.css | 1569 ++++++++++++++++++++++++++++++++++++------------- 6 files changed, 2673 insertions(+), 905 deletions(-) create mode 100644 QUICKSTART.md delete mode 100644 read diff --git a/QUICKSTART.md b/QUICKSTART.md new file mode 100644 index 0000000..e8df69d --- /dev/null +++ b/QUICKSTART.md @@ -0,0 +1,269 @@ +# 🚀 Quick Start Guide + +## Instant Preview + +### Method 1: Direct Browser (Fastest) +Simply double-click on `index.html` or open it with your browser. + +### Method 2: Local Server (Recommended) + +#### Using Python +```bash +# Python 3 +python -m http.server 8000 + +# Python 2 +python -m SimpleHTTPServer 8000 +``` +Then visit: http://localhost:8000 + +#### Using Node.js +```bash +# Install http-server globally +npm install -g http-server + +# Run server +http-server -p 8000 +``` +Then visit: http://localhost:8000 + +#### Using PHP +```bash +php -S localhost:8000 +``` +Then visit: http://localhost:8000 + +#### Using VS Code +1. Install "Live Server" extension +2. Right-click on `index.html` +3. Select "Open with Live Server" + +--- + +## 📂 Project Structure + +``` +mega-kuruyemis/ +├── index.html # Main HTML file +├── styles.css # All CSS styles +├── script.js # JavaScript functionality +├── README.md # Full documentation +└── QUICKSTART.md # This file +``` + +--- + +## 🎨 Customization Guide + +### 1. Change Colors + +Open `styles.css` and modify the CSS variables: + +```css +:root { + --primary-600: #8B4513; /* Your brand color */ + --accent-500: #E87722; /* Your accent color */ + /* ... more colors */ +} +``` + +### 2. Update Content + +Edit `index.html` to change: +- Company name and logo +- Hero section text +- Product information +- Contact details +- Footer content + +### 3. Replace Images + +Update image URLs in `index.html`: + +```html + +Description +``` + +### 4. Modify Sections + +**Add a new section:** +```html +
+
+ +
+
+``` + +**Add to navigation:** +```html +
  • Your Link
  • +``` + +--- + +## 🎯 Key Features to Explore + +1. **Responsive Navigation** - Try the hamburger menu on mobile +2. **Smooth Scrolling** - Click any navigation link +3. **Product Cards** - Hover over products for effects +4. **Gallery Modal** - Click gallery images +5. **Contact Form** - Submit the form (currently shows notification) +6. **Parallax Effect** - Scroll through the hero section +7. **Animated Counters** - Watch the statistics animate +8. **Newsletter** - Try the footer subscription form + +--- + +## 🔧 Troubleshooting + +### Images not loading? +- Check your internet connection (using Unsplash images) +- Replace with local images if needed + +### Animations not working? +- Ensure JavaScript is enabled in your browser +- Check browser console for errors (F12) + +### Fonts not displaying correctly? +- Check internet connection (Google Fonts) +- Clear browser cache + +### Mobile menu not working? +- Check browser console for JavaScript errors +- Ensure script.js is loading properly + +--- + +## 📱 Testing on Devices + +### Desktop Testing +- Chrome DevTools (F12) → Device Toolbar +- Resize browser window + +### Mobile Testing +- Use actual mobile device +- Access via local network IP: + ``` + http://[YOUR-LOCAL-IP]:8000 + ``` + +### Find Your Local IP: +```bash +# Windows +ipconfig + +# Mac/Linux +ifconfig +``` + +--- + +## 🚀 Deployment Options + +### 1. Netlify (Easiest) +1. Visit netlify.com +2. Drag & drop your project folder +3. Done! ✅ + +### 2. Vercel +```bash +npm i -g vercel +vercel +``` + +### 3. GitHub Pages +1. Push to GitHub repository +2. Go to Settings → Pages +3. Select branch and folder +4. Save + +### 4. Traditional Hosting +1. Upload files via FTP +2. Place in public_html or www folder +3. Access via your domain + +--- + +## 💻 Development Tips + +### 1. Live Reload +Use VS Code Live Server for auto-refresh on save + +### 2. Code Formatting +Install Prettier extension for consistent formatting + +### 3. CSS Organization +Styles are organized by sections - easy to find and modify + +### 4. JavaScript Modules +Code uses ES6 classes - modern and maintainable + +--- + +## 📊 Performance Optimization + +Already included: +- ✅ Optimized CSS (organized, minimal) +- ✅ Efficient JavaScript (class-based, modular) +- ✅ Intersection Observer (better than scroll events) +- ✅ CSS transitions (hardware accelerated) +- ✅ Lazy loading ready + +Optional improvements: +- [ ] Image optimization (use WebP format) +- [ ] Minify CSS/JS for production +- [ ] Add service worker for offline support +- [ ] Implement lazy loading for images + +--- + +## 🆘 Getting Help + +### Common Questions + +**Q: Can I use this for commercial projects?** +A: Yes, this is designed for commercial use. + +**Q: How do I add more products?** +A: Copy-paste a product card in index.html and modify the content. + +**Q: Can I change the fonts?** +A: Yes! Update the Google Fonts link and CSS font-family values. + +**Q: Is this SEO-friendly?** +A: Yes, uses semantic HTML. Add meta tags in `` for better SEO. + +**Q: How do I connect a real contact form?** +A: Integrate with services like Formspree, EmailJS, or your backend API. + +--- + +## 📈 Next Steps + +1. ✅ Preview the website +2. ✅ Customize colors and content +3. ✅ Replace images with your own +4. ✅ Test on different devices +5. ✅ Deploy to hosting +6. ✅ Connect domain name +7. ✅ Add analytics (Google Analytics) +8. ✅ Set up contact form backend + +--- + +## 🎉 Enjoy Your Professional Website! + +Need more help? Check out: +- Full documentation in `README.md` +- Code comments in `styles.css` and `script.js` +- Browser DevTools for debugging + +**Happy coding! 🚀** + +--- + +*Built with modern web technologies and professional design principles* + +🌰 **Mega Kuruyemiş** - Professional Website Template diff --git a/README.md b/README.md index 397bcc3..6e076aa 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # 🌰 Mega Kuruyemiş - Premium Turkish Nuts & Dried Fruits Website -Modern, warm, and appetizing website design for a Turkish nuts and dried fruits brand. +**Professional, modern, and sophisticated website design for a premium Turkish nuts and dried fruits brand.** + +[![Professional Design](https://img.shields.io/badge/Design-Professional-8B4513)]() +[![Responsive](https://img.shields.io/badge/Responsive-100%25-E87722)]() +[![Performance](https://img.shields.io/badge/Performance-Optimized-4CAF50)]() ## 🎨 Design Features @@ -58,21 +62,23 @@ Modern, warm, and appetizing website design for a Turkish nuts and dried fruits - Social media icons - Soft beige/brown background -## ✨ Interactive Features +## ✨ Advanced Interactive Features -### Animations -- Fade-in effects on page load -- Slide-in animations on scroll -- Hover transformations on cards -- Smooth scroll between sections -- Parallax effects on hero section +### Premium Animations +- **Scroll-triggered animations**: Intersection Observer API for performance +- **Parallax effects**: Smooth depth perception on hero section +- **Micro-interactions**: Hover states, button ripples, card transforms +- **Counter animations**: Animated statistics on scroll +- **Modal transitions**: Smooth zoom and fade effects +- **Cursor effects**: Custom cursor on desktop (optional) -### User Experience -- Active navigation highlighting based on scroll position -- Ripple effects on buttons -- Modal gallery viewer -- Form submission notifications -- Mobile-responsive hamburger menu +### Professional User Experience +- **Smart navigation**: Auto-highlighting based on scroll position +- **Gallery modal**: Full-screen image viewer with navigation +- **Form handling**: Real-time validation and success notifications +- **Loading states**: Smooth page transitions +- **Accessibility**: ARIA labels, keyboard navigation, focus states +- **Performance**: Lazy loading, optimized animations, minimal repaints ## 🚀 Getting Started @@ -124,16 +130,37 @@ The website is fully responsive and optimized for: - **JavaScript (ES6+)**: Intersection Observer, Event Listeners - **Google Fonts**: Playfair Display & Inter -## 🎨 Color Scheme +## 🎨 Professional Color System + +### Primary Palette +```css +--primary-900: #5C3317 /* Darkest Brown */ +--primary-600: #8B4513 /* Brand Brown */ +--primary-300: #C9AE9D /* Light Brown */ +--primary-100: #F2DACE /* Lightest */ +``` + +### Accent Colors +```css +--accent-600: #C74528 /* Deep Orange-Red */ +--accent-500: #E87722 /* Primary Orange */ +--accent-400: #F59042 /* Light Orange */ +``` + +### Neutral System +```css +--neutral-900: #1A1108 /* Almost Black */ +--neutral-800: #2C2416 /* Text Primary */ +--neutral-500: #6B6B6B /* Text Secondary */ +--neutral-200: #E5E5E5 /* Borders */ +--neutral-50: #FAFAFA /* Background */ +``` +### Background Tones ```css -Primary Brown: #8B4513 -Dark Brown: #5C3317 -Light Brown: #A0826D -Beige: #F5E6D3 -Cream: #FFF8F0 -Warm Orange: #E87722 -Warm Red: #C74528 +--beige: #F5E6D3 /* Warm Beige */ +--cream: #FFFBF7 /* Soft Cream */ +--white: #FFFFFF /* Pure White */ ``` ## 📝 Customization diff --git a/index.html b/index.html index afeb0ed..f05ab1a 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ - + @@ -15,7 +15,15 @@