A modern, animated links-in-bio website for Emanuel Covasa (EMMI) featuring a Three.js generative art background and glassmorphism design.
- Three.js Generative Art: Animated icosahedron background with morphing vertices
- Glassmorphism Design: Modern glass-effect cards with gradient borders
- Fully Responsive: Mobile-first design with optimized layouts
- Performance Optimized: Lazy loading, code splitting, and mobile-specific optimizations
- Accessibility First: WCAG compliant with semantic HTML and ARIA labels
- Type-Safe: Full TypeScript implementation
- Easy to Update: Centralized data structure in
src/data/links.ts
- Next.js 15.3.5 - App Router
- React 19 - Latest React features
- TypeScript 5.6 - Type safety
- Three.js - 3D graphics and animations
- Tailwind CSS 3.4 - Utility-first styling
-
Install dependencies:
npm install
-
Run development server:
npm run dev
-
Open browser: Navigate to http://localhost:3000
src/
├── app/
│ ├── layout.tsx # Root layout with metadata
│ ├── page.tsx # Home page
│ └── globals.css # Global styles and utilities
├── components/
│ ├── hero/
│ │ ├── GenerativeArtScene.tsx # Three.js animation
│ │ └── AnomalousMatterHero.tsx # Hero wrapper
│ ├── sections/
│ │ ├── LogoSection.tsx # Profile header
│ │ ├── SocialLinks.tsx # Social media icons
│ │ ├── MainLinks.tsx # Primary CTA links
│ │ ├── ProjectsGrid.tsx # Projects showcase
│ │ └── Footer.tsx # Site footer
│ └── ui/
│ └── Icon.tsx # Icon component
└── data/
└── links.ts # All link data and configuration
Edit src/data/links.ts to modify:
- Profile information
- Social media links
- Main CTA links
- Project showcase
Edit CSS variables in src/app/globals.css:
:root {
--background: 0, 0%, 0%;
--foreground: 0, 0%, 100%;
--sky-300: 199, 89%, 48%;
--gray-300: 0, 0%, 82%;
}Replace the placeholder avatar in LogoSection.tsx with your image:
- Add image to
public/folder - Update the avatar div in
src/components/sections/LogoSection.tsx
- Three.js scene reduces geometry subdivisions on mobile
- Dynamic imports with Suspense for code splitting
- Optimized animations with CSS transforms
- Minimal bundle size with tree-shaking
- Semantic HTML structure
- ARIA labels on all interactive elements
- Keyboard navigation support
- Screen reader friendly
- Sufficient color contrast (WCAG AA)
npm run build
npm startThis project can be deployed to:
- Vercel (recommended for Next.js)
- Netlify
- Cloudflare Pages
- Any static hosting service
Copyright © 2025 Emanuel Covasa (EMMI). All rights reserved.
Built with speed, clarity, and gratitude.
Work smart, not hard.