Personal Anime Gallery Website
A personal website for collecting anime images, featuring an extensive image library from Anilist. Deploy with one click to instantly have your own anime image collection site.
Anime Albums Website Template
A modern, responsive anime album collection website template built with Next.js. This template provides a beautiful and interactive way to showcase your anime collection with features like video backgrounds, weather effects, and Live2D character interactions.
Features
- ๐ฅ Dynamic video background carousel
- ๐ค๏ธ Interactive weather effects (rain, snow, sunny)
- ๐ญ Live2D character with interactive responses
- ๐ฑ Fully responsive design
- ๐ Multi-language support
- ๐จ Dark/Light theme support
- ๐ Category-based gallery layouts
- ๐ Infinite scroll loading
- ๐ผ๏ธ Beautiful image modal with navigation
Tech Stack
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- Animation: Framer Motion
- Live2D: Live2D Widget
- Data Source: AniList GraphQL API
Getting Started
Prerequisites
- Node.js 18.0 or later
- npm or yarn
Installation
- Clone the repository:
git clone https://github.com/tomcomtang/anime-albums-website.git
cd anime-albums-website
- Install dependencies:
yarn install
- Fetch initial anime data:
node scripts/fetch-anilist-data.js
This script will fetch anime data from AniList API and generate configuration files in the public/data
directory.
Development
Run the development server:
npm run dev
# or
yarn dev
Open http://localhost:3000 with your browser to see the result.
Building for Production
npm run build
# or
yarn build
If you want to update the anime data every time you deploy, you can modify the build script in package.json
:
{
"scripts": {
"build": "node scripts/fetch-anilist-data.js && next build"
}
}
Then, you can start the production server:
npm run start
# or
yarn start
Customization
Anime Data
The website uses JSON configuration files in the public/data
directory for anime data. You can customize the content by:
- Modifying the existing JSON files in
public/data
- Running the
fetch-anilist-data.js
script with different parameters - Creating your own JSON files following the same structure
Weather Effects
Weather effects can be customized in:
components/weather/weather-effects.tsx
app/globals.css
(weather-related styles)
Project Structure
โโโ app/ # Next.js app directory
โ โโโ [locale]/ # Internationalization routes
โ โโโ gallery/ # Gallery pages
โ โโโ globals.css # Global styles
โโโ components/ # React components
โ โโโ gallery/ # Gallery components
โ โโโ live2d/ # Live2D components
โ โโโ weather/ # Weather effect components
โโโ lib/ # Utility functions
โโโ public/ # Static files
โ โโโ data/ # Anime data JSON files
โ โโโ videos/ # Background videos
โโโ scripts/ # Utility scripts
โโโ fetch-anilist-data.js # Data fetching script
License
This project is licensed under the MIT License. For commercial use, please refer to the licensing terms of Live2D and AniList.
References
- AniList GraphQL API - Anime data source
- Live2D Widget - Live2D integration