mirror of
https://github.com/hex248/ob248.com.git
synced 2026-02-07 10:17:15 +00:00
github,email,cv header
This commit is contained in:
3
bun.lock
3
bun.lock
@@ -10,7 +10,6 @@
|
||||
"@tailwindcss/vite": "^4.1.18",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"lucide-react": "^0.563.0",
|
||||
"radix-ui": "^1.4.3",
|
||||
"react": "^19.2.0",
|
||||
"react-dom": "^19.2.0",
|
||||
@@ -597,8 +596,6 @@
|
||||
|
||||
"lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="],
|
||||
|
||||
"lucide-react": ["lucide-react@0.563.0", "", { "peerDependencies": { "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA=="],
|
||||
|
||||
"magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="],
|
||||
|
||||
"minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>ob248.com</title>
|
||||
<title>Oliver Bryan</title>
|
||||
<script>
|
||||
(() => {
|
||||
try {
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
"@tailwindcss/vite": "^4.1.18",
|
||||
"class-variance-authority": "^0.7.1",
|
||||
"clsx": "^2.1.1",
|
||||
"lucide-react": "^0.563.0",
|
||||
"radix-ui": "^1.4.3",
|
||||
"react": "^19.2.0",
|
||||
"react-dom": "^19.2.0",
|
||||
|
||||
30
src/App.tsx
30
src/App.tsx
@@ -5,6 +5,7 @@ import { AskAI } from "@/components/ask-ai";
|
||||
import { ProjectListItem } from "@/components/ProjectListItem";
|
||||
import { type ProjectEntry, projectList, projects } from "@/projects";
|
||||
import { ThemeToggle } from "./components/theme-toggle";
|
||||
import { Github, Mail, Notes } from "@nsmr/pixelart-react";
|
||||
|
||||
const asciiFiles = [
|
||||
"cat-sleep.txt",
|
||||
@@ -65,6 +66,32 @@ function Home() {
|
||||
<h1 className="text-center picnic text-8xl text-balance">
|
||||
Oliver Bryan
|
||||
</h1>
|
||||
<div className="flex flex-wrap items-center justify-center gap-3 text-base text-fg">
|
||||
<a
|
||||
href="https://github.com/hex248"
|
||||
rel="noreferrer"
|
||||
target="_blank"
|
||||
className="inline-flex items-center gap-2 hover:text-accent"
|
||||
>
|
||||
<Github className="size-6" />
|
||||
hex248
|
||||
</a>
|
||||
<span className="text-fg/60">/</span>
|
||||
<a
|
||||
href="mailto:ob248@proton.me"
|
||||
className="inline-flex items-center gap-2 hover:text-accent"
|
||||
>
|
||||
<Mail className="size-6" />
|
||||
ob248@proton.me
|
||||
</a>
|
||||
<span className="text-fg/60">/</span>
|
||||
<a
|
||||
href="/cv.pdf"
|
||||
className="inline-flex items-center gap-2 hover:text-accent"
|
||||
>
|
||||
<Notes className="size-6" /> CV
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div className="w-full max-w-5xl grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||
{sortedProjects.map((project) => (
|
||||
@@ -77,9 +104,6 @@ function Home() {
|
||||
</div>
|
||||
<div className="w-full max-w-5xl flex items-center justify-between gap-4">
|
||||
<div className="flex items-center gap-6">
|
||||
<a href="/cv.pdf" className="text-lg text-fg hover:text-accent">
|
||||
CV/RESUME
|
||||
</a>
|
||||
<AskAI name="me" inline />
|
||||
</div>
|
||||
<ThemeToggle />
|
||||
|
||||
Reference in New Issue
Block a user