Add full trilingual EN/FR/NB support across all pages and data

- Convert all data files (site, profile, norway, jazz, projects, cv) to Record<LocaleCode, string> fields
- Update all page templates to use LocaleCopy component for locale-aware rendering
- Fix CSS specificity conflict: .locale-copy .locale-copy__text (spec 20) now beats container span rules (spec 11)
- Update LocaleSwitcher, BaseLayout, and SectionCard for locale prop types
- Design system overhaul: Special Elite font, burgundy #8f2218, DG seal favicon

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-17 23:23:14 +02:00
parent ffb368670c
commit 2a06888fd6
21 changed files with 1377 additions and 848 deletions
+27 -9
View File
@@ -1,9 +1,27 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
<style>
path { fill: #000; }
@media (prefers-color-scheme: dark) {
path { fill: #FFF; }
}
</style>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" fill="none">
<defs>
<path id="rim-top" d="M 100 100 m -82 0 a 82 82 0 0 1 164 0"></path>
<path id="rim-bot" d="M 100 100 m 82 0 a 82 82 0 0 1 -164 0"></path>
</defs>
<circle cx="100" cy="100" r="92" stroke="#8f2218" stroke-width="1.4"></circle>
<circle cx="100" cy="100" r="84" stroke="#8f2218" stroke-width="0.6"></circle>
<g fill="#8f2218" font-family="Special Elite, Courier, monospace" font-size="11" letter-spacing="3">
<text><textPath href="#rim-top" startOffset="50%" text-anchor="middle">DAVE · GILLIGAN</textPath></text>
<text><textPath href="#rim-bot" startOffset="50%" text-anchor="middle">· KONGSBERG · EDITION ·</textPath></text>
</g>
<path d="M 100 70&#xA; C 120 70 130 88 120 102&#xA; C 112 113 96 113 91 102&#xA; C 87 92 96 84 105 86&#xA; C 113 89 113 99 106 102&#xA; C 100 105 95 100 97 95" stroke="#8f2218" stroke-width="1.6" stroke-linecap="round"></path>
<g font-family="Instrument Serif, serif" fill="#0e0c08">
<text x="100" y="142" font-size="32" text-anchor="middle" letter-spacing="-1">DG</text>
</g>
<g fill="#8f2218">
<circle cx="100" cy="20" r="1.8"></circle>
<circle cx="180" cy="100" r="1.8"></circle>
<circle cx="100" cy="180" r="1.8"></circle>
<circle cx="20" cy="100" r="1.8"></circle>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 749 B

After

Width:  |  Height:  |  Size: 1.4 KiB