Architecture Overview
The NILVER T.I Portfolio is a single-page application built with vanilla JavaScript, HTML5, and CSS3. The architecture follows a modular component structure with clear separation of concerns.File Structure
Core Components
The portfolio consists of six main sections, each with distinct functionality:Navigation
Fixed header with smooth scroll and mobile menu
Hero Section
Animated character, particle background, and drawing canvas
Skills
Circular and bar chart skill visualizations
Projects
Expandable project cards with live demos
Contact
Form with validation and success animation
Footer
Social media links and copyright
Component Interaction Flow
Technology Stack
HTML5
HTML5
- Semantic markup with
<header>,<section>,<footer> - Canvas API for particle effects and drawing
- SVG graphics for animated character
- Accessible form elements with proper labels
CSS3
CSS3
- Tailwind CSS via CDN for utility classes
- Custom animations with
@keyframes - CSS variables for dynamic styling
- Responsive grid layouts
- Transition effects for smooth interactions
JavaScript (ES6+)
JavaScript (ES6+)
- Event-driven architecture
- DOM manipulation with modern selectors
- Canvas rendering for particles and drawing
- Smooth scroll implementation
- Dynamic view toggling
- Form validation
External Libraries
External Libraries
- Tailwind CSS: Utility-first styling framework
- Font Awesome: Icon library for social media and UI icons
- Google Fonts: Poppins font family
Component Communication
Components communicate through several mechanisms:1. Navigation Links
The navigation component triggers smooth scrolling to other sections:2. Event Listeners
All interactive components are initialized inDOMContentLoaded:
3. CSS Classes
Shared classes create consistent styling across components:Responsive Design Strategy
The portfolio uses a mobile-first approach with Tailwind’s responsive utilities:| Breakpoint | Prefix | Min Width | Example Usage |
|---|---|---|---|
| Mobile | (none) | 0px | flex flex-col |
| Tablet | md: | 768px | md:flex-row |
| Desktop | lg: | 1024px | lg:grid-cols-3 |
Each component is designed to work independently, making it easy to add, remove, or reorder sections without breaking functionality.
Customization Points
Key areas for customization:- Color Scheme: Modify the red accent color (
#E50914) in CSS - Font: Change the Google Fonts import to use different typography
- Sections: Add or remove sections by copying the HTML structure
- Animations: Adjust timing in CSS
@keyframesand JavaScript intervals - Content: Update text, images, and links directly in
index.html
Performance Considerations
- Lazy Loading: Consider implementing lazy loading for project images
- Canvas Optimization: Particle count is set to 100; adjust based on target devices
- Script Loading: Scripts are deferred to prevent blocking page load
- CSS: Tailwind is loaded via CDN; consider purging for production
Next Steps
Explore individual component documentation:- Navigation Component - Header and mobile menu
- Hero Section - Animated SVG and particles
- Skills Component - Circular and bar visualizations
- Projects Component - Expandable project cards
- Contact Component - Form validation and submission