Skip to content

analogte/analogportfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Analog Portfolio

A modern, bilingual (EN/TH) creative portfolio website showcasing digital works, books, articles, and designs. Built with vanilla JavaScript, Tailwind CSS, and various animation libraries.

✨ Features

🌍 Bilingual Support

  • Full English and Thai language support
  • Easy language switching with localStorage persistence
  • All content translated through i18n system

🎨 Design & UI

  • Modern, clean design with custom color palette
  • Responsive layout (mobile-first approach)
  • Smooth animations using Anime.js
  • Interactive particle background with p5.js
  • Dark mode toggle with system persistence
  • Lazy loading images for better performance

πŸ›’ E-commerce Features

  • Shopping cart with localStorage persistence
  • Add/remove items with quantity management
  • XSS-protected cart HTML rendering
  • Cart sidebar with smooth animations

πŸ“± Navigation

  • Fully functional mobile menu
  • Smooth scroll navigation
  • Active link highlighting
  • Accessible keyboard navigation

πŸ”’ Security & SEO

  • XSS input sanitization
  • SRI (Subresource Integrity) hashes for CDN libraries
  • Comprehensive SEO meta tags (Open Graph, Twitter Cards)
  • Structured data for better search engine indexing
  • robots.txt and sitemap ready

β™Ώ Accessibility

  • ARIA labels throughout
  • Keyboard navigation support
  • Focus visible states
  • Reduced motion support
  • Semantic HTML structure

πŸ“‚ Project Structure

analogportfolio/
β”œβ”€β”€ index.html              # Homepage
β”œβ”€β”€ about.html              # About page
β”œβ”€β”€ works.html              # Shop/works page
β”œβ”€β”€ 404.html                # Error page
β”œβ”€β”€ main.js                 # Main JavaScript logic
β”œβ”€β”€ styles/
β”‚   └── main.css            # Main stylesheet
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ i18n.js             # Internationalization system
β”‚   β”œβ”€β”€ cart.js             # Shopping cart module
β”‚   β”œβ”€β”€ utilities.js        # Utility functions
β”‚   └── modals.js           # Modal system
β”œβ”€β”€ resources/              # Images and assets
β”œβ”€β”€ .gitignore
β”œβ”€β”€ package.json
β”œβ”€β”€ robots.txt
β”œβ”€β”€ manifest.json
└── README.md

πŸš€ Getting Started

Prerequisites

  • Modern web browser (Chrome 90+, Firefox 88+, Safari 14+)
  • Python 3 (for local server) or any static file server

Installation

  1. Clone the repository:
git clone https://github.com/analogte/analogportfolio.git
cd analogportfolio
  1. Run a local server:
# Using Python 3
python3 -m http.server 8000

# Or using npm
npm run dev
  1. Open your browser and navigate to:
http://localhost:8000

🎯 Usage

Changing Language

Click the EN/TH buttons in the navigation bar to switch between English and Thai.

Dark Mode

Click the dark mode toggle button in the navigation to switch themes.

Adding Items to Cart

Browse works and click "Add to Cart" buttons. Cart persists across sessions.

Customization

Colors

Edit CSS custom properties in styles/main.css:

:root {
    --charcoal: #1a1a1a;
    --warm-white: #fafafa;
    --sage: #8b9a7a;
    /* ... more colors */
}

Translations

Add or modify translations in scripts/i18n.js:

const translations = {
    en: { /* English translations */ },
    th: { /* Thai translations */ }
};

πŸ“š Libraries Used

πŸ”§ Development

File Organization

  • Keep all translations in scripts/i18n.js
  • CSS goes in styles/main.css
  • JavaScript modules in scripts/ directory
  • Images in resources/ directory

Best Practices

  • Always use data-i18n attributes for translatable text
  • Add loading="lazy" to images
  • Use semantic HTML elements
  • Include ARIA labels for better accessibility
  • Test in both EN and TH languages

🌐 Browser Support

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+

πŸ“ To-Do / Future Enhancements

  • Add more work items with full case studies
  • Implement actual payment gateway integration
  • Add blog section
  • Create admin panel for content management
  • Add image optimization script
  • Implement service worker for offline support
  • Add unit tests
  • Create build process with bundling

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘€ Author

Analog Portfolio

πŸ™ Acknowledgments

  • Design inspiration from Kinfolk, Wired, and The Gentlewoman
  • Thanks to all the open-source library maintainers

Note: This is a demonstration project. Replace placeholder content with your actual portfolio information before deploying to production.

πŸ“ž Support

For support, email your-email@example.com or open an issue in the GitHub repository.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors