A portfolio experience that transforms code into visual narratives. Watch your projects come alive through synchronized scroll animations and terminal-inspired aesthetics.
| Layer | Technology |
|---|---|
| Framework | Astro 5 with SSG |
| UI Components | Svelte 5 Islands |
| Styling | Tailwind CSS 4 |
| Syntax Highlighting | Shiki |
| Unit Testing | Vitest |
| E2E Testing | Playwright |
| Performance | Lighthouse CI |
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
src/
├── components/
│ ├── AriaLiveRegion.svelte # Screen reader announcements
│ ├── CodeTypingAnimation.svelte # Syntax-highlighted typing
│ ├── KeyboardNavigation.svelte # Arrow key navigation
│ ├── NarrativePanel.astro # Left scrollable content
│ ├── Navigation.astro # Site navigation
│ ├── ScrollSyncController.svelte # Scroll state management
│ ├── SplitScreenLayout.astro # Two-column layout
│ ├── TypingAnimation.svelte # Character reveal animation
│ ├── VisualGeneratorPanel.svelte # Right panel orchestrator
│ └── VisualPanel.astro # Terminal-style container
├── content/
│ ├── config.ts # Content collection schemas
│ └── projects/ # MDX project files
├── layouts/
│ └── Layout.astro # Base layout with SEO
├── lib/
│ └── highlighter.ts # Shiki syntax highlighting
├── pages/
│ ├── 404.astro # Terminal-style 404
│ ├── index.astro # Homepage
│ └── projects/[...slug].astro # Project pages
├── stores/
│ └── scrollProgress.ts # Svelte scroll state store
└── styles/
└── global.css # Design tokens & base styles
# Run unit tests
npm test
# Run unit tests in watch mode
npm run test:watch
# Run E2E tests
npm run test:e2e
# Run E2E tests with UI
npm run test:e2e:ui
# Run Lighthouse audit
npm run lighthouse
The project uses a terminal-inspired dark theme with these key colors:
| Token | Value | Usage |
|---|---|---|
--color-bg-primary |
#0a0a0f |
Main background |
--color-terminal-green |
#00ff88 |
Accent color, links |
--color-syntax-keyword |
#ff79c6 |
Code keywords |
--color-syntax-function |
#50fa7b |
Function names |
--color-syntax-string |
#f1fa8c |
String literals |
prefers-reduced-motionThe project includes a GitHub Actions workflow that:
astro checkMIT
Built with Astro | Designed for developers who appreciate the terminal aesthetic