From 9f1d4db0de11865159dc2aa86c06b6627c333ba6 Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Tue, 11 Nov 2025 19:12:21 +0100 Subject: [PATCH] feat: fill pages --- .envrc.local | 5 - frontend/.prettierrc | 17 + frontend/app/app.vue | 4 +- frontend/app/assets/css/main.css | 1 - frontend/app/assets/css/tailwind.css | 11 +- frontend/app/assets/css/ui/colors.css | 12 +- frontend/app/assets/css/ui/index.css | 8 +- frontend/app/assets/css/ui/text.css | 10 +- frontend/app/components/AppFooter.vue | 25 +- frontend/app/components/Ui/BadgeList.vue | 13 + frontend/app/components/Ui/BadgeListCard.vue | 14 + .../app/components/VocalSynth/Projects.vue | 35 + frontend/app/components/VocalSynth/Tools.vue | 8 + .../components/navbar/LanguageSwitcher.vue | 8 +- .../app/components/navbar/ThemeSwitcher.vue | 8 +- frontend/app/composables/useApi.ts | 32 + frontend/app/composables/useBackend.ts | 8 + frontend/app/composables/useDataJson.ts | 65 + frontend/app/composables/useMeta.ts | 27 + frontend/app/layouts/centered.vue | 5 + frontend/app/layouts/default.vue | 2 +- frontend/app/pages/[...slug].vue | 22 + frontend/app/pages/contact.vue | 5 - frontend/app/pages/index.vue | 3 - frontend/app/pages/languages.vue | 5 - frontend/app/pages/resume.vue | 48 +- frontend/app/pages/vocal-synthesis.vue | 5 - frontend/app/types/api/contact.ts | 11 + frontend/app/types/api/error.ts | 4 + frontend/app/types/api/meta.ts | 4 + frontend/app/types/dictionary.ts | 2 +- frontend/app/types/resume.ts | 13 + frontend/app/types/tool.ts | 0 frontend/content.config.ts | 25 +- frontend/content/en/index.md | 12 + frontend/content/en/resume.json | 66 + frontend/content/en/vocal-synthesis.json | 35 + frontend/content/en/vocal-synthesis.md | 17 + frontend/content/fr/index.md | 12 + frontend/content/fr/resume.json | 66 + frontend/content/fr/vocal-synthesis.json | 35 + frontend/content/fr/vocal-synthesis.md | 15 + frontend/i18n/locales/en.json | 28 +- frontend/i18n/locales/fr.json | 28 +- frontend/nuxt.config.ts | 13 +- frontend/package.json | 14 +- frontend/pnpm-lock.yaml | 2518 +++++++++-------- 47 files changed, 2050 insertions(+), 1274 deletions(-) delete mode 100644 .envrc.local create mode 100644 frontend/.prettierrc create mode 100644 frontend/app/components/Ui/BadgeList.vue create mode 100644 frontend/app/components/Ui/BadgeListCard.vue create mode 100644 frontend/app/components/VocalSynth/Projects.vue create mode 100644 frontend/app/components/VocalSynth/Tools.vue create mode 100644 frontend/app/composables/useApi.ts create mode 100644 frontend/app/composables/useDataJson.ts create mode 100644 frontend/app/composables/useMeta.ts create mode 100644 frontend/app/layouts/centered.vue create mode 100644 frontend/app/pages/[...slug].vue delete mode 100644 frontend/app/pages/contact.vue delete mode 100644 frontend/app/pages/index.vue delete mode 100644 frontend/app/pages/languages.vue delete mode 100644 frontend/app/pages/vocal-synthesis.vue create mode 100644 frontend/app/types/api/contact.ts create mode 100644 frontend/app/types/api/error.ts create mode 100644 frontend/app/types/api/meta.ts create mode 100644 frontend/app/types/resume.ts create mode 100644 frontend/app/types/tool.ts create mode 100644 frontend/content/en/index.md create mode 100644 frontend/content/en/resume.json create mode 100644 frontend/content/en/vocal-synthesis.json create mode 100644 frontend/content/en/vocal-synthesis.md create mode 100644 frontend/content/fr/index.md create mode 100644 frontend/content/fr/resume.json create mode 100644 frontend/content/fr/vocal-synthesis.json create mode 100644 frontend/content/fr/vocal-synthesis.md diff --git a/.envrc.local b/.envrc.local deleted file mode 100644 index b1a99ff..0000000 --- a/.envrc.local +++ /dev/null @@ -1,5 +0,0 @@ -export NIX_SHELL_NAME=frontend - -# Local Variables: -# mode: dotenv -# End: diff --git a/frontend/.prettierrc b/frontend/.prettierrc new file mode 100644 index 0000000..3fa9f98 --- /dev/null +++ b/frontend/.prettierrc @@ -0,0 +1,17 @@ +{ + "arrowParens": "always", + "bracketSpacing": true, + "endOfLine": "lf", + "experimentalOperatorPosition": "start", + "experimentalTernaries": true, + "jsxSingleQuote": true, + "printWidth": 120, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "all", + "useTabs": false, + "vueIndentScriptAndStyle": false +} diff --git a/frontend/app/app.vue b/frontend/app/app.vue index 89e1c3b..d08249c 100644 --- a/frontend/app/app.vue +++ b/frontend/app/app.vue @@ -2,9 +2,7 @@ - - - + diff --git a/frontend/app/assets/css/main.css b/frontend/app/assets/css/main.css index 26b3bb8..6bd75a9 100644 --- a/frontend/app/assets/css/main.css +++ b/frontend/app/assets/css/main.css @@ -1,4 +1,3 @@ -@import 'tailwindcss'; @import '@nuxt/ui'; @import './colors.css'; @import './ui/index.css'; diff --git a/frontend/app/assets/css/tailwind.css b/frontend/app/assets/css/tailwind.css index f1e20e7..c3d3117 100644 --- a/frontend/app/assets/css/tailwind.css +++ b/frontend/app/assets/css/tailwind.css @@ -1,4 +1,5 @@ -@layer base { +@import 'tailwindcss'; +@theme { --color-text-50: var(--text-50); --color-text: var(--text); --color-text-100: var(--text-100); @@ -76,9 +77,9 @@ --text-weight-bold: 700; --font-sans: - Noto Sans, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", - "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + Noto Sans, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', + 'Noto Color Emoji'; --font-title: - Wittgenstein, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", - "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + Wittgenstein, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', + 'Noto Color Emoji'; } diff --git a/frontend/app/assets/css/ui/colors.css b/frontend/app/assets/css/ui/colors.css index 81f239f..4e8f6f6 100644 --- a/frontend/app/assets/css/ui/colors.css +++ b/frontend/app/assets/css/ui/colors.css @@ -1,15 +1,15 @@ :root { - --ui-primary: var(--color-primary); - --ui-secondary: var(--color-secondary); - --ui-success: var(--color-accent); + --ui-primary: var(--primary); + --ui-secondary: var(--secondary); + --ui-success: var(--accent); --ui-info: var(--ui-color-info-500); --ui-warning: var(--ui-color-warning-500); --ui-error: var(--ui-color-error-500); } .dark { - --ui-primary: var(--color-primary-dark); - --ui-secondary: var(--color-secondary-dark); - --ui-success: var(--color-accent); + --ui-primary: var(--primary); + --ui-secondary: var(--secondary); + --ui-success: var(--accent); --ui-info: var(--ui-color-info-400); --ui-warning: var(--ui-color-warning-400); --ui-error: var(--ui-color-error-400); diff --git a/frontend/app/assets/css/ui/index.css b/frontend/app/assets/css/ui/index.css index 51c7b8a..0f421a3 100644 --- a/frontend/app/assets/css/ui/index.css +++ b/frontend/app/assets/css/ui/index.css @@ -1,4 +1,4 @@ -@import "./colors.css"; -@import "./text.css"; -@import "./background.css"; -@import "./border.css"; +@import './colors.css'; +@import './text.css'; +@import './background.css'; +@import './border.css'; diff --git a/frontend/app/assets/css/ui/text.css b/frontend/app/assets/css/ui/text.css index c213533..8f9cc6e 100644 --- a/frontend/app/assets/css/ui/text.css +++ b/frontend/app/assets/css/ui/text.css @@ -1,15 +1,15 @@ :root { - --ui-text-dimmed: var(--text-400); - --ui-text-muted: var(--text-500); + --ui-text-dimmed: var(--text-800); + --ui-text-muted: var(--text-700); --ui-text-toned: var(--text-600); --ui-text: var(--text); --ui-text-highlighted: var(--text-900); --ui-text-inverted: var(--text-50); } .dark { - --ui-text-dimmed: var(--text-500); - --ui-text-muted: var(--text-400); - --ui-text-toned: var(--text-300); + --ui-text-dimmed: var(--text-800); + --ui-text-muted: var(--text-700); + --ui-text-toned: var(--text-600); --ui-text: var(--text); --ui-text-highlighted: var(--text); --ui-text-inverted: var(--text-50); diff --git a/frontend/app/components/AppFooter.vue b/frontend/app/components/AppFooter.vue index 06b76b5..7e97e3d 100644 --- a/frontend/app/components/AppFooter.vue +++ b/frontend/app/components/AppFooter.vue @@ -1,12 +1,14 @@