Commit Graph

34 Commits

Author SHA1 Message Date
4dcfea96ce fix: restore hero section with simplified video positioning
All checks were successful
build-website / build (push) Successful in 1m48s
- Removed CSS contain properties that were preventing video from extending into safe area
- Implemented Vue 3 Teleport to bypass DOM containment for iOS video extension
- Video now renders at body level to properly utilize safe area insets
- Kept Safari fallbacks for env() bug workaround

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-21 18:42:29 +02:00
5e7ac5fbf6 fix: Safari workaround for env() returning 0 in portrait mode
All checks were successful
build-website / build (push) Successful in 1m50s
- Add hardcoded fallbacks using max() function per Apple's recommendation
- Support both constant() and env() for legacy compatibility
- Use 59px fallback for Dynamic Island devices
- Add iOS-specific detection with @supports(-webkit-touch-callout)
- Create improved test page with device detection
- Update hero-content padding with same fallback approach

This works around the known Safari bug where env(safe-area-inset-top)
returns 0px in portrait mode. The video will now extend 59px above the
viewport on Dynamic Island iPhones, ensuring it covers the notch area.
2025-09-21 18:29:20 +02:00
69e4a22354 fix: comprehensive safe area implementation fixes for iOS video display
All checks were successful
build-website / build (push) Successful in 1m46s
- Remove overflow-x: hidden from HeroSection.vue that was clipping video
- Delete duplicate .hero-video-container styles from voyage-layout.css
- Fix navigation to use env() directly instead of CSS variables
- Remove deprecated constant() syntax
- Add safe-area-test.html for testing safe area extension

The video should now properly extend under the iOS notch/Dynamic Island
while keeping content within safe areas.
2025-09-21 18:22:06 +02:00
a9217b54cb fix: comprehensive safe area implementation for hero video
All checks were successful
build-website / build (push) Successful in 1m42s
- Remove overflow:clip from .hero-voyage that was blocking video extension
- Replace hardcoded -50px with proper env(safe-area-inset-top) calculations
- Update hero-content to use env() values directly instead of CSS variables
- Video now properly extends under notch/Dynamic Island on all iOS devices
- Works with Chrome mobile's dynamic address bar using lvh units
- Content stays within safe areas for proper usability
2025-09-21 18:06:56 +02:00
67ae33fc09 fixes
All checks were successful
build-website / build (push) Successful in 1m47s
2025-09-21 17:49:58 +02:00
d844579504 fix: resolve three critical UI issues
All checks were successful
build-website / build (push) Successful in 1m45s
- Fix hero video not displaying in notch safe area by changing z-index from -1 to 1
- Fix lucide icons not showing by installing and configuring nuxt-icon module
- Fix navigation bar bobbing by removing hysteresis thresholds and simplifying scroll handler

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-21 17:15:29 +02:00
bed1067f4d fix: iOS-specific video extension into safe area with white fallback
All checks were successful
build-website / build (push) Successful in 1m39s
- Changed body background from black to white for clean fallback
- Added iOS-specific CSS to extend video 50px beyond safe area
- Used @supports (-webkit-touch-callout: none) to target only iOS Safari
- Added hardware acceleration to prevent header bobbing on iOS
- Non-iOS mobile devices maintain normal video positioning
- Ensures white background shows if video doesn't load/extend properly
2025-09-21 16:25:58 +02:00
342a9123af fixes
All checks were successful
build-website / build (push) Successful in 1m37s
2025-09-21 16:10:10 +02:00
0af4588927 Align hero content grid and tweak iOS theme color
All checks were successful
build-website / build (push) Successful in 1m35s
2025-09-21 16:00:23 +02:00
c9e8dce4d4 Reflow hero layout and update iOS status bar style
All checks were successful
build-website / build (push) Successful in 1m37s
2025-09-21 15:42:39 +02:00
36046ca864 fixes
All checks were successful
build-website / build (push) Successful in 1m36s
2025-09-21 15:27:21 +02:00
81a8c6cf4b Recenter hero content and keep video behind notch
All checks were successful
build-website / build (push) Successful in 1m41s
2025-09-21 15:13:06 +02:00
5055612614 Clamp nav safe area and fix hero video offsets
All checks were successful
build-website / build (push) Successful in 1m36s
2025-09-21 15:04:42 +02:00
07eaf316a0 Stabilize mobile nav padding and extend hero video
All checks were successful
build-website / build (push) Successful in 1m39s
2025-09-21 14:37:28 +02:00
f27b6695e0 Fix mobile hero safe area and nav jitter
All checks were successful
build-website / build (push) Successful in 1m38s
2025-09-21 14:25:52 +02:00
96972a2bca fix: implement GPT's iOS notch video extension solution
All checks were successful
build-website / build (push) Successful in 1m37s
- Added html/body reset styles (margin:0, padding:0, background:#000)
- Removed ALL overflow:hidden from html, body, hero-voyage, and hero-video-container
- Changed hero-voyage to use overflow:clip (prevents scrollbars while allowing extension)
- Fixed video container positioning:
  - Changed from absolute to fixed positioning
  - Added top: calc(-1 * env(safe-area-inset-top)) to pull video into notch
  - Height: calc(100lvh + env(safe-area-inset-top)) with 100vh fallback
  - Set z-index: -1 to place behind all content
- Updated mobile styles to match desktop implementation
- Removed overflow-x:hidden from all parent elements

This follows GPT's exact checklist for iOS notch video extension.
2025-09-21 14:05:30 +02:00
509f7ac57b Revert "fix: restructure video as global backdrop for iOS notch extension"
All checks were successful
build-website / build (push) Successful in 1m34s
This reverts commit ed92c458a9.
2025-09-21 13:54:03 +02:00
ed92c458a9 fix: restructure video as global backdrop for iOS notch extension
All checks were successful
build-website / build (push) Successful in 1m31s
- Created VideoBackdrop component as global sibling layer
- Video now sits at app level behind all content (z-index: 0)
- Hero section made transparent to reveal video backdrop
- Video extends into notch with negative top positioning
- Content remains in safe areas with proper padding
- Removed video container from HeroSection component
- Added app.vue to manage global layout structure

This separation allows the video to truly extend edge-to-edge
including under the iOS notch/Dynamic Island while keeping
all interactive content within safe areas.
2025-09-21 13:48:03 +02:00
bc3ebcb558 revert: restore previous video positioning to fix scrolling issue
All checks were successful
build-website / build (push) Successful in 1m30s
2025-09-21 13:41:58 +02:00
06ce6e6cac fix: use negative positioning for iOS notch video extension
All checks were successful
build-website / build (push) Successful in 1m32s
- Replace broken fixed positioning with absolute + negative top
- Video now extends calc(-1 * env(safe-area-inset-top)) above container
- Height compensated with calc(100dvh + env(safe-area-inset-top))
- Container uses position: relative with overflow: visible
- Fixes iOS Safari bug where fixed positioning doesn't work properly

This approach allows the video to extend under the iOS notch/Dynamic Island
while keeping interactive content in safe areas.
2025-09-21 13:38:51 +02:00
cea7577b52 fix: remove CSS conflicts preventing iOS video from extending under notch
All checks were successful
build-website / build (push) Successful in 1m33s
- Removed incorrect height calculation that added safe areas to video height
- Removed conflicting absolute positioning from main.css
- Video container now properly uses fixed positioning on mobile
- Desktop layout preserved with absolute positioning

The video now correctly extends edge-to-edge under the iOS notch/Dynamic Island
2025-09-21 13:27:16 +02:00
b97be94e2f feat: iOS hero video extends under notch with safe area support
All checks were successful
build-website / build (push) Successful in 1m36s
- Video now uses fixed positioning on mobile to fill entire viewport
- Hero content respects safe-area-inset on all sides (top, left, right, bottom)
- Navigation bar includes safe area padding to stay below notch
- Removed padding-top from hero-voyage to allow video under notch
- Maintains smooth scroll transitions and navbar background changes

This allows the hero video to create an immersive edge-to-edge experience
on iOS devices while keeping all interactive elements accessible.
2025-09-21 13:14:22 +02:00
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
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
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
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
ec72c5d62b Initial import of HarborSmith website
Some checks failed
build-website / build (push) Failing after 1m2s
2025-09-18 22:20:01 +02:00