Personal portfolio website with interactive animations and visual storytelling. Built with React, featuring modular scene management, comprehensive testing, and smooth cross-device performance.
See the codeInteractive portfolio website showcasing creative web development and animation techniques
Live Site: www.albinotonnina.com
This portfolio is licensed under CC BY-NC-ND 4.0. You are welcome to view, run, and experiment with the code locally for learning purposes. However, you may not modify and redistribute it, such as using it as your own portfolio by changing the name or content.
>=22.x# Clone the repository
git clone https://github.com/albinotonnina/albinotonnina.com.git
cd albinotonnina.com
# Install dependencies
yarn install
# Start development server
yarn dev
# Open browser to http://localhost:8080
The development server includes:
Ctrl/Cmd + D to toggle real-time animation infoFor the best development experience, I recommend using VS Code with the following extensions:
The project includes VS Code configuration for:
# Build for production
yarn build
# Analyze bundle size
yarn analyze
# Run tests
yarn test
# Run tests in watch mode
yarn test --watch
# Lint JavaScript files
yarn lint
# Fix auto-fixable JavaScript issues
yarn lint:fix
# Lint CSS files
yarn lint:css
# Fix auto-fixable CSS issues
yarn lint:css:fix
# Format all files with Prettier
yarn format
| Command | Description |
|---|---|
yarn dev | Start development server with hot reload |
yarn build | Build for production |
yarn analyze | Analyze bundle size |
yarn test | Run test suite |
yarn lint | Lint JavaScript files |
yarn lint:fix | Fix auto-fixable JavaScript issues |
yarn lint:css | Lint CSS files |
yarn lint:css:fix | Fix auto-fixable CSS issues |
yarn format | Format all files with Prettier |
src/
βββ scene/ # Main interactive scene components
β βββ index.js # Scene component with SVG rendering
β βββ scene.svg # Complex interactive SVG illustration
β βββ transitions.js # Animation definitions
β βββ tickFunction.js # Animation engine
β βββ animationDebugger.js # Development animation debugger
β βββ calculateStyles.js # Animation style calculations
β βββ transition-utilities.js # Animation utility functions
βββ styles/ # CSS and styling
β βββ main.css # Main application styles
β βββ ...
βββ subtitles/ # Text content and subtitles
βββ images/ # Static assets
βββ utils/ # Utility functions
β βββ svg-id-processor.js # SVG processing utilities
βββ index.js # Application entry point
# Configuration files
βββ .eslintrc # ESLint configuration
βββ .prettierrc # Prettier configuration
βββ .stylelintrc # Stylelint configuration
βββ webpack.config.babel.js # Webpack configuration
βββ jest.config.js # Jest test configuration
βββ .vscode/ # VS Code workspace configuration
βββ settings.json # Editor settings
βββ extensions.json # Recommended extensions
The project includes custom solutions for preserving SVG gradient stop-color attributes during animations. The animation system has been modified to prevent opacity inheritance issues that could break gradient definitions.
The project includes a powerful real-time animation debugger to help understand and modify the complex scene transitions:
Toggle Debugger: Press Ctrl/Cmd + D in the browser
Features:
Console Commands:
// Available in browser console
animationDebugger.jumpToScene("company"); // Jump to specific scene
animationDebugger.listScenes(); // Show all available scenes
animationDebugger.exportState(); // Export current state as JSON
animationDebugger.logState(); // Log detailed state info
For detailed debugging information, see ANIMATION_DEBUG.md.
The project follows modern development practices:
Code Quality Standards:
Development Workflow:
yarn lint and yarn lint:css to check for issuesyarn format to ensure consistent code formattingyarn lint:fix and yarn lint:css:fix when possibleFile Organization:
SCENE_TIMING object in transitions.jsThis project has been successfully modernized with the following improvements:
window.animationDebugger in developmentThis project is licensed under CC BY-NC-ND 4.0.
You are free to:
Under the following terms:
Albino Tonnina
While this is a personal portfolio project, feedback and suggestions are welcome! Please feel free to open an issue or reach out directly.
Built with β€οΈ and lots of β
68 followers Β· starred Feb 2024
31 followers Β· starred Apr 2021
231 followers Β· starred Mar 2021
585 followers Β· starred Jan 2025
Personal portfolio website with interactive animations and visual storytelling. Built with React, featuring modular scene management, comprehensive testing, and smooth cross-device performance.
See the codeInteractive portfolio website showcasing creative web development and animation techniques
Live Site: www.albinotonnina.com
This portfolio is licensed under CC BY-NC-ND 4.0. You are welcome to view, run, and experiment with the code locally for learning purposes. However, you may not modify and redistribute it, such as using it as your own portfolio by changing the name or content.
>=22.x# Clone the repository
git clone https://github.com/albinotonnina/albinotonnina.com.git
cd albinotonnina.com
# Install dependencies
yarn install
# Start development server
yarn dev
# Open browser to http://localhost:8080
The development server includes:
Ctrl/Cmd + D to toggle real-time animation infoFor the best development experience, I recommend using VS Code with the following extensions:
The project includes VS Code configuration for:
# Build for production
yarn build
# Analyze bundle size
yarn analyze
# Run tests
yarn test
# Run tests in watch mode
yarn test --watch
# Lint JavaScript files
yarn lint
# Fix auto-fixable JavaScript issues
yarn lint:fix
# Lint CSS files
yarn lint:css
# Fix auto-fixable CSS issues
yarn lint:css:fix
# Format all files with Prettier
yarn format
| Command | Description |
|---|---|
yarn dev | Start development server with hot reload |
yarn build | Build for production |
yarn analyze | Analyze bundle size |
yarn test | Run test suite |
yarn lint | Lint JavaScript files |
yarn lint:fix | Fix auto-fixable JavaScript issues |
yarn lint:css | Lint CSS files |
yarn lint:css:fix | Fix auto-fixable CSS issues |
yarn format | Format all files with Prettier |
src/
βββ scene/ # Main interactive scene components
β βββ index.js # Scene component with SVG rendering
β βββ scene.svg # Complex interactive SVG illustration
β βββ transitions.js # Animation definitions
β βββ tickFunction.js # Animation engine
β βββ animationDebugger.js # Development animation debugger
β βββ calculateStyles.js # Animation style calculations
β βββ transition-utilities.js # Animation utility functions
βββ styles/ # CSS and styling
β βββ main.css # Main application styles
β βββ ...
βββ subtitles/ # Text content and subtitles
βββ images/ # Static assets
βββ utils/ # Utility functions
β βββ svg-id-processor.js # SVG processing utilities
βββ index.js # Application entry point
# Configuration files
βββ .eslintrc # ESLint configuration
βββ .prettierrc # Prettier configuration
βββ .stylelintrc # Stylelint configuration
βββ webpack.config.babel.js # Webpack configuration
βββ jest.config.js # Jest test configuration
βββ .vscode/ # VS Code workspace configuration
βββ settings.json # Editor settings
βββ extensions.json # Recommended extensions
The project includes custom solutions for preserving SVG gradient stop-color attributes during animations. The animation system has been modified to prevent opacity inheritance issues that could break gradient definitions.
The project includes a powerful real-time animation debugger to help understand and modify the complex scene transitions:
Toggle Debugger: Press Ctrl/Cmd + D in the browser
Features:
Console Commands:
// Available in browser console
animationDebugger.jumpToScene("company"); // Jump to specific scene
animationDebugger.listScenes(); // Show all available scenes
animationDebugger.exportState(); // Export current state as JSON
animationDebugger.logState(); // Log detailed state info
For detailed debugging information, see ANIMATION_DEBUG.md.
The project follows modern development practices:
Code Quality Standards:
Development Workflow:
yarn lint and yarn lint:css to check for issuesyarn format to ensure consistent code formattingyarn lint:fix and yarn lint:css:fix when possibleFile Organization:
SCENE_TIMING object in transitions.jsThis project has been successfully modernized with the following improvements:
window.animationDebugger in developmentThis project is licensed under CC BY-NC-ND 4.0.
You are free to:
Under the following terms:
Albino Tonnina
While this is a personal portfolio project, feedback and suggestions are welcome! Please feel free to open an issue or reach out directly.
Built with β€οΈ and lots of β
68 followers Β· starred Feb 2024
31 followers Β· starred Apr 2021
231 followers Β· starred Mar 2021
585 followers Β· starred Jan 2025