Skip to content

Commit

Permalink
feat: major portfolio redesign
Browse files Browse the repository at this point in the history
Signed-off-by: Urban Vidovič <[email protected]>
  • Loading branch information
pseudobun committed Oct 22, 2024
1 parent 8c4c2fa commit 3ac44be
Show file tree
Hide file tree
Showing 50 changed files with 2,323 additions and 5,645 deletions.
1 change: 0 additions & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
strict-peer-dependencies=false
auto-install-peers=true
public-hoist-pattern[]=*@nextui-org/*
enable-pre-post-scripts=true
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v20.16.0
v20.17.0
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
},
"packageManager": "[email protected]",
"engines": {
"node": ">=20.16",
"node": ">=20.17",
"pnpm": ">=9"
}
}
20 changes: 20 additions & 0 deletions packages/portfolio/components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "tailwind.config.ts",
"css": "src/app/globals.css",
"baseColor": "zinc",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui",
"lib": "@/lib",
"hooks": "@/hooks"
}
}
2 changes: 0 additions & 2 deletions packages/portfolio/next.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ import MillionCompiler from '@million/lint';
const nextConfig = {
trailingSlash: true,
reactStrictMode: true,
swcMinify: true,
optimizeFonts: true,
typescript: {
ignoreBuildErrors: true,
},
Expand Down
16 changes: 12 additions & 4 deletions packages/portfolio/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@
"@headlessui/react": "^2.0.4",
"@heroicons/react": "^2.1.3",
"@million/lint": "1.0.0-rc.26",
"@nextui-org/react": "^2.4.1",
"@radix-ui/react-icons": "^1.3.0",
"@radix-ui/react-navigation-menu": "^1.2.1",
"@radix-ui/react-slot": "^1.1.0",
"@supabase/supabase-js": "^2.43.4",
"@svgr/webpack": "^8.1.0",
"@tanstack/react-query": "^5.40.1",
Expand All @@ -25,22 +27,28 @@
"@vercel/analytics": "^1.3.1",
"@vercel/speed-insights": "^1.0.11",
"autoprefixer": "10.4.19",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"critters": "^0.0.22",
"dompurify": "^3.1.5",
"embla-carousel-react": "^8.3.0",
"framer-motion": "^11.2.10",
"gray-matter": "^4.0.3",
"hamburger-react": "^2.5.1",
"next": "14.2.15",
"lucide-react": "^0.453.0",
"next": "15.0.0",
"next-themes": "^0.3.0",
"postcss": "8.4.38",
"react": "18.3.1",
"react-card-flip": "^1.2.3",
"react-dom": "18.3.1",
"react-inlinesvg": "^4.1.3",
"react-plock": "^3.2.0",
"sharp": "^0.33.4",
"tailwindcss": "^3.4.4",
"typewriter-effect": "^2.21.0",
"simple-icons": "^13.14.1",
"tailwind-merge": "^2.5.4",
"tailwindcss": "^3.4.14",
"tailwindcss-animate": "^1.0.7",
"zustand": "^4.5.2"
},
"devDependencies": {
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
13 changes: 0 additions & 13 deletions packages/portfolio/src/app/about/page.tsx

This file was deleted.

2 changes: 1 addition & 1 deletion packages/portfolio/src/app/gallery/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const revalidate = 604800;
export default async function Gallery() {
const urls = await getImageUrls();
return (
<div className="flex flex-1 flex-col h-full gap-y-10 w-full justify-start mb-12 text-stone-200">
<div className="flex flex-1 max-w-[1024px] flex-col h-full gap-y-10 w-full justify-start mb-12 text-stone-200">
<div>
<p className="sm:text-3xl text-3xl">Gallery</p>
<p className="sm:text-xl text-xl">Sometimes I 📸 stuff.</p>
Expand Down
67 changes: 67 additions & 0 deletions packages/portfolio/src/app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,70 @@
--background-end-rgb: 0, 0, 0;
}
}


@layer base {
:root {
--background: 0 0% 100%;
--foreground: 20 14.3% 4.1%;
--card: 0 0% 100%;
--card-foreground: 20 14.3% 4.1%;
--popover: 0 0% 100%;
--popover-foreground: 20 14.3% 4.1%;
--primary: 24.6 95% 53.1%;
--primary-foreground: 60 9.1% 97.8%;
--secondary: 60 4.8% 95.9%;
--secondary-foreground: 24 9.8% 10%;
--muted: 60 4.8% 95.9%;
--muted-foreground: 25 5.3% 44.7%;
--accent: 60 4.8% 95.9%;
--accent-foreground: 24 9.8% 10%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 60 9.1% 97.8%;
--border: 20 5.9% 90%;
--input: 20 5.9% 90%;
--ring: 24.6 95% 53.1%;
--radius: 1rem;
--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%;
}

.dark {
--background: 20 14.3% 4.1%;
--foreground: 60 9.1% 97.8%;
--card: 20 14.3% 4.1%;
--card-foreground: 60 9.1% 97.8%;
--popover: 20 14.3% 4.1%;
--popover-foreground: 60 9.1% 97.8%;
--primary: 20.5 90.2% 48.2%;
--primary-foreground: 60 9.1% 97.8%;
--secondary: 12 6.5% 15.1%;
--secondary-foreground: 60 9.1% 97.8%;
--muted: 12 6.5% 15.1%;
--muted-foreground: 24 5.4% 63.9%;
--accent: 12 6.5% 15.1%;
--accent-foreground: 60 9.1% 97.8%;
--destructive: 0 72.2% 50.6%;
--destructive-foreground: 60 9.1% 97.8%;
--border: 12 6.5% 15.1%;
--input: 12 6.5% 15.1%;
--ring: 20.5 90.2% 48.2%;
--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%;
}
}

@layer base {
* {
@apply border-border;
}
body {
@apply bg-background text-foreground;
}
}
20 changes: 12 additions & 8 deletions packages/portfolio/src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ import Navigation from '@/components/Navigation';
import { METADATA } from '@/constants/metadata';
import { Providers } from '@/app/providers';
import { SpeedInsights } from '@vercel/speed-insights/next';
import { portfolioFont } from 'src/fonts';
import { monoFont } from 'src/fonts';
import Footer from '@/components/Footer';

export const metadata = METADATA.root;

Expand All @@ -14,17 +15,20 @@ export default function RootLayout({
children: React.ReactNode;
}) {
return (
<html lang="en" className={portfolioFont.className}>
<body>
<html lang="en" className={monoFont.className} suppressHydrationWarning>
<body className="flex flex-col min-h-[100vh]">
<Providers>
<main className="text-cappuccino no-scrollbar flex h-full min-h-screen w-full flex-col items-center justify-center bg-gradient-to-tr from-black to-stone-800 bg-fixed sm:p-24 p-6">
{/* <main className="text-cappuccino no-scrollbar flex h-full min-h-screen w-full flex-col items-center justify-center bg-stone-950 bg-fixed sm:p-24 p-6"> */}
<header className="flex p-4 justify-center">
<Navigation />
</header>
<main className="flex-grow flex flex-col no-scrollbar min-w-full sm:p-24 p-6 items-center justify-center max-w-4xl">
{children}
{/* <Footer /> */}
<Analytics />
<SpeedInsights />
</main>
<footer className="flex p-4 items-center justify-center w-screen">
<Footer />
</footer>
<Analytics />
<SpeedInsights />
</Providers>
</body>
</html>
Expand Down
4 changes: 0 additions & 4 deletions packages/portfolio/src/app/not-found.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { MemoizedSVG } from '@/components/MemoizedSVG';
import ExoticLink from '@/components/ExoticLink';

export default function NotFound() {
return (
Expand All @@ -12,9 +11,6 @@ export default function NotFound() {
<p className="text-md text-center md:text-xl text-stone-200">
404: You ain't gonna find anything here
</p>
<ExoticLink aria-label="Go to homepage" noEnlarge href="/">
Return to homepage
</ExoticLink>
</div>
);
}
64 changes: 42 additions & 22 deletions packages/portfolio/src/app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,29 +1,49 @@
'use client';
import { MemoizedSVG } from '@/components/MemoizedSVG';
import Typewriter from 'typewriter-effect';
import { motion } from 'framer-motion';
import ExoticLink from '@/components/ExoticLink';
import { PERSONAL } from '@/constants/data.mjs';

export default function Home() {
return (
<motion.div
initial={{ scale: 0.4, opacity: 0 }}
animate={{ scale: 1, opacity: 1 }}
transition={{ type: 'spring', stiffness: 50, damping: 10 }}
className="flex h-full w-full flex-col gap-y-2 items-center"
>
<MemoizedSVG
aria-label="Bunnys Den logo"
src="bunnysden.svg"
className="h-4/5 w-4/5 flex-1 md:h-1/3 md:w-1/3"
/>
<div className="font-mono text-2xl text-stone-300 max-w-full">
<Typewriter
options={{ cursor: '█' }}
onInit={(typewriter) => {
typewriter.changeDelay(10).typeString("Bunny's Den").start();
}}
<div className="flex flex-col max-w-[1024px]">
<span className="text-2xl font-bold">gm 🌱</span>
<p className="text-lg">
I'm Urban, a Software Engineer from Maribor, Slovenia. I currently work
at{' '}
<ExoticLink
aria-label="Go to company website"
className="no-underline"
href={PERSONAL.companyUrl}
>
{PERSONAL.company}
</ExoticLink>{' '}
and{' '}
<ExoticLink
aria-label="Go to company website"
blank
className="no-underline"
href={PERSONAL.company2Url}
>
{PERSONAL.company2}
</ExoticLink>{' '}
as a {PERSONAL.position}. I have a Master's degree in Computer Science
acquired at{' '}
<ExoticLink
blank
className="no-underline"
href={PERSONAL.universityUrl}
>
Faculty of Electrical Engineering and Computer Science, University of
Maribor
</ExoticLink>
.
</p>
{/* <div className="flex h-full w-full flex-col gap-y-2 items-center">
<MemoizedSVG
aria-label="Bunnys Den logo"
src="bunnysden.svg"
className="h-24 w-24 pt-4 flex-1 md:h-1/3 md:w-1/3"
/>
</div>
</motion.div>
</div> */}
</div>
);
}
21 changes: 18 additions & 3 deletions packages/portfolio/src/app/projects/page.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,32 @@
import ProjectsGrid from '@/components/ProjectsGrid';
import ProjectCard from '@/components/ProjectCard';
import { PROJECTS } from '@/constants/data.mjs';

export const metadata = {
title: 'Projects',
};

export default function Projects() {
return (
<div className="flex flex-1 flex-col h-full gap-y-10 w-full justify-start mb-12 text-stone-200">
<div className="flex flex-1 flex-col h-full max-w-[1024px] gap-y-10 justify-center mb-12 text-stone-200">
<div>
<p className="sm:text-3xl text-3xl">Projects</p>
<p className="sm:text-xl text-xl">I 🤍 building things.</p>
</div>
<ProjectsGrid />
{PROJECTS.map((project, index) => (
<ProjectCard
key={project.title}
delay={index * 0.3}
github={project.github}
org={project.org!}
orgUrl={project.orgUrl!}
highlight={project.highlight}
title={project.title}
description={project.description}
website={project.website}
image={project.image}
firstInRow={index === 0}
/>
))}
</div>
);
}
20 changes: 12 additions & 8 deletions packages/portfolio/src/app/providers.tsx
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
'use client';
import { NextUIProvider } from '@nextui-org/react';
import { ThemeProvider } from 'next-themes';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import type { ThemeProviderProps } from 'next-themes/dist/types';

const queryClient = new QueryClient();

export function Providers({ children }: { children: React.ReactNode }) {
export function Providers({ children }: ThemeProviderProps) {
return (
<NextUIProvider>
<QueryClientProvider client={queryClient}>
<QueryClientProvider client={queryClient}>
<ThemeProvider
attribute="class"
defaultTheme="dark"
disableTransitionOnChange
>
{children}
<ReactQueryDevtools initialIsOpen={false} />
</QueryClientProvider>
</NextUIProvider>
</ThemeProvider>
{/* <ReactQueryDevtools initialIsOpen={false} /> */}
</QueryClientProvider>
);
}
Loading

0 comments on commit 3ac44be

Please sign in to comment.