Commit Graph

23 Commits

Author SHA1 Message Date
753876b071 feat: comprehensive website optimization for performance and mobile
All checks were successful
build-website / build (push) Successful in 1m32s
Optimizations implemented:
- Added hardware acceleration for smooth animations (will-change, transform3d)
- Optimized touch targets for mobile (minimum 48x48px)
- Added explicit image dimensions to prevent CLS
- Implemented comprehensive SEO meta tags and Open Graph
- Added structured data for LocalBusiness and Service schemas
- Configured resource hints (preconnect, dns-prefetch, preload)
- Added lazy loading to non-critical images
- Improved button accessibility with touch-action: manipulation

These optimizations improve Core Web Vitals, mobile UX, and SEO visibility.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 11:53:47 +02:00
685bcfb86c Fix jarring scroll with linear constant-speed motion
All checks were successful
build-website / build (push) Successful in 1m29s
- Replace easeInOutSine with linear easing (return t)
- Reduce duration from 1200ms to 800ms for snappier feel
- Update all component references to use new duration

Linear easing provides constant-speed scrolling without any
acceleration or deceleration, eliminating the jarring effect.
2025-09-19 11:37:18 +02:00
e8a413542e Fix jarring smooth scroll with sine-based easing
All checks were successful
build-website / build (push) Successful in 1m31s
- Replace easeInOutQuad with easeInOutSine for natural motion
- Add user interruption handling (cancel on wheel/touch/keyboard)
- Add accessibility support for prefers-reduced-motion
- Optimize duration from 1800ms to 1200ms
- Add proper cleanup of event listeners and animation frames
- Update all component references to use new duration

The sine-based easing creates smooth, consistent motion throughout
the entire scroll duration without jarring speed changes.
2025-09-19 11:32:26 +02:00
fc0ee4c33b Fix smooth scroll easing for more consistent motion
All checks were successful
build-website / build (push) Successful in 1m30s
- Changed from easeInOutCubic to easeInOutQuad for smoother motion
- Increased duration from 1.5 to 1.8 seconds
- Fixed jerky acceleration/deceleration issue
- Now provides consistent, smooth scrolling throughout entire motion

The scrolling is now properly smooth without the sudden speed changes.
2025-09-19 11:22:46 +02:00
e0794df092 Add slower smooth scrolling and scroll to explore indicator
All checks were successful
build-website / build (push) Successful in 1m30s
Features added:
- Custom smooth scroll composable with adjustable duration (1.5 seconds)
- Replaced native browser smooth scroll with custom implementation
- Added 'Scroll to explore' text with chevron at bottom of hero
- Animated bounce effect for scroll indicator
- Chevron icon with subtle animation
- Click handler to scroll to services section
- Hidden on mobile for cleaner experience

All anchor links now scroll more slowly and smoothly for better UX.
2025-09-19 11:18:25 +02:00
bcb729c017 Add scroll-to-top functionality on logo/title click
All checks were successful
build-website / build (push) Successful in 1m33s
- Made navbar brand (logo + title) clickable with cursor pointer
- Added scrollToTop function to smoothly scroll to page top
- Especially useful on mobile devices for quick navigation

Users can now tap the Harbor Smith logo or title to return to top.
2025-09-19 11:10:09 +02:00
213813f3a6 Revert app.vue changes that broke header styling
All checks were successful
build-website / build (push) Successful in 1m30s
- Removed app.vue file that was interfering with navbar scroll behavior
- Restored min-h-screen in default.vue layout
- Restored min-height in body CSS
- Kept the mobile footer fixes which are working correctly

The header now properly changes to white background when scrolling past hero.
2025-09-19 11:06:53 +02:00
31bc2604b8 Fix iPhone Safari viewport and mobile footer issues
All checks were successful
build-website / build (push) Successful in 1m30s
Hero Section Viewport Fix:
- Changed body from min-height to height:100% for proper iOS inheritance
- Updated layout wrapper from min-h-screen to h-full
- Created app.vue with explicit height wrapper for Nuxt root
- Maintains complete height inheritance chain: html > body > #__nuxt > layout

Mobile Footer Fix:
- Fixed CSS conflict: removed grid-template-columns from flex container
- Added proper flex column layout for mobile stacking
- Removed margin-left:auto that was causing horizontal overflow
- Added word-wrap and padding for proper text wrapping
- Centered all footer content on mobile devices

These changes ensure the hero section fills the entire iPhone Safari viewport
including the URL bar area, and the footer displays correctly without cutoff.
2025-09-19 11:02:46 +02:00
ae3aefd41b Fix iPhone Safari viewport issue - hero section now fills entire screen
All checks were successful
build-website / build (push) Successful in 1m33s
- Removed safe area padding from .hero-voyage container (was reducing height)
- Simplified video container positioning to fill parent (top:0, bottom:0)
- Applied safe area padding only to .hero-content to protect text/buttons
- Container now uses full viewport height without reduction

The issue was that adding safe area padding to the container itself was
reducing the available height instead of extending it. Safe areas should
only protect content from being obscured, not shrink containers.
2025-09-19 10:50:21 +02:00
86401b91fc Fix iPhone Safari viewport to fill entire screen
All checks were successful
build-website / build (push) Successful in 1m31s
- Add viewport-fit=cover to meta tag for safe area extension
- Implement iOS-specific height handling with -webkit-fill-available
- Use dynamic viewport height (100dvh) for proper mobile behavior
- Extend video container beyond safe areas with negative positioning
- Add safe area padding with env() variables for content positioning
- Include mobile-specific @supports queries for better compatibility

This ensures the hero section fills the entire iPhone viewport from top to bottom, extending behind the status bar and home indicator while keeping content readable within safe areas.
2025-09-19 10:36:14 +02:00
052399e3f7 Improve hero load experience
All checks were successful
build-website / build (push) Successful in 1m29s
2025-09-19 02:50:53 +02:00
8ecb5f9059 Polish hero and buttons for responsiveness
All checks were successful
build-website / build (push) Successful in 1m28s
2025-09-19 02:42:13 +02:00
9335d14ca4 Fix hero video loading with white overlay fade-in
All checks were successful
build-website / build (push) Successful in 1m36s
- Remove poster image to eliminate jarring flash
- Add white gradient overlay that fades when video ready
- Implement smooth 800ms transition for premium UX
- Add video preload link tag for faster loading
- Works seamlessly on both mobile and desktop

The white overlay approach provides a clean loading experience that matches the luxury brand aesthetic while the video loads in the background.
2025-09-19 02:12:04 +02:00
b05111b613 Fix video not playing - add multiple event listeners and fallback
All checks were successful
build-website / build (push) Successful in 1m34s
- Add loadeddata and play events in addition to canplaythrough
- Add fallback timeout to ensure video becomes visible after 1.5s
- This ensures video will display even if autoplay events don't fire properly
2025-09-19 01:59:29 +02:00
fcd8a4460a Fix video loading flash and horizontal scroll on mobile
All checks were successful
build-website / build (push) Successful in 1m33s
- Change video preload from metadata to auto for faster loading
- Add fade-in transition for smooth video appearance
- Remove transform scale(1.1) that caused horizontal overflow
- Add comprehensive overflow-x: hidden to html, body, and hero containers
- Add max-width: 100vw constraints at multiple levels
- Add contain: layout to hero section for better overflow control
- Implement proper loading states to prevent fallback image flash
2025-09-19 01:51:21 +02:00
5024fc5385 Fix mobile responsiveness with dynamic viewport units and fluid typography
All checks were successful
build-website / build (push) Successful in 1m32s
- Implement dynamic viewport units (dvh) for proper mobile scaling
- Add fluid typography using clamp() functions
- Fix iOS-specific viewport issues with -webkit-fill-available
- Add scroll-margin-top to prevent section overlaps
- Improve touch targets to 50px minimum for mobile UX
- Add CSS custom properties for consistent responsive spacing
- Fix hero section to properly fill mobile viewport
- Update service cards for better mobile layout
2025-09-19 01:39:19 +02:00
1211b67642 Improve mobile responsiveness across all sections
All checks were successful
build-website / build (push) Successful in 1m31s
- Increase hero content size for better mobile visibility
- Expand buttons and touch targets to recommended sizes
- Fix section padding and container widths for mobile
- Ensure all cards and grids use full width on mobile
- Update typography scaling for better readability
- Set proper viewport base font size (16px)
- Add comprehensive mobile layout fixes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 01:23:20 +02:00
2d6ec4e432 Fix critical mobile optimizations for iPhone
All checks were successful
build-website / build (push) Successful in 1m29s
- Update viewport meta to prevent zoom-out issues
- Add video preload and smooth fallback transitions
- Implement iOS overscroll bounce prevention
- Center service offering buttons properly
- Add mobile-specific padding and touch target sizing
- Optimize video loading with canplaythrough event
- Add fade-out transition for fallback image

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 01:16:44 +02:00
32b3083b77 Fix Vue website to match HTML mockup styling
All checks were successful
build-website / build (push) Successful in 1m34s
- Fix testimonial stars to display horizontally
- Make booking section buttons always visible
- Align footer Get in Touch section to the right
- Add proper video overlay gradients for text visibility
- Fix booking card visibility with white backgrounds
- Improve mobile responsiveness with smaller buttons
- Create 2x2 stats grid for mobile view
- Add Harbor Smith logo as favicon
- Remove scroll indicator from hero section
- Add animated counter for seafarers (0 to 100+)
- Center and resize mobile buttons properly

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-19 01:06:21 +02:00
6ff4574558 fixes
All checks were successful
build-website / build (push) Successful in 1m28s
2025-09-19 00:35:05 +02:00
a806dd8560 Publish Docker image to Gitea registry
All checks were successful
build-website / build (push) Successful in 1m45s
2025-09-18 23:59:45 +02:00
e267061cc4 Ensure tsconfig.node.json generated during prepare
Some checks failed
build-website / build (push) Failing after 58s
2025-09-18 23:45:28 +02:00
ec72c5d62b Initial import of HarborSmith website
Some checks failed
build-website / build (push) Failing after 1m2s
2025-09-18 22:20:01 +02:00