feat: case-study template, all pages, routing, sitemap, 404

- case-study components: CsHeader, TldrBox, MiniToc, SectionRenderer, DecisionList,
  ArchDiagram (data-driven), Gallery, NextPrev, CaseStudyPage
- standalone pages: projects index, about, experience, contact (with form),
  cv hub, colophon — all EN/NO compositions
- full route tree: EN root + /no localised slugs (prosjekter, om-meg, erfaring,
  kontakt, kolofon, hjemmelab) per ROUTING_SPEC
- bilingual 404 with trace-fray motif; robots.txt + sitemap.xml from slug map
- Portrait atom; reusable sections gain header/eyebrow toggles for standalone pages

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
cesnimda
2026-07-04 01:30:32 +02:00
parent 9a6d0edf6d
commit 2330f374fc
44 changed files with 1112 additions and 31 deletions
+12
View File
@@ -23,6 +23,18 @@ export const en: Dictionary = {
about: 'About',
contact: 'Contact',
},
about: {
languages: 'Languages',
interests: 'Interests',
},
cvPage: {
heading: 'Download my CV',
intro:
'For a full overview of my experience, skills and work history, download my CV in either language.',
atsNote:
'These are plain, ATS-friendly PDFs — single column, real text, standard headings.',
updated: 'Updated',
},
lang: {
switchTo: 'Switch to Norwegian',
en: 'EN',
+12
View File
@@ -34,6 +34,18 @@ export const no: Dictionary = {
about: 'Om meg',
contact: 'Kontakt',
},
about: {
languages: 'Språk',
interests: 'Interesser',
},
cvPage: {
heading: 'Last ned CV-en min',
intro:
'For en full oversikt over erfaring, kompetanse og arbeidshistorikk kan du laste ned CV-en min på ønsket språk.',
atsNote:
'Dette er enkle, ATS-vennlige PDF-er — én kolonne, ekte tekst og standard overskrifter.',
updated: 'Oppdatert',
},
lang: {
switchTo: 'Switch to English',
en: 'EN',
+10
View File
@@ -27,6 +27,16 @@ export interface Dictionary {
about: string;
contact: string;
};
about: {
languages: string;
interests: string;
};
cvPage: {
heading: string;
intro: string;
atsNote: string;
updated: string;
};
lang: {
/** aria-label for the switch group, phrased in the target language. */
switchTo: string;