65 lines
2.3 KiB
Markdown
65 lines
2.3 KiB
Markdown
---
|
|
phase: 02-ssr-shell
|
|
plan: 01
|
|
subsystem: design-system-i18n
|
|
tags: [color-mode, i18n, sitemap, css, config]
|
|
dependency_graph:
|
|
requires: []
|
|
provides: [brand-color-theme, color-mode-cookie, i18n-translations, sitemap-hreflang, og-image]
|
|
affects: [nuxt.config.ts, app.config.ts]
|
|
tech_stack:
|
|
added: []
|
|
patterns: [tailwind-v4-theme, nuxt-ui-color-mapping, cookie-color-mode]
|
|
key_files:
|
|
created:
|
|
- app/assets/css/main.css
|
|
- app.config.ts
|
|
- public/og-image.png
|
|
modified:
|
|
- nuxt.config.ts
|
|
- app/locales/fr.json
|
|
- app/locales/en.json
|
|
decisions:
|
|
- "Emojis stripped from migrated translations for clean SSR rendering"
|
|
- "og-image.png is placeholder text file pending real 1200x630 image"
|
|
metrics:
|
|
duration: 394s
|
|
completed: 2026-04-08
|
|
---
|
|
|
|
# Phase 02 Plan 01: Design System + i18n Config Summary
|
|
|
|
Brand color #85cb85 palette in Tailwind v4 @theme, Nuxt UI primary mapped to brand, color-mode with cookie/dark default, i18n baseUrl for absolute SEO URLs, all translation keys migrated from src/locales/ plus Phase 2 nav/footer/a11y/seo keys.
|
|
|
|
## Tasks Completed
|
|
|
|
| Task | Name | Commit | Files |
|
|
|------|------|--------|-------|
|
|
| 1 | Design system + color-mode + sitemap config | d27b9a3 | app/assets/css/main.css, app.config.ts, nuxt.config.ts, public/og-image.png |
|
|
| 2 | Migrate i18n translations | 898ef5c | app/locales/fr.json, app/locales/en.json |
|
|
|
|
## Deviations from Plan
|
|
|
|
### Auto-fixed Issues
|
|
|
|
**1. [Rule 2 - Correctness] Stripped emojis from migrated translations**
|
|
- **Found during:** Task 2
|
|
- **Issue:** Source src/locales/*.ts files contained emoji characters in translation values which could cause inconsistent SSR/client rendering
|
|
- **Fix:** Removed all emoji prefixes from translation values during migration
|
|
- **Files modified:** app/locales/fr.json, app/locales/en.json
|
|
|
|
## Known Stubs
|
|
|
|
| Stub | File | Reason |
|
|
|------|------|--------|
|
|
| Placeholder og-image | public/og-image.png | Text placeholder, needs real 1200x630 PNG image |
|
|
|
|
## Verification Results
|
|
|
|
- fr.json and en.json valid JSON with all Phase 2 keys (nav, footer, a11y, seo): PASS
|
|
- app/assets/css/main.css contains --color-brand-500: PASS
|
|
- app.config.ts contains primary: 'brand': PASS
|
|
- nuxt.config.ts contains colorMode with cookie storage: PASS
|
|
- nuxt.config.ts contains baseUrl: PASS
|
|
- nuxt.config.ts does NOT contain @nuxtjs/color-mode in modules: PASS
|