Convert Figma logo to code with AI

albinotonnina logoalbinotonnina.com

Personal portfolio website with interactive animations and visual storytelling. Built with React, featuring modular scene management, comprehensive testing, and smooth cross-device performance.

2,713
514
2,713
3

Top Related Projects

:page_facing_up::briefcase::tophat: A simple Jekyll + GitHub Pages powered resume template.

A modern static resume template and theme. Powered by Jekyll and GitHub pages.

A Bootstrap 4 resume/CV theme created by Start Bootstrap

9,559

Print-friendly, minimalist CV page

Quick Overview

albinotonnina.com is a personal portfolio website for Albino Tonnina, a creative developer. The repository contains the source code for the website, which features an interactive and animated design showcasing Albino's work and skills. The site is built using modern web technologies and focuses on providing a unique user experience.

Pros

  • Highly interactive and visually appealing design
  • Utilizes modern web technologies and best practices
  • Responsive layout that works well on various devices
  • Showcases creative coding and animation skills

Cons

  • Complex codebase may be challenging for beginners to understand
  • Heavy use of animations might impact performance on older devices
  • Limited documentation for customization or reuse
  • Specific to the developer's personal brand, making it less adaptable for others

Code Examples

Since this is a personal website project rather than a code library, we'll skip the code examples section.

Getting Started

As this is a personal website project and not intended for general use as a library or framework, there isn't a traditional "getting started" section. However, if you're interested in running the project locally or using it as inspiration for your own portfolio, you can follow these general steps:

  1. Clone the repository:

    git clone https://github.com/albinotonnina/albinotonnina.com.git
    
  2. Install dependencies:

    cd albinotonnina.com
    npm install
    
  3. Run the development server:

    npm run dev
    
  4. Open your browser and navigate to http://localhost:3000 to view the site.

Note that this project is tailored to Albino Tonnina's personal brand and may require significant modifications to adapt it for your own use.

Competitor Comparisons

:page_facing_up::briefcase::tophat: A simple Jekyll + GitHub Pages powered resume template.

Pros of resume-template

  • Specifically designed for creating resumes, providing a focused and tailored solution
  • Easily customizable with a simple YAML-based configuration
  • Includes print-friendly styles for better hard copy output

Cons of resume-template

  • Less visually striking compared to albinotonnina.com's interactive design
  • Limited to static content, lacking dynamic elements or animations
  • May require more manual formatting for complex layouts

Code Comparison

resume-template (_config.yml):

name: Your Name
title: Your Job Title
email: your.email@example.com
phone: (555) 555-5555

albinotonnina.com (package.json):

"scripts": {
  "start": "webpack-dev-server --config webpack.dev.js",
  "build": "webpack --config webpack.prod.js",
  "deploy": "npm run build && gh-pages -d dist"
}

The code comparison highlights the different approaches: resume-template uses a simple configuration file for content, while albinotonnina.com employs a more complex build process with webpack for enhanced interactivity and animations.

A modern static resume template and theme. Powered by Jekyll and GitHub pages.

Pros of modern-resume-theme

  • Easy to customize with a simple YAML configuration file
  • Responsive design that works well on various devices
  • Built-in support for multiple color schemes

Cons of modern-resume-theme

  • Less visually striking compared to albinotonnina.com's animated design
  • Limited to a single-page resume format
  • Fewer interactive elements and animations

Code Comparison

albinotonnina.com (React-based):

const Scene = ({ children }) => (
  <div className="scene">
    <div className="scene__content">{children}</div>
  </div>
);

modern-resume-theme (Jekyll-based):

{% assign content_array = content | split: site.excerpt_separator %}
{% if content_array.size > 1 %}
  {{ content_array | first }}
{% else %}
  {{ content }}
{% endif %}

The code snippets highlight the different technologies used: albinotonnina.com uses React for dynamic content, while modern-resume-theme relies on Jekyll's templating system for static site generation. This difference reflects the overall approach of each project, with albinotonnina.com offering a more interactive experience and modern-resume-theme focusing on simplicity and ease of use.

A Bootstrap 4 resume/CV theme created by Start Bootstrap

Pros of startbootstrap-resume

  • Easy to use and customize, with a clean and professional design
  • Responsive layout that works well on various devices
  • Well-documented and maintained, with regular updates

Cons of startbootstrap-resume

  • Less unique and creative compared to albinotonnina.com's interactive design
  • Limited in terms of advanced animations and user interactions
  • May require more customization to stand out from other resumes using the same template

Code Comparison

albinotonnina.com (JavaScript):

const animate = (el, props, duration) => {
  return new Promise(resolve => {
    TweenMax.to(el, duration, {
      ...props,
      onComplete: resolve
    })
  })
}

startbootstrap-resume (HTML/CSS):

<nav class="navbar navbar-expand-lg navbar-dark bg-primary fixed-top" id="sideNav">
  <a class="navbar-brand js-scroll-trigger" href="#page-top">
    <span class="d-block d-lg-none">Clarence Taylor</span>
    <span class="d-none d-lg-block">
      <img class="img-fluid img-profile rounded-circle mx-auto mb-2" src="img/profile.jpg" alt="">
    </span>
  </a>
  <!-- Navigation items -->
</nav>

The code comparison shows that albinotonnina.com focuses on custom animations using JavaScript libraries, while startbootstrap-resume relies on HTML and CSS for layout and styling. This reflects the different approaches of the two projects, with albinotonnina.com offering a more interactive and unique experience, and startbootstrap-resume providing a straightforward and easily customizable template.

9,559

Print-friendly, minimalist CV page

Pros of cv

  • Simple and clean design, focusing on content readability
  • Easy to customize and deploy using Next.js and Vercel
  • Responsive layout that works well on various devices

Cons of cv

  • Less interactive and visually engaging compared to albinotonnina.com
  • Limited animation and dynamic elements
  • Fewer sections and less detailed information about the developer's work

Code Comparison

cv (TypeScript):

const Section: React.FC<SectionProps> = ({ title, children }) => (
  <section className="mb-8">
    <h2 className="font-bold text-2xl mb-4">{title}</h2>
    {children}
  </section>
);

albinotonnina.com (JavaScript):

const Section = styled.section`
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
`;

The cv repository uses TypeScript and React components with Tailwind CSS classes for styling, while albinotonnina.com employs JavaScript with styled-components for a more custom CSS approach. cv focuses on simplicity and ease of use, whereas albinotonnina.com prioritizes a unique and interactive user experience with complex animations and scroll-based interactions.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

albinotonnina.com

License: CC BY-NC-ND 4.0

Interactive portfolio website showcasing creative web development and animation techniques

Live Site: www.albinotonnina.com

✨ Features

  • Interactive SVG Animations - Complex scene transitions with scroll-based animations
  • Responsive Design - Optimized for desktop and mobile viewing
  • Performance Optimized - Webpack 5 with code splitting and asset optimization
  • Modern React - Built with React 18 and modern JavaScript
  • Custom Animation Engine - Scroll-triggered animations with D3 interpolation
  • Advanced SVG Rendering - Preserved gradient definitions and complex illustrations

📜 License

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.

🚀 Quick Start

Prerequisites

  • Node.js >=22.x
  • Yarn (recommended) or npm

Installation

# Clone the repository
git clone https://github.com/albinotonnina/albinotonnina.com.git
cd albinotonnina.com

# Install dependencies
yarn install

Development

# Start development server
yarn dev

# Open browser to http://localhost:8080

The development server includes:

  • Hot module replacement
  • Fast refresh for React components
  • Source maps for debugging
  • Optimized SVG processing
  • Animation Debugger - Press Ctrl/Cmd + D to toggle real-time animation info

Recommended Development Setup

For the best development experience, I recommend using VS Code with the following extensions:

  • Stylelint - CSS linting integration
  • Prettier - Code formatting
  • Tailwind CSS IntelliSense - CSS class completion
  • CSS Peek - Navigate to CSS definitions
  • HTML CSS Class Completion - Auto-complete CSS classes

The project includes VS Code configuration for:

  • ✅ Format on save for consistent code style
  • ✅ CSS syntax highlighting with proper language association
  • ✅ Integrated linting with error highlighting
  • ✅ Auto-fix on save for Stylelint issues

Production Build

# Build for production
yarn build

# Analyze bundle size
yarn analyze

Testing

# Run tests
yarn test

# Run tests in watch mode
yarn test --watch

Code Quality

# 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

🛠️ Available Scripts

CommandDescription
yarn devStart development server with hot reload
yarn buildBuild for production
yarn analyzeAnalyze bundle size
yarn testRun test suite
yarn lintLint JavaScript files
yarn lint:fixFix auto-fixable JavaScript issues
yarn lint:cssLint CSS files
yarn lint:css:fixFix auto-fixable CSS issues
yarn formatFormat all files with Prettier

🛠️ Tech Stack

Frontend

  • React 18 - UI library with modern hooks
  • Webpack 5 - Module bundler with advanced optimization
  • Babel - JavaScript compiler with modern syntax support
  • PostCSS - CSS processing with modern features

Animation & Graphics

  • D3 Interpolate - Smooth animation transitions
  • SVG Filter - Dynamic SVG effects and filters
  • Custom Animation Engine - Scroll-based scene transitions
  • Complex SVG Illustrations - Hand-crafted vector graphics

Development Tools

  • ESLint - Code linting with modern Babel parser and comprehensive rules
  • Prettier - Code formatting with consistent style
  • Stylelint - CSS linting with PostCSS support
  • Jest - Testing framework
  • Webpack Bundle Analyzer - Bundle size analysis
  • VS Code Integration - Configured for optimal development experience

📁 Project Structure

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

🎨 Key Technical Achievements

SVG Animation System

  • Scroll-triggered animations with precise timing control
  • Gradient preservation during complex transformations
  • Performance optimized rendering for large SVG files
  • Cross-browser compatible animation engine

Modern React Architecture

  • React 18 with createRoot API
  • Functional components with hooks
  • Performance optimized with React.memo
  • Clean separation of concerns

Advanced Webpack Configuration

  • Development/Production optimized builds
  • Code splitting for optimal loading
  • Asset optimization with modern loaders
  • SVG processing with @svgr/webpack
  • Fast development with filesystem caching

🐛 Known Issues & Solutions

SVG Gradient Rendering

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.

� Development & Debugging

Animation Debugger

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:

  • 📊 Real-time timing and progress information
  • 🎭 Current scene and animation state
  • 📅 Complete scene timeline with status indicators
  • 🎯 List of currently active animated elements
  • 🔍 Scene-by-scene breakdown with timing details

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.

Development Best Practices

The project follows modern development practices:

Code Quality Standards:

  • All JavaScript follows ESLint rules with modern Babel parser
  • CSS follows Stylelint standards with PostCSS support
  • Consistent formatting enforced by Prettier
  • Comprehensive test coverage for utility functions

Development Workflow:

  1. Before committing, run yarn lint and yarn lint:css to check for issues
  2. Use yarn format to ensure consistent code formatting
  3. Fix linting issues with yarn lint:fix and yarn lint:css:fix when possible
  4. Test changes thoroughly using the animation debugger
  5. Maintain clean code with proper separation of concerns

File Organization:

  • Animation logic separated into focused modules
  • Utility functions extracted for reusability
  • CSS organized with clear naming conventions
  • Test files co-located with source code

Making Changes

  1. Use the debugger to understand current animation state
  2. Modify timing in the SCENE_TIMING object in transitions.js
  3. Add new animations using the existing generator patterns
  4. Test changes with the real-time debugger feedback

Project Status ✅

This project has been successfully modernized with the following improvements:

✅ Completed Modernization

  • React 18 with latest features and concurrent mode support
  • Webpack 5 with improved bundling and tree-shaking
  • Modern build tools (Babel 7, PostCSS, CSS optimization)
  • Animation system refactor for improved maintainability
  • Development tooling with hot module replacement and source maps

✅ Animation Debugging System

  • Real-time animation debugger available in development mode only
  • Toggle with Ctrl/Cmd+D to show/hide the debug overlay
  • Zero production overhead - debug code is completely excluded from production builds
  • Console API available at window.animationDebugger in development

✅ Bundle Optimization

  • Production build size reduced by ~88% (181KB → 23KB) through effective tree-shaking
  • Development-only features properly excluded from production
  • SVG optimizations with proper gradient and animation preservation

✅ Code Quality & Development Experience

  • ESLint with modern Babel parser and comprehensive linting rules
  • Prettier for consistent code formatting across the project
  • Stylelint for CSS linting with PostCSS and modern CSS support
  • VS Code integration with proper syntax highlighting and format-on-save
  • Automated formatting and linting with pre-configured scripts
  • Development workflow optimized for modern JavaScript/CSS development

�📄 License

This project is licensed under CC BY-NC-ND 4.0.

You are free to:

  • Share — copy and redistribute the material in any medium or format

Under the following terms:

  • Attribution — You must give appropriate credit
  • NonCommercial — You may not use the material for commercial purposes
  • NoDerivatives — You may not distribute modified material

👨‍💻 Author

Albino Tonnina

🤝 Contributing

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 ☕