diff --git a/apps/web/package.json b/apps/web/package.json index 683e6df..1847824 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -23,6 +23,7 @@ "better-auth": "^1.0.21", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", + "geist": "^1.7.0", "lucide-react": "^0.439.0", "next": "^14.2.5", "next-intl": "^3.17.2", diff --git a/apps/web/src/app/[locale]/fasting/page.tsx b/apps/web/src/app/[locale]/fasting/page.tsx index 54acabe..8d2a2ea 100644 --- a/apps/web/src/app/[locale]/fasting/page.tsx +++ b/apps/web/src/app/[locale]/fasting/page.tsx @@ -43,7 +43,7 @@ function FastingPageContent({ return (
-
+
diff --git a/apps/web/src/app/[locale]/layout.tsx b/apps/web/src/app/[locale]/layout.tsx index 61d9b42..ce1fd13 100644 --- a/apps/web/src/app/[locale]/layout.tsx +++ b/apps/web/src/app/[locale]/layout.tsx @@ -1,5 +1,6 @@ +import { GeistMono } from 'geist/font/mono'; +import { GeistSans } from 'geist/font/sans'; import type { Metadata, Viewport } from 'next'; -import { Fraunces, Inter_Tight, JetBrains_Mono } from 'next/font/google'; import { notFound } from 'next/navigation'; import { NextIntlClientProvider } from 'next-intl'; import { getMessages, getTranslations, setRequestLocale } from 'next-intl/server'; @@ -10,27 +11,6 @@ import { locales, type Locale } from '@/i18n'; import '@/styles/globals.css'; -const fraunces = Fraunces({ - subsets: ['latin'], - variable: '--font-display', - display: 'swap', - style: ['normal', 'italic'], -}); - -const interTight = Inter_Tight({ - subsets: ['latin'], - variable: '--font-sans', - display: 'swap', - weight: ['400', '500', '600'], -}); - -const mono = JetBrains_Mono({ - subsets: ['latin'], - variable: '--font-mono', - display: 'swap', - weight: ['400', '500'], -}); - export function generateStaticParams() { return locales.map((locale) => ({ locale })); } @@ -88,7 +68,7 @@ export default async function LocaleLayout({ const messages = await getMessages(); return ( - + {children} diff --git a/apps/web/src/app/[locale]/onboarding/page.tsx b/apps/web/src/app/[locale]/onboarding/page.tsx index c77c974..6a83970 100644 --- a/apps/web/src/app/[locale]/onboarding/page.tsx +++ b/apps/web/src/app/[locale]/onboarding/page.tsx @@ -49,7 +49,7 @@ function OnboardingPageContent({ return (
-
+
diff --git a/apps/web/src/app/[locale]/page.tsx b/apps/web/src/app/[locale]/page.tsx index ec2e5b7..a66621e 100644 --- a/apps/web/src/app/[locale]/page.tsx +++ b/apps/web/src/app/[locale]/page.tsx @@ -18,7 +18,7 @@ export default async function HomePage({ params: { locale } }: { params: { local function HomeContent({ userName }: { userName: string | null }) { return (
-
+
{userName ? : }
diff --git a/apps/web/src/app/[locale]/plan/page.tsx b/apps/web/src/app/[locale]/plan/page.tsx index d9fe42c..c08dd72 100644 --- a/apps/web/src/app/[locale]/plan/page.tsx +++ b/apps/web/src/app/[locale]/plan/page.tsx @@ -57,7 +57,7 @@ function PlanPageContent({ return (
-
+
diff --git a/apps/web/src/app/[locale]/profile/page.tsx b/apps/web/src/app/[locale]/profile/page.tsx index a125b2b..f3f0be2 100644 --- a/apps/web/src/app/[locale]/profile/page.tsx +++ b/apps/web/src/app/[locale]/profile/page.tsx @@ -58,7 +58,7 @@ function ProfilePageContent({ return (
-
+
diff --git a/apps/web/src/app/[locale]/recipes/[id]/page.tsx b/apps/web/src/app/[locale]/recipes/[id]/page.tsx index 040b5f0..c32af93 100644 --- a/apps/web/src/app/[locale]/recipes/[id]/page.tsx +++ b/apps/web/src/app/[locale]/recipes/[id]/page.tsx @@ -110,7 +110,7 @@ function RecipeContent({ recipe }: { recipe: RecipeView }) { const phasesAll = recipe.phases.length === 3; return ( -
+
-
+
diff --git a/apps/web/src/app/[locale]/tracking/page.tsx b/apps/web/src/app/[locale]/tracking/page.tsx index 7d8794a..aa26717 100644 --- a/apps/web/src/app/[locale]/tracking/page.tsx +++ b/apps/web/src/app/[locale]/tracking/page.tsx @@ -65,7 +65,7 @@ function TrackingPageContent({ return (
-
+
diff --git a/apps/web/src/styles/globals.css b/apps/web/src/styles/globals.css index 58e3e12..3f51cc0 100644 --- a/apps/web/src/styles/globals.css +++ b/apps/web/src/styles/globals.css @@ -14,6 +14,12 @@ @layer base { :root { + /* Font aliases — il pacchetto `geist` espone --font-geist-sans / --font-geist-mono. + * Mappiamo le nostre tre keyword (display/sans/mono) tutte a Geist. */ + --font-display: var(--font-geist-sans); + --font-sans: var(--font-geist-sans); + --font-mono: var(--font-geist-mono); + --carta: 42 38% 94%; --carta-light: 44 45% 97%; --carta-dim: 40 30% 88%; @@ -87,7 +93,7 @@ @apply bg-background text-foreground font-sans; font-feature-settings: 'ss01' on, - 'cv11' on; + 'ss03' on; } /* paper grain — applied once, fixed, non-interactive */ @@ -117,10 +123,11 @@ h2, h3 { font-optical-sizing: auto; + letter-spacing: -0.02em; font-feature-settings: 'ss01' on, - 'liga' on, - 'dlig' on; + 'ss03' on, + 'liga' on; } .font-mono { diff --git a/apps/web/tailwind.config.ts b/apps/web/tailwind.config.ts index 3056f98..07feb9b 100644 --- a/apps/web/tailwind.config.ts +++ b/apps/web/tailwind.config.ts @@ -12,9 +12,21 @@ const config: Config = { }, extend: { fontFamily: { - display: ['var(--font-display)', 'Georgia', 'serif'], - sans: ['var(--font-sans)', 'system-ui', 'sans-serif'], - mono: ['var(--font-mono)', 'ui-monospace', 'monospace'], + display: [ + 'var(--font-display)', + 'system-ui', + '-apple-system', + 'BlinkMacSystemFont', + 'sans-serif', + ], + sans: [ + 'var(--font-sans)', + 'system-ui', + '-apple-system', + 'BlinkMacSystemFont', + 'sans-serif', + ], + mono: ['var(--font-mono)', 'ui-monospace', 'SFMono-Regular', 'monospace'], }, fontSize: { // tighter editorial display sizes diff --git a/docs/~$D_KetoPath.docx b/docs/~$D_KetoPath.docx deleted file mode 100644 index 533a3bc..0000000 Binary files a/docs/~$D_KetoPath.docx and /dev/null differ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 65b6e42..e28dc86 100644 Binary files a/pnpm-lock.yaml and b/pnpm-lock.yaml differ