3.1 KiB
Portfolio Site Integration Plan
Phase 1: Foundation Setup
Tailwind Configuration
Update src/styles/global.css to configure Tailwind v4 with the V7 design system tokens from design.json:
- Brand colors (dark: #0B0D11, panel: #151921, accent: #FFB84C, cyan: #22D3EE)
- Font families (Inter + Space Mono from Google Fonts)
- Custom utilities (grid-overlay, text-massive, text-stroke, skill-tag, btn-primary, btn-ghost)
- Scrollbar styling, reveal animations, cursor styles
Constants Update
Update src/consts.ts with Nicholai's site metadata:
- SITE_TITLE, SITE_DESCRIPTION, contact info, social links
Phase 2: Core Components
BaseHead.astro
Modify to include:
- Google Fonts preconnect/stylesheet (Inter, Space Mono)
- Lucide icons CDN script
- Remove old Atkinson font preloads
Layout Components (new files in src/components/)
Extract from index.html:
| Component | Purpose |
|-----------|---------|
| GridOverlay.astro | Fixed background grid + 12-column guide |
| Navigation.astro | Fixed nav with logo, status badge, links, contact CTA |
| Footer.astro | Replace existing - contact CTA, social links, copyright |
| CustomCursor.tsx | React island for cursor dot + outline with mousemove tracking |
Section Components (new files in src/components/sections/)
| Component | Purpose |
|-----------|---------|
| Hero.astro | Hero with title, subtitle, description, clock |
| Experience.astro | Timeline with Biohazard VFX, Stinkfilms, Freelance |
| FeaturedProject.astro | G-Star Raw Olympics full-width showcase |
| Skills.astro | Technical arsenal 4-column grid |
Phase 3: Layouts
BaseLayout.astro (new)
Create shared layout wrapping:
- BaseHead, GridOverlay, Navigation, main slot, Footer, CustomCursor island
- Body classes:
antialiased selection:bg-brand-accent selection:text-brand-dark
BlogPost.astro
Restyle to match V7 dark theme while keeping content structure.
Phase 4: Pages
index.astro
Compose from section components:
<BaseLayout>
<Hero />
<Divider />
<Experience />
<Divider />
<FeaturedProject />
<Skills />
</BaseLayout>
blog/index.astro
Restyle post grid with dark theme, card hover effects, accent colors.
blog/[...slug].astro
Uses updated BlogPost layout (no changes needed to routing logic).
Delete about.astro
Remove the about page entirely.
Phase 5: Assets
- Add favicon matching brand identity to
public/ - Keep existing blog placeholder images
- Fonts served via Google Fonts CDN (no local files needed)
Key Files to Modify
src/styles/global.css- Tailwind config + custom CSSsrc/consts.ts- Site metadatasrc/components/BaseHead.astro- Font/icon loadingsrc/components/Footer.astro- Complete rewritesrc/layouts/BlogPost.astro- Restyle for dark theme
Key Files to Create
src/components/GridOverlay.astrosrc/components/Navigation.astrosrc/components/CustomCursor.tsxsrc/components/sections/Hero.astrosrc/components/sections/Experience.astrosrc/components/sections/FeaturedProject.astrosrc/components/sections/Skills.astrosrc/layouts/BaseLayout.astro