implemented new bugs
BIN
dev/brand-identity.png
Normal file
|
After Width: | Height: | Size: 5.1 MiB |
@ -21,6 +21,80 @@ Development log for tracking changes, decisions, and next steps.
|
||||
|
||||
---
|
||||
|
||||
## 2025-12-27 - Logo Integration & Favicon Generation
|
||||
|
||||
### Changes
|
||||
- **Generated Complete Favicon Set**: Used ffmpeg to convert logo-black.png into all standard favicon sizes
|
||||
- 16x16 favicon.ico (classic browser favicon)
|
||||
- 32x32 favicon-32.png (standard size)
|
||||
- 192x192 favicon-192.png (Android/PWA)
|
||||
- 180x180 apple-touch-icon.png (iOS)
|
||||
- 512x512 favicon-512.png (high-res/PWA)
|
||||
- **WebP Optimization**: Converted all three logo variants to WebP format for modern browsers with transparency support
|
||||
- logo-col.png (2.7MB) → logo-col.webp (513KB) - 81% reduction
|
||||
- logo-black.png (781KB) → logo-black.webp (423KB) - 46% reduction
|
||||
- logo-white.png (1.5MB) → logo-white.webp (578KB) - 61% reduction
|
||||
- Initial attempt with AVIF failed due to libaom-av1 codec not supporting alpha channel transparency
|
||||
- **Navigation Logo**: Replaced placeholder "S" badge with colored logo (logo-col.webp/png) in src/pages/index.astro:40-55
|
||||
- Used `<picture>` element with WebP + PNG fallback
|
||||
- Set to 48x48px size for optimal navigation display
|
||||
- **Footer Logo**: Replaced placeholder "S" badge with white logo (logo-white.webp/png) in src/pages/index.astro:681-696
|
||||
- Provides clean contrast against dark footer background
|
||||
- Maintains brand consistency across page sections
|
||||
- **HTML Head Updates**: Added complete favicon references in src/layouts/Layout.astro:19-24
|
||||
- SVG favicon (primary, with dark mode support)
|
||||
- ICO fallback for legacy browsers
|
||||
- Multiple PNG sizes for different contexts
|
||||
- Apple touch icon for iOS home screen
|
||||
|
||||
### Decisions
|
||||
- **Logo Placement Strategy**:
|
||||
- Navigation: Colored logo for maximum brand presence on light background
|
||||
- Footer: White logo for contrast on dark background (#1c1917)
|
||||
- Favicons: Black logo as base for simple, recognizable appearance
|
||||
- **Image Format Strategy**: Used `<picture>` element with WebP as primary format and PNG fallback for maximum compatibility and performance
|
||||
- Chose WebP over AVIF due to better transparency (alpha channel) support with current ffmpeg/libaom-av1 build
|
||||
- **Favicon Approach**: Generated multiple sizes to support all platforms (web browsers, Android, iOS, PWA) from single source
|
||||
- **Compression**: Leveraged WebP format for 46-81% file size reduction while maintaining quality and transparency
|
||||
|
||||
### Technical Details
|
||||
- Used ffmpeg with lanczos scaling filter for high-quality favicon resizing
|
||||
- Used libwebp encoder for WebP compression with alpha channel (bgra format) to preserve transparency
|
||||
- All images maintain RGBA/BGRA color space for transparency support
|
||||
- Progressive encoding for optimal loading experience
|
||||
- AVIF attempted first but libaom-av1 codec incompatible with yuva420p pixel format, falling back to yuv420p which strips alpha channel
|
||||
|
||||
### Next Steps
|
||||
- [ ] Test favicon display across different browsers and devices
|
||||
- [ ] Consider creating a PWA manifest file to complement the favicon set
|
||||
- [ ] Monitor AVIF adoption and adjust fallback strategy if needed
|
||||
- [ ] Potentially create additional logo sizes for different marketing contexts
|
||||
|
||||
---
|
||||
|
||||
## 2025-12-27 - Hybrid "Eden" Design Implementation
|
||||
|
||||
### Changes
|
||||
- **Aesthetic Overhaul**: Transformed the template into "Eden Style" (Editorial + Organic).
|
||||
- Adopted `Playfair Display` (Serif) for headings.
|
||||
- Updated color palette to Earth Tones: Deep Forest (`#3A4D39`), Sage (`#739072`), Cream (`#ECE3CE`), and Stone Black (`#1c1917`).
|
||||
- **Structure Refinement (Hybrid)**:
|
||||
- Rebuilt "More Than Just Painting" section with a split "List + Floating Cards" layout.
|
||||
- **Restored** the unified "Rounded Dark Footer" to anchor the page.
|
||||
- **Cleaned** Hero background shapes (Geometric vs. Blurry) for a crisp look.
|
||||
- Updated `design.json` with new identity and tokens.
|
||||
|
||||
### Decisions
|
||||
- **Hybrid Approach**: We combined the trustworthy/sturdy feel of the original template (Rounded Footer, Clean Shapes) with the premium/editorial feel of the new reference (Serif fonts, Floating UI cards).
|
||||
- **Typography**: Paired `Playfair Display` with `Plus Jakarta Sans` to balance elegance with modern readability.
|
||||
|
||||
### Next Steps
|
||||
- [ ] Visual QA of all service pages (if expanding beyond single page).
|
||||
- [ ] Connect Contact Form to backend/service.
|
||||
- [ ] Replace placeholder "Map" with actual embed or image.
|
||||
|
||||
---
|
||||
|
||||
## 2024-12-27 - Minimal Template Setup
|
||||
|
||||
### Changes
|
||||
|
||||
231
dev/design.json
Normal file
@ -0,0 +1,231 @@
|
||||
{
|
||||
"brand": {
|
||||
"name": "Summit Painting & Handyman Services",
|
||||
"tagline": "Craftsmanship For Your Home",
|
||||
"essence": [
|
||||
"Trustworthy",
|
||||
"Editorial",
|
||||
"Organic",
|
||||
"Sturdy"
|
||||
],
|
||||
"description": "Premium painting, wood restoration, and handyman services for Colorado Springs."
|
||||
},
|
||||
"colors": {
|
||||
"primary": {
|
||||
"forest": {
|
||||
"hex": "#3A4D39",
|
||||
"rgb": "rgb(58, 77, 57)",
|
||||
"usage": "Primary brand color, headers, CTA buttons"
|
||||
}
|
||||
},
|
||||
"secondary": {
|
||||
"sage": {
|
||||
"hex": "#739072",
|
||||
"rgb": "rgb(115, 144, 114)",
|
||||
"usage": "Accent color, secondary elements, backgrounds"
|
||||
},
|
||||
"cream": {
|
||||
"hex": "#ECE3CE",
|
||||
"rgb": "rgb(236, 227, 206)",
|
||||
"usage": "Background, light sections, contrast"
|
||||
}
|
||||
},
|
||||
"neutral": {
|
||||
"stoneBlack": {
|
||||
"hex": "#1C1917",
|
||||
"rgb": "rgb(28, 25, 23)",
|
||||
"usage": "Text, footer, dark elements"
|
||||
},
|
||||
"white": {
|
||||
"hex": "#FFFFFF",
|
||||
"rgb": "rgb(255, 255, 255)",
|
||||
"usage": "Background, text on dark"
|
||||
}
|
||||
}
|
||||
},
|
||||
"typography": {
|
||||
"headings": {
|
||||
"fontFamily": "Playfair Display",
|
||||
"weights": [
|
||||
400,
|
||||
500,
|
||||
600,
|
||||
700
|
||||
],
|
||||
"style": "serif",
|
||||
"usage": "Headers, titles, hero text",
|
||||
"characteristics": "Editorial, elegant, trustworthy"
|
||||
},
|
||||
"body": {
|
||||
"fontFamily": "Plus Jakarta Sans",
|
||||
"weights": [
|
||||
300,
|
||||
400,
|
||||
500,
|
||||
600,
|
||||
700
|
||||
],
|
||||
"style": "sans-serif",
|
||||
"usage": "Body text, paragraphs, UI elements",
|
||||
"characteristics": "Modern, clean, readable"
|
||||
},
|
||||
"scale": {
|
||||
"h1": {
|
||||
"fontSize": "3.5rem",
|
||||
"lineHeight": "1.2",
|
||||
"fontWeight": 700,
|
||||
"fontFamily": "Playfair Display"
|
||||
},
|
||||
"h2": {
|
||||
"fontSize": "2.5rem",
|
||||
"lineHeight": "1.3",
|
||||
"fontWeight": 600,
|
||||
"fontFamily": "Playfair Display"
|
||||
},
|
||||
"h3": {
|
||||
"fontSize": "2rem",
|
||||
"lineHeight": "1.4",
|
||||
"fontWeight": 600,
|
||||
"fontFamily": "Playfair Display"
|
||||
},
|
||||
"h4": {
|
||||
"fontSize": "1.5rem",
|
||||
"lineHeight": "1.4",
|
||||
"fontWeight": 500,
|
||||
"fontFamily": "Playfair Display"
|
||||
},
|
||||
"body": {
|
||||
"fontSize": "1rem",
|
||||
"lineHeight": "1.6",
|
||||
"fontWeight": 400,
|
||||
"fontFamily": "Plus Jakarta Sans"
|
||||
},
|
||||
"small": {
|
||||
"fontSize": "0.875rem",
|
||||
"lineHeight": "1.5",
|
||||
"fontWeight": 400,
|
||||
"fontFamily": "Plus Jakarta Sans"
|
||||
}
|
||||
}
|
||||
},
|
||||
"logo": {
|
||||
"primary": {
|
||||
"type": "Mountain with paintbrush icon + wordmark",
|
||||
"variants": [
|
||||
"full-color",
|
||||
"white",
|
||||
"black"
|
||||
],
|
||||
"clearSpace": "Minimum 20px on all sides",
|
||||
"minSize": "120px width"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Mountain peaks with paintbrush overlay",
|
||||
"style": "Clean, geometric, organic"
|
||||
},
|
||||
"lockup": {
|
||||
"vertical": "Icon above text",
|
||||
"horizontal": "Icon left of text"
|
||||
}
|
||||
},
|
||||
"spacing": {
|
||||
"xs": "4px",
|
||||
"sm": "8px",
|
||||
"md": "16px",
|
||||
"lg": "24px",
|
||||
"xl": "32px",
|
||||
"2xl": "48px",
|
||||
"3xl": "64px",
|
||||
"4xl": "96px"
|
||||
},
|
||||
"layout": {
|
||||
"maxWidth": "1440px",
|
||||
"containerPadding": "24px",
|
||||
"grid": {
|
||||
"columns": 12,
|
||||
"gutter": "24px"
|
||||
}
|
||||
},
|
||||
"patterns": {
|
||||
"brushStrokes": {
|
||||
"description": "Organic paintbrush strokes and mountain silhouettes",
|
||||
"colors": [
|
||||
"forest",
|
||||
"sage"
|
||||
],
|
||||
"usage": "Backgrounds, texture, visual interest",
|
||||
"style": "Hand-painted, organic, natural"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"buttons": {
|
||||
"primary": {
|
||||
"background": "#3A4D39",
|
||||
"color": "#FFFFFF",
|
||||
"padding": "12px 32px",
|
||||
"borderRadius": "4px",
|
||||
"fontFamily": "Plus Jakarta Sans",
|
||||
"fontWeight": 600,
|
||||
"hover": {
|
||||
"background": "#2a3729"
|
||||
}
|
||||
},
|
||||
"secondary": {
|
||||
"background": "transparent",
|
||||
"color": "#3A4D39",
|
||||
"border": "2px solid #3A4D39",
|
||||
"padding": "12px 32px",
|
||||
"borderRadius": "4px",
|
||||
"fontFamily": "Plus Jakarta Sans",
|
||||
"fontWeight": 600,
|
||||
"hover": {
|
||||
"background": "#3A4D39",
|
||||
"color": "#FFFFFF"
|
||||
}
|
||||
}
|
||||
},
|
||||
"cards": {
|
||||
"background": "#FFFFFF",
|
||||
"border": "1px solid #ECE3CE",
|
||||
"borderRadius": "8px",
|
||||
"padding": "32px",
|
||||
"shadow": "0 2px 8px rgba(0,0,0,0.1)"
|
||||
},
|
||||
"footer": {
|
||||
"background": "#1C1917",
|
||||
"color": "#FFFFFF",
|
||||
"sections": [
|
||||
"Contact Us",
|
||||
"Hybrid Footer",
|
||||
"Links"
|
||||
],
|
||||
"layout": "Three-column grid"
|
||||
}
|
||||
},
|
||||
"imagery": {
|
||||
"style": "Natural, authentic, craft-focused",
|
||||
"subjects": [
|
||||
"Tools",
|
||||
"Materials",
|
||||
"Craftsmanship",
|
||||
"Colorado landscapes"
|
||||
],
|
||||
"treatment": "Clean, well-lit, professional",
|
||||
"overlays": "Sage or forest tinted overlays at 20-40% opacity"
|
||||
},
|
||||
"voice": {
|
||||
"tone": [
|
||||
"Professional",
|
||||
"Approachable",
|
||||
"Trustworthy",
|
||||
"Local"
|
||||
],
|
||||
"language": "Clear, straightforward, emphasizing quality and craftsmanship",
|
||||
"messaging": "Premium services with personal touch, Colorado Springs expertise"
|
||||
},
|
||||
"contact": {
|
||||
"phone": "(312) 456-7890",
|
||||
"email": "summit@gmail.com",
|
||||
"location": "Colorado Springs"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
public/favicon-512.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 1.1 KiB |
BIN
public/media/brush1.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
public/media/brushjar.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
public/media/closeupbrush1.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
public/media/closeupbrush2.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
public/media/closeupbrush3.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
public/media/closeupbrush5.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
public/media/closeupbrush6.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
public/media/logo-black.png
Normal file
|
After Width: | Height: | Size: 781 KiB |
BIN
public/media/logo-black.webp
Normal file
|
After Width: | Height: | Size: 423 KiB |
BIN
public/media/logo-col.png
Normal file
|
After Width: | Height: | Size: 2.7 MiB |
BIN
public/media/logo-col.webp
Normal file
|
After Width: | Height: | Size: 513 KiB |
BIN
public/media/logo-white.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
public/media/logo-white.webp
Normal file
|
After Width: | Height: | Size: 578 KiB |
BIN
public/media/puttyknife1.png
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
src/assets/brushandswatchestransparent.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
src/assets/cards.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
src/assets/closeupbrush4.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
src/assets/mountains.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
src/assets/puttyknife2.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
src/assets/tileablepattern.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
@ -17,6 +17,11 @@ import "../styles/global.css";
|
||||
/>
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png" />
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="/favicon-192.png" />
|
||||
<link rel="icon" type="image/png" sizes="512x512" href="/favicon-512.png" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap"
|
||||
rel="stylesheet"
|
||||
|
||||
@ -20,9 +20,13 @@ import {
|
||||
// Branding Colors (Refined for Eden Style):
|
||||
// Primary Dark: #1c1917 (Stone 950)
|
||||
// Accent Green: #3A4D39 (Deep Forest)
|
||||
// Soft Sage: #739072 (Muted Green)
|
||||
// Cream/Beige: #ECE3CE
|
||||
// Background: #FAF9F6 (Stone 50)
|
||||
|
||||
import { Image } from "astro:assets";
|
||||
import cardsImg from "../assets/cards.png";
|
||||
import puttyKnifeImg from "../assets/puttyknife2.png";
|
||||
import closeUpBrushImg from "../assets/closeupbrush4.png";
|
||||
import mountainsImg from "../assets/mountains.png";
|
||||
---
|
||||
|
||||
<Layout title="Summit Painting & Handyman Services | Colorado Springs">
|
||||
@ -34,11 +38,16 @@ import {
|
||||
class="max-w-7xl mx-auto px-6 py-4 flex items-center justify-between"
|
||||
>
|
||||
<div class="flex items-center gap-3">
|
||||
<div
|
||||
class="w-8 h-8 rounded-full bg-[#3A4D39] flex items-center justify-center text-white"
|
||||
>
|
||||
<span class="font-serif font-bold text-lg">S</span>
|
||||
</div>
|
||||
<picture>
|
||||
<source srcset="/media/logo-col.webp" type="image/webp" />
|
||||
<img
|
||||
src="/media/logo-col.png"
|
||||
alt="Summit Painting Logo"
|
||||
class="w-12 h-12"
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
</picture>
|
||||
<span
|
||||
class="text-xl font-serif font-medium tracking-tight text-[#1c1917]"
|
||||
>Summit Painting</span
|
||||
@ -87,25 +96,16 @@ import {
|
||||
<div
|
||||
class="relative bg-[#3A4D39] rounded-[3rem] p-8 md:p-16 overflow-hidden min-h-[600px] flex flex-col items-center justify-center text-center"
|
||||
>
|
||||
<!-- Background Decoration (Simplified Geometric) -->
|
||||
<Image
|
||||
src={mountainsImg}
|
||||
alt="Colorado mountains background"
|
||||
class="absolute inset-0 w-full h-full object-cover opacity-40 mix-blend-overlay"
|
||||
/>
|
||||
|
||||
<!-- Dark Gradient Overlay for Readability -->
|
||||
<div
|
||||
class="absolute top-0 left-0 w-full h-full overflow-hidden pointer-events-none"
|
||||
class="absolute inset-0 bg-gradient-to-b from-[#3A4D39]/80 via-[#3A4D39]/50 to-[#3A4D39]/90"
|
||||
>
|
||||
<!-- Circle Top Left -->
|
||||
<div
|
||||
class="absolute -top-20 -left-20 w-80 h-80 rounded-full border-[20px] border-[#739072] opacity-20"
|
||||
>
|
||||
</div>
|
||||
<!-- Pill Bottom Right -->
|
||||
<div
|
||||
class="absolute bottom-20 right-0 w-64 h-32 bg-[#ECE3CE] rounded-l-full opacity-10"
|
||||
>
|
||||
</div>
|
||||
<!-- Small Dot -->
|
||||
<div
|
||||
class="absolute top-40 right-40 w-8 h-8 bg-[#ECE3CE] rounded-full opacity-40"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative z-10 max-w-3xl mx-auto mt-8">
|
||||
@ -283,6 +283,12 @@ import {
|
||||
class="absolute -right-20 -bottom-20 w-64 h-64 bg-[#739072]/10 rounded-full blur-3xl group-hover:bg-[#739072]/20 transition-colors"
|
||||
>
|
||||
</div>
|
||||
<!-- Decorative Image (Prop Style) -->
|
||||
<Image
|
||||
src={closeUpBrushImg}
|
||||
alt="Paint brush close up"
|
||||
class="absolute -right-8 -bottom-16 w-80 h-auto object-contain opacity-100 group-hover:scale-105 transition-transform duration-500 rotate-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Service 2 -->
|
||||
@ -328,6 +334,12 @@ import {
|
||||
class="absolute -right-20 -bottom-20 w-64 h-64 bg-[#ECE3CE]/30 rounded-full blur-3xl group-hover:bg-[#ECE3CE]/50 transition-colors"
|
||||
>
|
||||
</div>
|
||||
<!-- Decorative Image (Prop Style) -->
|
||||
<Image
|
||||
src={puttyKnifeImg}
|
||||
alt="Putty knife tools"
|
||||
class="absolute -right-8 -bottom-8 w-64 h-auto object-contain opacity-100 group-hover:scale-105 transition-transform duration-500 -rotate-3"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@ -463,75 +475,20 @@ import {
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="w-full md:w-1/2 relative h-[450px] flex items-center justify-center"
|
||||
class="w-full md:w-1/2 relative h-[450px] flex items-center justify-center p-8"
|
||||
>
|
||||
<!-- Large Sage Circle -->
|
||||
<!-- Large Sage Circle Back drop -->
|
||||
<div
|
||||
class="w-[400px] h-[400px] bg-[#739072]/20 rounded-full absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"
|
||||
class="w-[400px] h-[400px] bg-[#739072]/10 rounded-full absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2"
|
||||
>
|
||||
</div>
|
||||
|
||||
<!-- Floating Card 1 (Top Left) -->
|
||||
<div
|
||||
class="absolute top-12 left-8 bg-white p-4 rounded-2xl shadow-lg border border-stone-100 flex items-center gap-4 w-60 z-20 hover:scale-105 transition-transform duration-500"
|
||||
>
|
||||
<div
|
||||
class="w-10 h-10 rounded-full bg-[#1c1917] flex items-center justify-center"
|
||||
>
|
||||
<Paintbrush size={18} class="text-white" />
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-sm font-bold text-[#1c1917]">
|
||||
Interior
|
||||
</p>
|
||||
<p class="text-xs text-stone-500">Painting</p>
|
||||
</div>
|
||||
<div class="ml-auto text-[#739072]">
|
||||
<Check size={16} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Floating Card 2 (Center Right) -->
|
||||
<div
|
||||
class="absolute top-1/2 right-6 -translate-y-1/2 bg-white p-5 rounded-2xl shadow-xl border border-stone-100 flex items-center gap-4 w-72 z-30 hover:scale-105 transition-transform duration-500"
|
||||
>
|
||||
<div
|
||||
class="w-12 h-12 rounded-full bg-[#3A4D39] flex items-center justify-center"
|
||||
>
|
||||
<LayoutGrid size={20} class="text-white" />
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-base font-bold text-[#1c1917]">
|
||||
Deck Restoration
|
||||
</p>
|
||||
<p class="text-xs text-stone-500">Stain & Seal</p>
|
||||
</div>
|
||||
<div class="ml-auto text-[#739072]">
|
||||
<Check size={20} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Floating Card 3 (Bottom Left) -->
|
||||
<div
|
||||
class="absolute bottom-16 left-12 bg-white p-4 rounded-2xl shadow-lg border border-stone-100 flex items-center gap-4 w-64 z-20 hover:scale-105 transition-transform duration-500"
|
||||
>
|
||||
<div
|
||||
class="w-10 h-10 rounded-full bg-[#ECE3CE] flex items-center justify-center"
|
||||
>
|
||||
<Box size={18} class="text-[#3A4D39]" />
|
||||
</div>
|
||||
<div>
|
||||
<p class="text-sm font-bold text-[#1c1917]">
|
||||
Handyman
|
||||
</p>
|
||||
<p class="text-xs text-stone-500">
|
||||
Fixes & Install
|
||||
</p>
|
||||
</div>
|
||||
<div class="ml-auto text-[#739072]">
|
||||
<Check size={16} />
|
||||
</div>
|
||||
</div>
|
||||
<!-- Cards Image -->
|
||||
<Image
|
||||
src={cardsImg}
|
||||
alt="Service cards deck"
|
||||
class="relative z-10 w-full max-w-xl h-auto object-contain drop-shadow-2xl rounded-[2.5rem] hover:scale-105 transition-transform duration-700"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@ -656,11 +613,27 @@ import {
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="relative w-full md:w-[400px] h-64 bg-stone-800 rounded-2xl overflow-hidden border border-stone-700 flex items-center justify-center"
|
||||
class="relative w-full md:w-[400px] h-64 bg-[#2a2725] rounded-2xl overflow-hidden border border-stone-700 flex items-center justify-center group"
|
||||
>
|
||||
<p class="text-stone-500 text-sm">[Map Placeholder]</p>
|
||||
<div class="absolute inset-0 bg-[#3A4D39]/20"></div>
|
||||
|
||||
<div
|
||||
class="absolute w-4 h-4 rounded-full bg-[#739072] shadow-[0_0_0_8px_rgba(115,144,114,0.2)] animate-pulse"
|
||||
class="relative z-10 flex flex-col items-center gap-3"
|
||||
>
|
||||
<MapPin
|
||||
size={32}
|
||||
class="text-[#739072] drop-shadow-md"
|
||||
/>
|
||||
<p
|
||||
class="text-stone-400 text-sm font-medium tracking-wide"
|
||||
>
|
||||
Serving Colorado Springs
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Pulse Effect -->
|
||||
<div
|
||||
class="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-32 h-32 bg-[#739072]/10 rounded-full blur-xl animate-pulse"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
@ -706,11 +679,19 @@ import {
|
||||
<div class="flex flex-col md:flex-row justify-between gap-12 mb-16">
|
||||
<div>
|
||||
<div class="flex items-center gap-2 mb-6">
|
||||
<div
|
||||
class="w-8 h-8 rounded-full bg-[#739072] flex items-center justify-center text-white text-sm font-serif font-bold"
|
||||
>
|
||||
S
|
||||
</div>
|
||||
<picture>
|
||||
<source
|
||||
srcset="/media/logo-white.webp"
|
||||
type="image/webp"
|
||||
/>
|
||||
<img
|
||||
src="/media/logo-white.png"
|
||||
alt="Summit Painting Logo"
|
||||
class="w-12 h-12"
|
||||
width="48"
|
||||
height="48"
|
||||
/>
|
||||
</picture>
|
||||
<span
|
||||
class="text-xl font-serif font-medium tracking-tight"
|
||||
>Summit Painting</span
|
||||
|
||||