From 2045808f006fc47fed32bd0b08f9015b3491a79c Mon Sep 17 00:00:00 2001 From: !verity Date: Mon, 16 Mar 2026 21:25:53 +0100 Subject: [PATCH] init project files --- .gitignore | 139 +++ .idea/.gitignore | 10 + .idea/discord.xml | 14 + .idea/modules.xml | 8 + .idea/portfolio.iml | 8 + .idea/vcs.xml | 6 + app/layout.tsx | 49 + app/page.tsx | 19 + components/layout/Footer.module.scss | 43 + components/layout/Footer.tsx | 23 + components/layout/Header.module.scss | 144 +++ components/layout/Header.tsx | 71 ++ components/sections/About.module.scss | 155 ++++ components/sections/About.tsx | 102 +++ components/sections/Contact.module.scss | 80 ++ components/sections/Contact.tsx | 71 ++ components/sections/Experience.module.scss | 115 +++ components/sections/Experience.tsx | 56 ++ components/sections/Hero.module.scss | 261 ++++++ components/sections/Hero.tsx | 121 +++ components/sections/Projects.module.scss | 220 +++++ components/sections/Projects.tsx | 117 +++ components/sections/TechStack.module.scss | 115 +++ components/sections/TechStack.tsx | 86 ++ content/experience.ts | 52 ++ content/personal.ts | 30 + content/projects.ts | 13 + content/techstack.ts | 42 + next-env.d.ts | 5 + next.config.mjs | 16 + package-lock.json | 992 +++++++++++++++++++++ package.json | 26 + public/images/.gitkeep | 0 public/images/projects/.gitkeep | 0 styles/_animations.scss | 24 + styles/_mixins.scss | 61 ++ styles/_typography.scss | 9 + styles/_variables.scss | 24 + styles/globals.scss | 69 ++ tsconfig.json | 40 + 40 files changed, 3436 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/discord.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/portfolio.iml create mode 100644 .idea/vcs.xml create mode 100644 app/layout.tsx create mode 100644 app/page.tsx create mode 100644 components/layout/Footer.module.scss create mode 100644 components/layout/Footer.tsx create mode 100644 components/layout/Header.module.scss create mode 100644 components/layout/Header.tsx create mode 100644 components/sections/About.module.scss create mode 100644 components/sections/About.tsx create mode 100644 components/sections/Contact.module.scss create mode 100644 components/sections/Contact.tsx create mode 100644 components/sections/Experience.module.scss create mode 100644 components/sections/Experience.tsx create mode 100644 components/sections/Hero.module.scss create mode 100644 components/sections/Hero.tsx create mode 100644 components/sections/Projects.module.scss create mode 100644 components/sections/Projects.tsx create mode 100644 components/sections/TechStack.module.scss create mode 100644 components/sections/TechStack.tsx create mode 100644 content/experience.ts create mode 100644 content/personal.ts create mode 100644 content/projects.ts create mode 100644 content/techstack.ts create mode 100644 next-env.d.ts create mode 100644 next.config.mjs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/images/.gitkeep create mode 100644 public/images/projects/.gitkeep create mode 100644 styles/_animations.scss create mode 100644 styles/_mixins.scss create mode 100644 styles/_typography.scss create mode 100644 styles/_variables.scss create mode 100644 styles/globals.scss create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..46041ee --- /dev/null +++ b/.gitignore @@ -0,0 +1,139 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.* +!.env.example + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Sveltekit cache directory +.svelte-kit/ + +# vitepress build output +**/.vitepress/dist + +# vitepress cache directory +**/.vitepress/cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# Firebase cache directory +.firebase/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v3 +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Vite logs files +vite.config.js.timestamp-* +vite.config.ts.timestamp-* \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..ab1f416 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..104c42f --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..7dec97e --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/portfolio.iml b/.idea/portfolio.iml new file mode 100644 index 0000000..c956989 --- /dev/null +++ b/.idea/portfolio.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 0000000..08b8b25 --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,49 @@ +import type { Metadata, Viewport } from 'next'; +import { Syne, DM_Sans } from 'next/font/google'; +import '../styles/globals.scss'; +import Header from '@/components/layout/Header'; +import Footer from '@/components/layout/Footer'; +import { personal } from '@/content/personal'; + +const syne = Syne({ + subsets: ['latin'], + variable: '--font-display', + weight: ['400', '500', '600', '700', '800'], +}); + +const dmSans = DM_Sans({ + subsets: ['latin'], + variable: '--font-body', + weight: ['400', '500'], +}); + +export const metadata: Metadata = { + title: `${personal.name} — ${personal.role}`, + description: personal.tagline, + openGraph: { + title: `${personal.name} — ${personal.role}`, + description: personal.tagline, + type: 'website', + }, +}; + +export const viewport: Viewport = { + width: 'device-width', + initialScale: 1, + maximumScale: 5, +}; + +export default function RootLayout({ children }: { children: React.ReactNode }) { + return ( + + + + Skip to content + +
+
{children}
+