@nuxtjs/i18n resolves langDir relative to its own i18n/ directory,
not the project root. Moved fr.json and en.json accordingly.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Sticky header with z-[1020], desktop nav with locale-aware NuxtLinks
- FR/EN text toggle using useSetLocale, dark/light icon toggle using useColorMode
- Mobile UDrawer with stacked nav links and toggles
- WCAG: min-w-11 min-h-11 touch targets, focus-visible:ring-2, aria-current on active link
- useSeoMeta() with localized title/description/og tags on all 6 pages
- Homepage JSON-LD with Person + ProfessionalService schema
- og:image absolute URL on every page
- Stub templates with max-w-7xl wrapper and h1
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- nav, footer, a11y, seo keys from UI-SPEC copywriting contract
- All existing keys migrated from src/locales/fr.ts and en.ts
- Includes home, projects, about, contact, fiverr, faq, pricing, projectData, testimonials, common
- Emojis stripped from translation values for clean rendering
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Brand color #85cb85 as CSS @theme with full shade palette
- app.config.ts maps Nuxt UI primary to brand
- colorMode with cookie storage, dark default, no FOUC
- i18n baseUrl and site.url for absolute SEO URLs
- Static og:image placeholder in public/
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 4 data files created in app/data/ with proper type imports from shared/types
- 74 WebP images copied to public/images/ (including flowboard gallery)
- All image paths migrated from @/assets/images/ to /images/
- FAQ uses i18n keys instead of direct text