Fix mobile logo animation and layout positioning
All checks were successful
Build And Push Image / docker (push) Successful in 2m27s
All checks were successful
Build And Push Image / docker (push) Successful in 2m27s
- Remove bounce effect from logo animation by fixing endY calculation - Adjust logo final position to 10px from top to avoid text collision - Synchronize scroll anchor with animation endpoint - Reduce form padding and tighten spacing between elements - Make submit button more compact - Ensure footer sits closer to bottom of page - Update marina image to v3 with object-bottom positioning 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
18
.claude/settings.local.json
Normal file
18
.claude/settings.local.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"permissions": {
|
||||||
|
"allow": [
|
||||||
|
"mcp__playwright__browser_navigate",
|
||||||
|
"Bash(netstat:*)",
|
||||||
|
"Bash(findstr:*)",
|
||||||
|
"Bash(npm run dev:*)",
|
||||||
|
"Bash(npm install)",
|
||||||
|
"mcp__playwright__browser_resize",
|
||||||
|
"mcp__serena__search_for_pattern",
|
||||||
|
"Bash(taskkill:*)",
|
||||||
|
"mcp__zen__analyze",
|
||||||
|
"mcp__playwright__browser_tabs"
|
||||||
|
],
|
||||||
|
"deny": [],
|
||||||
|
"ask": []
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 342 KiB After Width: | Height: | Size: 275 KiB |
BIN
public/marina_cropped_curved.jpg
Normal file
BIN
public/marina_cropped_curved.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 275 KiB |
BIN
public/marina_cropped_v2.jpg
Normal file
BIN
public/marina_cropped_v2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 278 KiB |
BIN
public/marina_cropped_v3.jpg
Normal file
BIN
public/marina_cropped_v3.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 268 KiB |
@@ -105,7 +105,7 @@ export default function Home() {
|
|||||||
// Memoized animation constants
|
// Memoized animation constants
|
||||||
const animationConstants = useMemo(() => ({
|
const animationConstants = useMemo(() => ({
|
||||||
mobile: {
|
mobile: {
|
||||||
targetTopPosition: -50, // Logo ends even higher for better spacing
|
targetTopPosition: 10, // Logo settles much higher to avoid text
|
||||||
startYFactor: 0.20, // Moved up to position logo higher on mobile
|
startYFactor: 0.20, // Moved up to position logo higher on mobile
|
||||||
finalScale: 0.5,
|
finalScale: 0.5,
|
||||||
fadeThreshold: 5
|
fadeThreshold: 5
|
||||||
@@ -143,7 +143,7 @@ export default function Home() {
|
|||||||
): Partial<CSSStyleDeclaration> => {
|
): Partial<CSSStyleDeclaration> => {
|
||||||
const { targetTopPosition, startYFactor, finalScale } = animationConstants.mobile;
|
const { targetTopPosition, startYFactor, finalScale } = animationConstants.mobile;
|
||||||
const startY = windowHeight * startYFactor;
|
const startY = windowHeight * startYFactor;
|
||||||
const endY = targetTopPosition + (logoHeight * finalScale) / 2;
|
const endY = targetTopPosition;
|
||||||
const totalDistance = startY - endY;
|
const totalDistance = startY - endY;
|
||||||
const animationEndScroll = contactTop;
|
const animationEndScroll = contactTop;
|
||||||
|
|
||||||
@@ -282,11 +282,15 @@ export default function Home() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('Starting scroll animation to:', contactSectionRef.current.offsetTop);
|
// For mobile, adjust scroll position to account for the padding
|
||||||
|
const scrollOffset = isMobile ? 0 : 0; // No offset - scroll exactly to where animation ends
|
||||||
|
const targetPosition = contactSectionRef.current.offsetTop + scrollOffset;
|
||||||
|
|
||||||
|
console.log('Starting scroll animation to:', targetPosition);
|
||||||
|
|
||||||
// Use native smooth scrolling
|
// Use native smooth scrolling
|
||||||
window.scrollTo({
|
window.scrollTo({
|
||||||
top: contactSectionRef.current.offsetTop,
|
top: targetPosition,
|
||||||
behavior: 'smooth'
|
behavior: 'smooth'
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -513,10 +517,10 @@ export default function Home() {
|
|||||||
>
|
>
|
||||||
{isMobile ? (
|
{isMobile ? (
|
||||||
// Mobile Layout - Stacked with Image
|
// Mobile Layout - Stacked with Image
|
||||||
<div className="flex flex-col min-h-[85vh] pt-[60px]">
|
<div className="flex flex-col min-h-[85vh] pt-[120px]">
|
||||||
{/* Form Section */}
|
{/* Form Section */}
|
||||||
<div className="px-8 pb-12">
|
<div className="px-8 pb-12">
|
||||||
<h2 className="font-['Palatino',_serif] text-[#C6AE97] text-[40px] mb-8 font-normal text-center">
|
<h2 className="font-['Palatino',_serif] text-[#C6AE97] text-[40px] mb-0 font-normal text-center">
|
||||||
Connect with us
|
Connect with us
|
||||||
</h2>
|
</h2>
|
||||||
<Form {...form}>
|
<Form {...form}>
|
||||||
@@ -600,10 +604,10 @@ export default function Home() {
|
|||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
<div className="pt-3">
|
<div className="pt-1">
|
||||||
<Button
|
<Button
|
||||||
type="submit"
|
type="submit"
|
||||||
className="w-full bg-[#C6AE97] text-[#1B233B] hover:bg-[#D4C1AC] font-['bill_corporate_medium'] font-medium text-[16px] uppercase tracking-wider py-3 rounded-[5px]"
|
className="w-full bg-[#C6AE97] text-[#1B233B] hover:bg-[#D4C1AC] font-['bill_corporate_medium'] font-medium text-[16px] uppercase tracking-wider py-2 rounded-[5px]"
|
||||||
>
|
>
|
||||||
SUBMIT
|
SUBMIT
|
||||||
</Button>
|
</Button>
|
||||||
@@ -616,10 +620,10 @@ export default function Home() {
|
|||||||
<div className="relative w-full h-[192px] -mt-6 px-4">
|
<div className="relative w-full h-[192px] -mt-6 px-4">
|
||||||
<div className="relative w-full h-full">
|
<div className="relative w-full h-full">
|
||||||
<Image
|
<Image
|
||||||
src="/marina_cropped.jpg"
|
src="/marina_cropped_v3.jpg"
|
||||||
alt="Port Amador Marina"
|
alt="Port Amador Marina"
|
||||||
fill
|
fill
|
||||||
className="object-cover object-center"
|
className="object-cover object-bottom"
|
||||||
sizes="(max-width: 768px) 90vw, 100vw"
|
sizes="(max-width: 768px) 90vw, 100vw"
|
||||||
priority
|
priority
|
||||||
/>
|
/>
|
||||||
@@ -627,7 +631,7 @@ export default function Home() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Footer Section */}
|
{/* Footer Section */}
|
||||||
<div className="px-8 py-8 mt-auto">
|
<div className="px-8 pt-8 pb-4 mt-auto">
|
||||||
<div className="flex justify-between items-end">
|
<div className="flex justify-between items-end">
|
||||||
<div className="flex flex-col space-y-0">
|
<div className="flex flex-col space-y-0">
|
||||||
<a href="tel:+13109132597" className="font-['bill_corporate_medium'] font-light text-[14px] text-[#C6AE97] hover:text-[#D4C1AC] transition-colors">
|
<a href="tel:+13109132597" className="font-['bill_corporate_medium'] font-light text-[14px] text-[#C6AE97] hover:text-[#D4C1AC] transition-colors">
|
||||||
|
|||||||
Reference in New Issue
Block a user