From 4675ef47f67da5a5be1ef5ba0b38c6bf11167804 Mon Sep 17 00:00:00 2001 From: FA-ghost Date: Sun, 14 Sep 2025 15:20:54 +0100 Subject: [PATCH 1/2] optimise fonts --- package-lock.json | 89 +++++++++++++++++++++++++-------------------- package.json | 1 + src/app/globals.css | 80 +++++++++++++++++++++++++++------------- src/app/layout.tsx | 22 +++++++---- 4 files changed, 120 insertions(+), 72 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4ec104a..a8d0eee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "next": "^15.3.3", "react": "^19.0.0", "react-dom": "^19.0.0", + "sonner": "^2.0.7", "tailwind-merge": "^3.3.0", "tailwindcss-animate": "^1.0.7" }, @@ -768,9 +769,9 @@ } }, "node_modules/@next/env": { - "version": "15.4.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.4.3.tgz", - "integrity": "sha512-lKJ9KJAvaWzqurIsz6NWdQOLj96mdhuDMusLSYHw9HBe2On7BjUwU1WeRvq19x7NrEK3iOgMeSBV5qEhVH1cMw==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.3.tgz", + "integrity": "sha512-RSEDTRqyihYXygx/OJXwvVupfr9m04+0vH8vyy0HfZ7keRto6VX9BbEk0J2PUk0VGy6YhklJUSrgForov5F9pw==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -784,9 +785,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.4.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.4.3.tgz", - "integrity": "sha512-YAhZWKeEYY7LHQJiQ8fe3Y6ymfcDcTn7rDC8PDu/pdeIl1Z2LHD4uyPNuQUGCEQT//MSNv6oZCeQzZfTCKZv+A==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.3.tgz", + "integrity": "sha512-nzbHQo69+au9wJkGKTU9lP7PXv0d1J5ljFpvb+LnEomLtSbJkbZyEs6sbF3plQmiOB2l9OBtN2tNSvCH1nQ9Jg==", "cpu": [ "arm64" ], @@ -800,9 +801,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.4.3", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.4.3.tgz", - "integrity": "sha512-ZPHRdd51xaxCMpT4viQ6h8TgYM1zPW1JIeksPY9wKlyvBVUQqrWqw8kEh1sa7/x0Ied+U7pYHkAkutrUwxbMcg==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.5.3.tgz", + "integrity": "sha512-w83w4SkOOhekJOcA5HBvHyGzgV1W/XvOfpkrxIse4uPWhYTTRwtGEM4v/jiXwNSJvfRvah0H8/uTLBKRXlef8g==", "cpu": [ "x64" ], @@ -816,9 +817,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.4.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.4.3.tgz", - "integrity": "sha512-QUdqftCXC5vw5cowucqi9FeOPQ0vdMxoOHLY0J5jPdercwSJFjdi9CkEO4Xkq1eG4t1TB/BG81n6rmTsWoILnw==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.5.3.tgz", + "integrity": "sha512-+m7pfIs0/yvgVu26ieaKrifV8C8yiLe7jVp9SpcIzg7XmyyNE7toC1fy5IOQozmr6kWl/JONC51osih2RyoXRw==", "cpu": [ "arm64" ], @@ -832,9 +833,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.4.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.4.3.tgz", - "integrity": "sha512-HTL31NsmoafX+r5g91Yj3+q34nrn1xKmCWVuNA+fUWO4X0pr+n83uGzLyEOn0kUqbMZ40KmWx+4wsbMoUChkiQ==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.5.3.tgz", + "integrity": "sha512-u3PEIzuguSenoZviZJahNLgCexGFhso5mxWCrrIMdvpZn6lkME5vc/ADZG8UUk5K1uWRy4hqSFECrON6UKQBbQ==", "cpu": [ "arm64" ], @@ -848,9 +849,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.4.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.4.3.tgz", - "integrity": "sha512-HRQLWoeFkKXd2YCEEy9GhfwOijRm37x4w5r0MMVHxBKSA6ms3JoPUXvGhfHT6srnGRcEUWNrQ2vzkHir5ZWTSw==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.5.3.tgz", + "integrity": "sha512-lDtOOScYDZxI2BENN9m0pfVPJDSuUkAD1YXSvlJF0DKwZt0WlA7T7o3wrcEr4Q+iHYGzEaVuZcsIbCps4K27sA==", "cpu": [ "x64" ], @@ -864,9 +865,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.4.3", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.4.3.tgz", - "integrity": "sha512-NyXUx6G7AayaRGUsVPenuwhyAoyxjQuQPaK50AXoaAHPwRuif4WmSrXUs8/Y0HJIZh8E/YXRm9H7uuGfiacpuQ==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.5.3.tgz", + "integrity": "sha512-9vWVUnsx9PrY2NwdVRJ4dUURAQ8Su0sLRPqcCCxtX5zIQUBES12eRVHq6b70bbfaVaxIDGJN2afHui0eDm+cLg==", "cpu": [ "x64" ], @@ -880,9 +881,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.4.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.4.3.tgz", - "integrity": "sha512-2CUTmpzN/7cL1a7GjdLkDFlfH3nwMwW8a6JiaAUsL9MtKmNNO3fnXqnY0Zk30fii3hVEl4dr7ztrpYt0t2CcGQ==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.5.3.tgz", + "integrity": "sha512-1CU20FZzY9LFQigRi6jM45oJMU3KziA5/sSG+dXeVaTm661snQP6xu3ykGxxwU5sLG3sh14teO/IOEPVsQMRfA==", "cpu": [ "arm64" ], @@ -896,9 +897,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.4.3", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.4.3.tgz", - "integrity": "sha512-i54YgUhvrUQxQD84SjAbkfWhYkOdm/DNRAVekCHLWxVg3aUbyC6NFQn9TwgCkX5QAS2pXCJo3kFboSFvrsd7dA==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.5.3.tgz", + "integrity": "sha512-JMoLAq3n3y5tKXPQwCK5c+6tmwkuFDa2XAxz8Wm4+IVthdBZdZGh+lmiLUHg9f9IDwIQpUjp+ysd6OkYTyZRZw==", "cpu": [ "x64" ], @@ -4730,12 +4731,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.4.3", - "resolved": "https://registry.npmjs.org/next/-/next-15.4.3.tgz", - "integrity": "sha512-uW7Qe6poVasNIE1X382nI29oxSdFJzjQzTgJFLD43MxyPfGKKxCMySllhBpvqr48f58Om+tLMivzRwBpXEytvA==", + "version": "15.5.3", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.3.tgz", + "integrity": "sha512-r/liNAx16SQj4D+XH/oI1dlpv9tdKJ6cONYPwwcCC46f2NjpaRWY+EKCzULfgQYV6YKXjHBchff2IZBSlZmJNw==", "license": "MIT", "dependencies": { - "@next/env": "15.4.3", + "@next/env": "15.5.3", "@swc/helpers": "0.5.15", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", @@ -4748,14 +4749,14 @@ "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.4.3", - "@next/swc-darwin-x64": "15.4.3", - "@next/swc-linux-arm64-gnu": "15.4.3", - "@next/swc-linux-arm64-musl": "15.4.3", - "@next/swc-linux-x64-gnu": "15.4.3", - "@next/swc-linux-x64-musl": "15.4.3", - "@next/swc-win32-arm64-msvc": "15.4.3", - "@next/swc-win32-x64-msvc": "15.4.3", + "@next/swc-darwin-arm64": "15.5.3", + "@next/swc-darwin-x64": "15.5.3", + "@next/swc-linux-arm64-gnu": "15.5.3", + "@next/swc-linux-arm64-musl": "15.5.3", + "@next/swc-linux-x64-gnu": "15.5.3", + "@next/swc-linux-x64-musl": "15.5.3", + "@next/swc-win32-arm64-msvc": "15.5.3", + "@next/swc-win32-x64-msvc": "15.5.3", "sharp": "^0.34.3" }, "peerDependencies": { @@ -5803,6 +5804,16 @@ "is-arrayish": "^0.3.1" } }, + "node_modules/sonner": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.7.tgz", + "integrity": "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==", + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", diff --git a/package.json b/package.json index 2e4f5e3..55d7ead 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "next": "^15.3.3", "react": "^19.0.0", "react-dom": "^19.0.0", + "sonner": "^2.0.7", "tailwind-merge": "^3.3.0", "tailwindcss-animate": "^1.0.7" }, diff --git a/src/app/globals.css b/src/app/globals.css index 88e6a65..053cee1 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -12,10 +12,6 @@ --card-foreground: 0 0% 3.9%; - --popover: 0 0% 100%; - - --popover-foreground: 0 0% 3.9%; - --primary: 0 0% 9%; --primary-foreground: 0 0% 98%; @@ -42,15 +38,6 @@ --ring: 0 0% 3.9%; - --chart-1: 12 76% 61%; - - --chart-2: 173 58% 39%; - - --chart-3: 197 37% 24%; - - --chart-4: 43 74% 66%; - - --chart-5: 27 87% 67%; --radius: 0.5rem; } @@ -63,9 +50,6 @@ --card-foreground: 0 0% 98%; - --popover: 0 0% 3.9%; - - --popover-foreground: 0 0% 98%; --primary: 0 0% 98%; @@ -93,15 +77,6 @@ --ring: 0 0% 83.1%; - --chart-1: 220 70% 50%; - - --chart-2: 160 60% 45%; - - --chart-3: 30 80% 55%; - - --chart-4: 280 65% 60%; - - --chart-5: 340 75% 55%; } } @@ -119,3 +94,58 @@ @apply bg-gray-900 text-gray-400; } } + + +* { + font-display: swap; +} + +.background { + width: 150vw; + height: 165vw; + background: linear-gradient(to right, #db2778a9, #6c28d9a9); + position: absolute; + top: -125vw; + left: calc(50% - 75vw); + border-radius: 45%; + animation: anime 55s infinite ease-in-out; +} + +.background::before, +.background::after { + content: ""; + width: 100%; + height: 100%; + background: inherit; + position: absolute; + top: 0; + left: 0; + border-radius: 45%; +} + +.background::before { + animation: anime 45s infinite ease-in-out; +} + +.background::after { + animation: anime 50s infinite ease-in-out; +} + + +.font-sans { + font-family: var(--font-geist-sans), -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; +} + +.font-mono { + font-family: var(--font-geist-mono), 'SF Mono', Monaco, 'Cascadia Code', monospace; +} + +@keyframes anime { + 0%, + 100% { + transform: rotate(0deg); + } + 50% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/src/app/layout.tsx b/src/app/layout.tsx index bdf8870..912e76d 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -3,24 +3,31 @@ import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; import Footer from "@/components/footer"; import NavbarMenu from "@/components/nabvarMenu"; +import { Toaster } from "sonner"; const geistSans = Geist({ variable: "--font-geist-sans", - subsets: ["latin"] + subsets: ["latin"], + display: "swap", + preload: true, + weight: ["400", "500", "600", "700"], }); const geistMono = Geist_Mono({ variable: "--font-geist-mono", - subsets: ["latin"] + subsets: ["latin"], + display: "swap", + preload: true, + weight: ["400", "500"], }); export const metadata: Metadata = { title: "Create Next App", - description: "Generated by create next app" + description: "Generated by create next app", }; export default function RootLayout({ - children + children, }: Readonly<{ children: React.ReactNode; }>) { @@ -30,11 +37,10 @@ export default function RootLayout({ className={`${geistSans.variable} ${geistMono.variable} antialiased bg-[#111627]`} > -
- {children} -
+ +
{children}