Initial commit
This commit is contained in:
commit
dc66b66d94
22 changed files with 7556 additions and 0 deletions
79
app/globals.css
Normal file
79
app/globals.css
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
:root {
|
||||
--accent: #c2339b;
|
||||
--bg: #0f0f14;
|
||||
--text: #e8e4df;
|
||||
--text-muted: rgba(255, 255, 255, 0.5);
|
||||
--text-dim: rgba(255, 255, 255, 0.35);
|
||||
--surface: rgba(255, 255, 255, 0.03);
|
||||
--border: rgba(255, 255, 255, 0.06);
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: rgba(194, 51, 155, 0.35);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: var(--bg);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: rgba(194, 51, 155, 0.3);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
a {
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
/* Fade-in animation */
|
||||
@keyframes fadeUp {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(28px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
.fade-in {
|
||||
opacity: 0;
|
||||
transform: translateY(28px);
|
||||
transition: opacity 0.7s ease, transform 0.7s ease;
|
||||
}
|
||||
|
||||
.fade-in.visible {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
49
app/layout.tsx
Normal file
49
app/layout.tsx
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
import type { Metadata } from "next";
|
||||
import { DM_Sans } from "next/font/google";
|
||||
import "./globals.css";
|
||||
|
||||
const dmSans = DM_Sans({
|
||||
subsets: ["latin"],
|
||||
variable: "--font-sans",
|
||||
display: "swap",
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Janpeter Visser — Software Engineer",
|
||||
description:
|
||||
"Persoonlijke website van Janpeter Visser. Allround software engineer met 30 jaar ervaring in full-stack development, van C++ tot Angular en .NET.",
|
||||
metadataBase: new URL("https://jp-visser.nl"),
|
||||
openGraph: {
|
||||
title: "Janpeter Visser — Software Engineer",
|
||||
description:
|
||||
"Allround software engineer met 30 jaar ervaring in full-stack development.",
|
||||
url: "https://jp-visser.nl",
|
||||
siteName: "Janpeter Visser",
|
||||
locale: "nl_NL",
|
||||
type: "website",
|
||||
},
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}) {
|
||||
return (
|
||||
<html lang="nl" className={dmSans.variable}>
|
||||
<head>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link
|
||||
rel="preconnect"
|
||||
href="https://fonts.gstatic.com"
|
||||
crossOrigin="anonymous"
|
||||
/>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
</head>
|
||||
<body className="font-sans">{children}</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
21
app/page.tsx
Normal file
21
app/page.tsx
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
import { Nav } from "@/components/nav";
|
||||
import { Hero } from "@/components/hero";
|
||||
import { ExperienceSection } from "@/components/experience";
|
||||
import { SkillsSection } from "@/components/skills";
|
||||
import { AppsSection } from "@/components/apps";
|
||||
import { ContactSection } from "@/components/contact";
|
||||
import { Footer } from "@/components/footer";
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<>
|
||||
<Nav />
|
||||
<Hero />
|
||||
<ExperienceSection />
|
||||
<SkillsSection />
|
||||
<AppsSection />
|
||||
<ContactSection />
|
||||
<Footer />
|
||||
</>
|
||||
);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue