diff --git a/.gitignore b/.gitignore index 35d5d8363..5076fe25c 100644 --- a/.gitignore +++ b/.gitignore @@ -159,3 +159,5 @@ supabase/.temp/ .claude/** .cursor/** .cursor/ +2025-11-25-where-we-left-off.txt +AGENTS.md diff --git a/.playwright-mcp/01-initial-state.png b/.playwright-mcp/01-initial-state.png new file mode 100644 index 000000000..5048a6ca4 Binary files /dev/null and b/.playwright-mcp/01-initial-state.png differ diff --git a/.playwright-mcp/02-hero-updated.png b/.playwright-mcp/02-hero-updated.png new file mode 100644 index 000000000..2009d8050 Binary files /dev/null and b/.playwright-mcp/02-hero-updated.png differ diff --git a/.playwright-mcp/03-artists-section.png b/.playwright-mcp/03-artists-section.png new file mode 100644 index 000000000..72b5bb8a8 Binary files /dev/null and b/.playwright-mcp/03-artists-section.png differ diff --git a/.playwright-mcp/04-hero-UP1_00010-frosted.png b/.playwright-mcp/04-hero-UP1_00010-frosted.png new file mode 100644 index 000000000..1f5365c25 Binary files /dev/null and b/.playwright-mcp/04-hero-UP1_00010-frosted.png differ diff --git a/.playwright-mcp/05-hero-improved-readability.png b/.playwright-mcp/05-hero-improved-readability.png new file mode 100644 index 000000000..32f375881 Binary files /dev/null and b/.playwright-mcp/05-hero-improved-readability.png differ diff --git a/.playwright-mcp/06-hero-to-artists-transition.png b/.playwright-mcp/06-hero-to-artists-transition.png new file mode 100644 index 000000000..42a27d5d2 Binary files /dev/null and b/.playwright-mcp/06-hero-to-artists-transition.png differ diff --git a/.playwright-mcp/07-hero-final-dark-text.png b/.playwright-mcp/07-hero-final-dark-text.png new file mode 100644 index 000000000..c47fe72d0 Binary files /dev/null and b/.playwright-mcp/07-hero-final-dark-text.png differ diff --git a/.playwright-mcp/hero-button-final.png b/.playwright-mcp/hero-button-final.png new file mode 100644 index 000000000..85ce6c07a Binary files /dev/null and b/.playwright-mcp/hero-button-final.png differ diff --git a/.playwright-mcp/hero-button-improved.png b/.playwright-mcp/hero-button-improved.png new file mode 100644 index 000000000..5a9957b89 Binary files /dev/null and b/.playwright-mcp/hero-button-improved.png differ diff --git a/.playwright-mcp/hero-button-with-shadow.png b/.playwright-mcp/hero-button-with-shadow.png new file mode 100644 index 000000000..d761e37ce Binary files /dev/null and b/.playwright-mcp/hero-button-with-shadow.png differ diff --git a/.playwright-mcp/hero-enhanced-glassmorphism.png b/.playwright-mcp/hero-enhanced-glassmorphism.png new file mode 100644 index 000000000..13e971f84 Binary files /dev/null and b/.playwright-mcp/hero-enhanced-glassmorphism.png differ diff --git a/.playwright-mcp/hero-gradient-transition.png b/.playwright-mcp/hero-gradient-transition.png new file mode 100644 index 000000000..9a5f7ad05 Binary files /dev/null and b/.playwright-mcp/hero-gradient-transition.png differ diff --git a/.playwright-mcp/hero-to-artists-transition.png b/.playwright-mcp/hero-to-artists-transition.png new file mode 100644 index 000000000..82c3ef628 Binary files /dev/null and b/.playwright-mcp/hero-to-artists-transition.png differ diff --git a/.playwright-mcp/hero-warmer-tan-card.png b/.playwright-mcp/hero-warmer-tan-card.png new file mode 100644 index 000000000..e196b2c21 Binary files /dev/null and b/.playwright-mcp/hero-warmer-tan-card.png differ diff --git a/.playwright-mcp/navigation-redesign.png b/.playwright-mcp/navigation-redesign.png new file mode 100644 index 000000000..78b0a738a Binary files /dev/null and b/.playwright-mcp/navigation-redesign.png differ diff --git a/app/globals.css b/app/globals.css index 096ff6aff..2abd5977d 100644 --- a/app/globals.css +++ b/app/globals.css @@ -4,40 +4,73 @@ @custom-variant dark (&:is(.dark *)); :root { - /* Updated color tokens to match United Tattoo design brief */ - --background: oklch(1 0 0); /* White */ - --foreground: oklch(0.145 0 0); /* Dark Slate Gray */ - --card: oklch(1 0 0); /* Light Gray */ - --card-foreground: oklch(0.145 0 0); /* Dark text for cards */ - --popover: oklch(1 0 0); /* White */ - --popover-foreground: oklch(0.145 0 0); /* Dark text */ - --primary: oklch(0.205 0 0); /* Emerald-600 #059669 */ - --primary-foreground: oklch(0.985 0 0); /* White text on primary */ - --secondary: oklch(0.97 0 0); /* Emerald accent #10b981 */ - --secondary-foreground: oklch(0.205 0 0); /* White text on secondary */ - --muted: oklch(0.97 0 0); /* Light Gray */ - --muted-foreground: oklch(0.556 0 0); /* Muted text */ - --accent: oklch(0.97 0 0); /* Emerald accent */ - --accent-foreground: oklch(0.205 0 0); /* White text on accent */ + /* United Tattoo 2026 Design System - Color Tokens */ + + /* Primary Brand Colors */ + --burnt-orange: #E67E50; + --terracotta: #D87850; + --burnt: #b0471e; + + /* Secondary Colors */ + --sage-concrete: #7A8B8B; + --sage: #a28f79; + --deep-olive: #4a4034; + --moss: #6f5c49; + + /* Neutral Colors */ + --charcoal: #1c1915; + --ink: #241b16; + --cream: #fff7ec; + --sand: #f2e3d0; + --white: #ffffff; + + /* Semantic Colors */ + --rose: #e59863; + + /* ShadCN UI Token Mapping */ + --background: oklch(0.98 0.01 60); /* Cream background */ + --foreground: oklch(0.15 0.01 40); /* Ink text */ + --card: oklch(0.97 0.015 55); /* Sand card background */ + --card-foreground: oklch(0.15 0.01 40); /* Ink text on cards */ + --popover: oklch(0.97 0.015 55); /* Sand popover */ + --popover-foreground: oklch(0.15 0.01 40); /* Ink text */ + --primary: oklch(0.48 0.12 35); /* Burnt (dark orange) */ + --primary-foreground: oklch(0.99 0 0); /* White text on primary */ + --secondary: oklch(0.63 0.08 45); /* Terracotta */ + --secondary-foreground: oklch(0.99 0 0); /* White text on secondary */ + --muted: oklch(0.95 0.01 55); /* Light sand */ + --muted-foreground: oklch(0.50 0.02 50); /* Moss for muted text */ + --accent: oklch(0.67 0.06 45); /* Rose accent */ + --accent-foreground: oklch(0.15 0.01 40); /* Ink text on accent */ --destructive: oklch(0.577 0.245 27.325); /* Red for destructive actions */ --destructive-foreground: oklch(0.985 0 0); /* White text */ - --border: oklch(0.922 0 0); /* Light border */ - --input: oklch(0.922 0 0); /* Input background */ - --ring: oklch(0.708 0 0); /* Focus ring */ - --chart-1: oklch(0.646 0.222 41.116); - --chart-2: oklch(0.6 0.118 184.704); - --chart-3: oklch(0.398 0.07 227.392); - --chart-4: oklch(0.828 0.189 84.429); - --chart-5: oklch(0.769 0.188 70.08); - --radius: 0.625rem; - --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.145 0 0); - --sidebar-primary: oklch(0.205 0 0); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.97 0 0); - --sidebar-accent-foreground: oklch(0.205 0 0); - --sidebar-border: oklch(0.922 0 0); - --sidebar-ring: oklch(0.708 0 0); + --border: oklch(0.60 0.02 150 / 0.2); /* Sage concrete with opacity */ + --input: oklch(0.97 0.015 55); /* Sand input background */ + --ring: oklch(0.67 0.06 45); /* Rose focus ring */ + + /* Chart Colors - Updated to match brand */ + --chart-1: oklch(0.63 0.08 45); /* Terracotta */ + --chart-2: oklch(0.60 0.02 150); /* Sage concrete */ + --chart-3: oklch(0.67 0.06 50); /* Sage */ + --chart-4: oklch(0.48 0.12 35); /* Burnt */ + --chart-5: oklch(0.67 0.06 45); /* Rose */ + + /* Border Radius */ + --radius: 0.75rem; + + /* Sidebar Colors */ + --sidebar: oklch(0.98 0.01 60); + --sidebar-foreground: oklch(0.15 0.01 40); + --sidebar-primary: oklch(0.48 0.12 35); + --sidebar-primary-foreground: oklch(0.99 0 0); + --sidebar-accent: oklch(0.97 0.015 55); + --sidebar-accent-foreground: oklch(0.15 0.01 40); + --sidebar-border: oklch(0.60 0.02 150 / 0.2); + --sidebar-ring: oklch(0.67 0.06 45); + + /* Design System Variables */ + --sticky-offset: clamp(3.5rem, 8vw, 6rem); + --ambient-color: rgba(178, 109, 70, 0.4); } .dark { @@ -76,7 +109,7 @@ } @theme inline { - --font-sans: var(--font-source-sans); + --font-sans: var(--font-grotesk); --font-serif: var(--font-playfair); --font-mono: var(--font-geist-mono); --color-background: var(--background); @@ -121,8 +154,44 @@ * { @apply border-border outline-ring/50; } + body { - @apply bg-background text-foreground; + @apply text-foreground; + /* Sun-washed plaster background with texture layers */ + background: linear-gradient(180deg, #7A8B8B 0%, #9CAAA6 45%, #F2E3D0 100%); + position: relative; + font-family: var(--font-grotesk), sans-serif; + } + + /* Texture overlay layer - Ambient gradients */ + body::before { + content: ''; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: -2; + background: + radial-gradient(circle at 15% 20%, rgba(216, 120, 80, 0.15), transparent 45%), + radial-gradient(circle at 85% 5%, rgba(36, 27, 22, 0.08), transparent 55%); + opacity: 0.8; + } + + /* Technical Grid Texture (Drafting Table feel) */ + body::after { + content: ''; + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: -1; + background-image: url('data:image/svg+xml;charset=UTF-8,'); + mix-blend-mode: multiply; + opacity: 1; } /* Added Lenis smooth scrolling styles */ diff --git a/app/layout.tsx b/app/layout.tsx index 259a2dcb4..40ac2ffe1 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,6 +1,6 @@ import type React from "react" import type { Metadata } from "next" -import { Playfair_Display, Source_Sans_3 } from "next/font/google" +import { Playfair_Display, Space_Grotesk } from "next/font/google" import { Suspense } from "react" import Script from "next/script" @@ -15,13 +15,16 @@ const playfairDisplay = Playfair_Display({ variable: "--font-playfair", display: "swap", preload: true, + weight: ["400", "600"], + style: ["normal", "italic"], }) -const sourceSans = Source_Sans_3({ +const spaceGrotesk = Space_Grotesk({ subsets: ["latin"], - variable: "--font-source-sans", + variable: "--font-grotesk", display: "swap", preload: true, + weight: ["300", "400", "500", "600", "700"], }) export const metadata: Metadata = createMetadata({ @@ -43,7 +46,7 @@ export default function RootLayout({ const organizationData = generateOrganizationJsonLd() return ( - +
{/* :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: diff --git a/app/page.tsx b/app/page.tsx index c9aacada6..3c9ea0bdb 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -2,32 +2,38 @@ import { Navigation } from "@/components/navigation" import { ScrollProgress } from "@/components/scroll-progress" import { ScrollToSection } from "@/components/scroll-to-section" import { LenisProvider } from "@/components/smooth-scroll-provider" -import { HeroSection } from "@/components/hero-section" -import { ArtistsSection } from "@/components/artists-section" -import { ServicesSection } from "@/components/services-section" -import { ContactSection } from "@/components/contact-section" import { Footer } from "@/components/footer" + +import { NewHero } from "@/components/united/new-hero" +import { ImmersionSection } from "@/components/united/immersion-section" +import { IdentitySection } from "@/components/united/identity-section" +import { NewArtistsSection } from "@/components/united/new-artists-section" +import { NewContactSection } from "@/components/united/new-contact-section" + export default function HomePage() { - return ( -+ {/* Hero Subtitle */} +
Custom Tattoos in Fountain, Colorado
-