From 0a1dbc5fdc8bb2bbcbbe161349b58ca6f2ce1c61 Mon Sep 17 00:00:00 2001 From: Tommaso Morganti Date: Thu, 5 Mar 2026 22:57:17 +0100 Subject: [PATCH 1/6] feat: background `Shape` component --- src/app/layout.tsx | 5 ++++ src/assets/shapes/big-blue.svg | 1 + src/assets/shapes/big-teal.svg | 1 + src/assets/shapes/looper.svg | 1 + src/assets/shapes/small-blue.svg | 1 + src/components/shapes.tsx | 39 ++++++++++++++++++++++++++++++++ 6 files changed, 48 insertions(+) create mode 100644 src/assets/shapes/big-blue.svg create mode 100644 src/assets/shapes/big-teal.svg create mode 100644 src/assets/shapes/looper.svg create mode 100644 src/assets/shapes/small-blue.svg create mode 100644 src/components/shapes.tsx diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 9134da2..8a51365 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,4 +1,5 @@ import { HEADER_HEIGHT, Header } from "@/components/header" +import { Shape } from "@/components/shapes" import { ThemeProvider } from "@/components/theme-provider" import "@/styles/globals.css" import { GeistSans } from "geist/font/sans" @@ -60,6 +61,10 @@ export default function RootLayout({ children }: Readonly<{ children: React.Reac // storageKey="polinetwork_darkmode_temp" // TODO: enable when dark mode design is ready disableTransitionOnChange > + + + +
{children} diff --git a/src/assets/shapes/big-blue.svg b/src/assets/shapes/big-blue.svg new file mode 100644 index 0000000..354ec86 --- /dev/null +++ b/src/assets/shapes/big-blue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/shapes/big-teal.svg b/src/assets/shapes/big-teal.svg new file mode 100644 index 0000000..ffce061 --- /dev/null +++ b/src/assets/shapes/big-teal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/shapes/looper.svg b/src/assets/shapes/looper.svg new file mode 100644 index 0000000..9b118d2 --- /dev/null +++ b/src/assets/shapes/looper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/shapes/small-blue.svg b/src/assets/shapes/small-blue.svg new file mode 100644 index 0000000..feedfff --- /dev/null +++ b/src/assets/shapes/small-blue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/shapes.tsx b/src/components/shapes.tsx new file mode 100644 index 0000000..69f1841 --- /dev/null +++ b/src/components/shapes.tsx @@ -0,0 +1,39 @@ +import Image from "next/image" +import bigBlueSvg from "@/assets/shapes/big-blue.svg" +import bigTealSvg from "@/assets/shapes/big-teal.svg" +import looperSvg from "@/assets/shapes/looper.svg" +import smallBlueSvg from "@/assets/shapes/small-blue.svg" +import { cn } from "@/lib/utils" + +export type ShapeVariant = "big-blue" | "big-teal" | "small-blue" | "looper" + +export type ShapeProps = { + variant: ShapeVariant + className?: string +} + +export const Shape: React.FC = ({ variant, className }) => { + const getShapeSrc = () => { + switch (variant) { + case "big-blue": + return bigBlueSvg + case "big-teal": + return bigTealSvg + case "small-blue": + return smallBlueSvg + case "looper": + return looperSvg + default: + return "" + } + } + + return ( + {`${variant} + ) +} From 97fbdeac20cf749addfcd0c3f0c6a8634c818e61 Mon Sep 17 00:00:00 2001 From: Tommaso Morganti Date: Wed, 11 Mar 2026 21:49:25 +0100 Subject: [PATCH 2/6] fix: typescript/biome config fixes --- .vscode/settings.json | 5 ++++- biome.jsonc | 25 +++++++++++++++++++++---- package.json | 2 +- src/app/layout.tsx | 10 ++++++---- src/app/not-found.tsx | 2 +- src/app/page.tsx | 8 ++++---- src/components/glass.tsx | 2 +- src/components/header.tsx | 2 +- src/components/shapes.tsx | 2 +- src/components/ui/input.tsx | 4 ++-- src/components/ui/select.tsx | 12 ++++++------ tsconfig.json | 36 ++++++++++++++++++++++++++---------- 12 files changed, 74 insertions(+), 36 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index fedfb4e..fd8217d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,6 @@ { - "editor.defaultFormatter": "biomejs.biome" + "editor.defaultFormatter": "biomejs.biome", + "[jsonc]": { + "editor.defaultFormatter": "biomejs.biome" + } } \ No newline at end of file diff --git a/biome.jsonc b/biome.jsonc index 6c34b40..a4a321c 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -1,7 +1,14 @@ { "$schema": "https://biomejs.dev/schemas/2.2.5/schema.json", - "vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": false }, - "files": { "ignoreUnknown": false, "includes": ["./src/**"] }, + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false + }, + "files": { + "ignoreUnknown": false, + "includes": ["./src/**"] + }, "formatter": { "enabled": true, "formatWithErrors": false, @@ -29,6 +36,8 @@ "noUnnecessaryConditions": "error", "noImportCycles": "warn", "useSortedClasses": { + "level": "info", + "fix": "safe", "options": { "attributes": ["classList"], "functions": ["cn"] @@ -58,9 +67,17 @@ "bracketSpacing": true } }, - "html": { "formatter": { "selfCloseVoidElements": "always" } }, + "html": { + "formatter": { + "selfCloseVoidElements": "always" + } + }, "assist": { "enabled": true, - "actions": { "source": { "organizeImports": "on" } } + "actions": { + "source": { + "organizeImports": "on" + } + } } } diff --git a/package.json b/package.json index d4ec6c6..a9a1d32 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "tw-animate-css": "^1.4.0", "typescript": "^5.9.3" }, - "packageManager": "pnpm@10.17.1", + "packageManager": "pnpm@10.32.1+sha512.a706938f0e89ac1456b6563eab4edf1d1faf3368d1191fc5c59790e96dc918e4456ab2e67d613de1043d2e8c81f87303e6b40d4ffeca9df15ef1ad567348f2be", "engines": { "node": ">=24.5.2" } diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 8a51365..747c1e4 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -61,10 +61,12 @@ export default function RootLayout({ children }: Readonly<{ children: React.Reac // storageKey="polinetwork_darkmode_temp" // TODO: enable when dark mode design is ready disableTransitionOnChange > - - - - +
+ + + + +
{children} diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx index 5b7ef47..7f08738 100644 --- a/src/app/not-found.tsx +++ b/src/app/not-found.tsx @@ -3,7 +3,7 @@ import Link from "next/link" export default async function NotFound() { return (
-

Not Found

+

Not Found

This page doesn't exist or is not available yet.

diff --git a/src/app/page.tsx b/src/app/page.tsx index ecc1240..9e2bb5a 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -5,13 +5,13 @@ import { ButtonWithIcon } from "@/components/ui/buttonWithIcon" export default function Home() { return (
-

Welcome to PoliNetwork

+

Welcome to PoliNetwork

PoliNetwork is a student association dedicated to connecting and supporting students at Politecnico.

-
-

Test with figma variables

-
+
+

Test with figma variables

+
diff --git a/src/components/glass.tsx b/src/components/glass.tsx index ee0430e..3f67c8c 100644 --- a/src/components/glass.tsx +++ b/src/components/glass.tsx @@ -4,7 +4,7 @@ type GlassProps = React.HTMLAttributes export function Glass({ children, ...props }: GlassProps) { return ( -
+
{children}
) diff --git a/src/components/header.tsx b/src/components/header.tsx index 35abbc5..64b77a5 100644 --- a/src/components/header.tsx +++ b/src/components/header.tsx @@ -17,7 +17,7 @@ export async function Header() { width={40} height={40} /> -

PoliNetwork

+

PoliNetwork