Work
All checks were successful
Lint / lint (push) Successful in 42s

This commit is contained in:
Julien Valverdé
2025-10-14 05:17:52 +02:00
parent eefb4481ec
commit 999fff8ddc
9 changed files with 82 additions and 114 deletions

View File

@@ -0,0 +1,8 @@
import type { resources } from "@/i18n"
declare module "i18next" {
interface CustomTypeOptions {
resources: typeof resources["en"]
}
}

View File

@@ -0,0 +1,5 @@
export const en = {
nav: {
gitRepos: "Git repositories",
}
}

View File

@@ -0,0 +1,8 @@
import type { en } from "./en"
export const fr = {
nav: {
gitRepos: "Dépôts Git",
}
} satisfies typeof en

View File

@@ -0,0 +1,21 @@
import i18n from "i18next"
import LanguageDetector from "i18next-browser-languagedetector"
import { initReactI18next } from "react-i18next"
import { en } from "./en"
import { fr } from "./fr"
export const resources = { en, fr } as const
await i18n
.use(initReactI18next)
.use(LanguageDetector)
.init({
supportedLngs: ["en", "fr"],
resources,
interpolation: {
escapeValue: false
},
})
export { i18n }

View File

@@ -3,86 +3,22 @@
@import "tw-animate-css";
@import "@fontsource/work-sans";
@custom-variant dark (&:is(.dark *));
:root {
--background: oklch(1 0 0);
--background: oklch(95.38% 0.0357 72.89);
--secondary-background: oklch(100% 0 0);
--foreground: oklch(0.145 0 0);
--foreground: oklch(0% 0 0);
--main-foreground: oklch(0% 0 0);
--main: oklch(72.27% 0.1894 50.19);
--border: oklch(0.922 0 0);
--ring: oklch(0.708 0 0);
--border: oklch(0% 0 0);
--ring: oklch(0% 0 0);
--overlay: oklch(0% 0 0 / 0.8);
--shadow: 4px 4px 0px 0px var(--border);
--chart-1: oklch(0.646 0.222 41.116);
--chart-2: oklch(0.6 0.118 184.704);
--chart-3: oklch(0.398 0.07 227.392);
--chart-4: oklch(0.828 0.189 84.429);
--chart-5: oklch(0.769 0.188 70.08);
--chart-1: #FF7A05;
--chart-2: #0099FF;
--chart-3: #FFBF00;
--chart-4: #00D696;
--chart-5: #7A83FF;
--chart-active-dot: #000;
--radius: 0.625rem;
--card: oklch(1 0 0);
--card-foreground: oklch(0.145 0 0);
--popover: oklch(1 0 0);
--popover-foreground: oklch(0.145 0 0);
--primary: oklch(0.205 0 0);
--primary-foreground: oklch(0.985 0 0);
--secondary: oklch(0.97 0 0);
--secondary-foreground: oklch(0.205 0 0);
--muted: oklch(0.97 0 0);
--muted-foreground: oklch(0.556 0 0);
--accent: oklch(0.97 0 0);
--accent-foreground: oklch(0.205 0 0);
--destructive: oklch(0.577 0.245 27.325);
--input: oklch(0.922 0 0);
--sidebar: oklch(0.985 0 0);
--sidebar-foreground: oklch(0.145 0 0);
--sidebar-primary: oklch(0.205 0 0);
--sidebar-primary-foreground: oklch(0.985 0 0);
--sidebar-accent: oklch(0.97 0 0);
--sidebar-accent-foreground: oklch(0.205 0 0);
--sidebar-border: oklch(0.922 0 0);
--sidebar-ring: oklch(0.708 0 0);
}
.dark {
--background: oklch(0.145 0 0);
--secondary-background: oklch(23.93% 0 0);
--foreground: oklch(0.985 0 0);
--main-foreground: oklch(0% 0 0);
--main: oklch(67.56% 0.1796 49.61);
--border: oklch(1 0 0 / 10%);
--ring: oklch(0.556 0 0);
--shadow: 4px 4px 0px 0px var(--border);
--chart-1: oklch(0.488 0.243 264.376);
--chart-2: oklch(0.696 0.17 162.48);
--chart-3: oklch(0.769 0.188 70.08);
--chart-4: oklch(0.627 0.265 303.9);
--chart-5: oklch(0.645 0.246 16.439);
--chart-active-dot: #fff;
--card: oklch(0.205 0 0);
--card-foreground: oklch(0.985 0 0);
--popover: oklch(0.205 0 0);
--popover-foreground: oklch(0.985 0 0);
--primary: oklch(0.922 0 0);
--primary-foreground: oklch(0.205 0 0);
--secondary: oklch(0.269 0 0);
--secondary-foreground: oklch(0.985 0 0);
--muted: oklch(0.269 0 0);
--muted-foreground: oklch(0.708 0 0);
--accent: oklch(0.269 0 0);
--accent-foreground: oklch(0.985 0 0);
--destructive: oklch(0.704 0.191 22.216);
--input: oklch(1 0 0 / 15%);
--sidebar: oklch(0.205 0 0);
--sidebar-foreground: oklch(0.985 0 0);
--sidebar-primary: oklch(0.488 0.243 264.376);
--sidebar-primary-foreground: oklch(0.985 0 0);
--sidebar-accent: oklch(0.269 0 0);
--sidebar-accent-foreground: oklch(0.985 0 0);
--sidebar-border: oklch(1 0 0 / 10%);
--sidebar-ring: oklch(0.556 0 0);
}
@theme inline {
@@ -108,53 +44,15 @@
--shadow-shadow: var(--shadow);
--font-weight-base: 500;
--font-weight-heading: 700;
--color-sidebar-ring: var(--sidebar-ring);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar: var(--sidebar);
--color-input: var(--input);
--color-destructive: var(--destructive);
--color-accent-foreground: var(--accent-foreground);
--color-accent: var(--accent);
--color-muted-foreground: var(--muted-foreground);
--color-muted: var(--muted);
--color-secondary-foreground: var(--secondary-foreground);
--color-secondary: var(--secondary);
--color-primary-foreground: var(--primary-foreground);
--color-primary: var(--primary);
--color-popover-foreground: var(--popover-foreground);
--color-popover: var(--popover);
--color-card-foreground: var(--card-foreground);
--color-card: var(--card);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
}
@layer base {
body {
@apply text-foreground font-base bg-background;
font-family: "Work Sans", sans-serif;
}
h1, h2, h3, h4, h5, h6{
@apply font-heading;
}
}
@layer base {
* {
@apply border-border outline-ring/50;
}
body {
@apply bg-background text-foreground;
}
}
body {
font-family: "Work Sans", sans-serif;
}

View File

@@ -1,6 +1,7 @@
import { createRouter, RouterProvider } from "@tanstack/react-router"
import { StrictMode } from "react"
import { createRoot } from "react-dom/client"
import "./i18n"
import "./index.css"
import { routeTree } from "./routeTree.gen"

View File

@@ -1,5 +1,6 @@
import { createRootRoute, Outlet } from "@tanstack/react-router"
import { TanStackRouterDevtools } from "@tanstack/react-router-devtools"
import { useTranslation } from "react-i18next"
import { Button } from "@/components/ui/button"
import { Card, CardContent } from "@/components/ui/card"
@@ -9,9 +10,17 @@ export const Route = createRootRoute({
})
function RootComponent() {
const { t } = useTranslation()
return <>
<div className="container mt-6 flex flex-row items-center">
<Button>Git repo</Button>
<div className="container mt-10 mr-auto ml-auto flex flex-row items-center justify-between">
<div className="flex grow-1 flex-row items-center justify-center gap-2">
<Button asChild>
<a href="https://git.valverde.cloud">{t("nav.gitRepos")}</a>
</Button>
<Button>Resumé</Button>
</div>
</div>
<div className="mx-auto w-[750px] max-w-full px-5 pt-28 pb-10 text-foreground">