中文文档 | English
A modern, high-performance designer portfolio website template built with Astro. Features a retro blue theme, dark mode support, beautiful animations, and excellent user experience.
One-click deploy this starter to Tencent EdgeOne Pages (installs, builds, and serves dist/ automatically).
- 🚀 Built with Astro - Fast and lightweight static site generator
- 🎨 Modern Design - Retro blue theme with dark/light mode toggle
- 📱 Fully Responsive - Adapts to all device sizes
- 🎭 Beautiful Animations - Using AOS and custom animation effects
- 📝 Blog System - Supports MDX format blog posts
- 🎯 Portfolio Showcase - Elegant portfolio showcase pages
- 🔍 SEO Optimized - Built-in SEO and social media tags
- ⚡ Performance Optimized - Image optimization, code splitting, lazy loading
- 🌐 i18n Support - Easy to extend for multi-language support
- Framework: Astro 5.15.4 (v6 compatible)
- Styling: Tailwind CSS 4.1.14
- Animations: AOS
- Physics Engine: Matter.js
- Content Management: MDX
- Type Checking: TypeScript
# Using pnpm (recommended)
pnpm install
# Using npm
npm install
# Using yarn
yarn installCopy .env.example to .env and fill in the corresponding configuration:
cp .env.example .envEdit the .env file and fill in your configuration:
# Site URL (optional, but has default value https://your-domain.com)
# You can skip this on first deployment, but it's recommended to set the correct domain as soon as possible to optimize SEO
PUBLIC_SITE_URL=https://your-domain.com
# Analytics (optional)
PUBLIC_GA4_ID=your-google-analytics-id
PUBLIC_UMAMI_ID=your-umami-idNote: If
PUBLIC_SITE_URLis not set, it will use the default valuehttps://your-domain.com. While it won't cause errors, it's recommended to set the correct domain after deployment to ensure sitemap, RSS feed, and SEO meta tags work properly.
# Start development server
npm run dev
# or
pnpm dev
# Visit http://localhost:4321# Build for production
npm run build
# Preview build result
npm run preview├── public/ # Static assets
│ ├── assets/ # Images, videos, etc.
│ └── favicon.png # Site favicon
├── src/
│ ├── assets/ # Source assets
│ ├── collections/ # Data collections (works, experiences, etc.)
│ ├── components/ # Astro components
│ │ ├── cards/ # Card components
│ │ ├── sections/ # Section components
│ │ ├── ui/ # UI components
│ │ └── widgets/ # Widgets
│ ├── config/ # Configuration files
│ ├── content/ # MDX blog content
│ ├── layouts/ # Layout components
│ ├── pages/ # Page routes
│ ├── scripts/ # Script files
│ └── styles/ # Style files
├── astro.config.mjs # Astro configuration
├── tailwind.config.mjs # Tailwind configuration
└── package.json # Project dependencies
Edit the src/config/site.js file to modify the site's basic information:
export const siteConfig = {
title: "Your Portfolio",
author: "Your Name",
url: "https://your-domain.com",
// ... more configuration
};Edit the CSS variables in the src/styles/global.css file:
@theme {
--color-primary: #2d6dc3;
--color-primary-dark: #3b7bd9;
/* ... more color variables */
}Add your work information in src/collections/works.json.
Create new MDX files in the src/content/post/ directory. The project uses Astro v5 Content Layer API with glob loader for content collections, ensuring compatibility with Astro v6.
Note: This template has been fully upgraded to Astro v5.15 standards and is compatible with Astro v6:
- ✅ Uses new Content Layer API (
globloader) - ✅ Uses
entry.idinstead of deprecatedentry.slug - ✅ Uses
render(entry)instead of deprecatedentry.render() - ✅ Uses
import.meta.envinstead ofprocess.env - ✅ Uses
import.meta.glob()instead of deprecatedAstro.glob() - ✅ All
getStaticPaths()params are string type (v6 requirement)
- Programming Sticker: Figma rogramming-sticker-1-0
- Bento Cards:Figma Bento Cards
- Social Cards: Figma Bento 2.5d
- Author: Ricoui
- Blog: ricoui.com
- Email: [email protected]
- Twitter: @ricouii
- GitHub: @ricocc
-
Rico Blog - Open Source: https://github.com/ricocc/public-portfolio-site
-
OG Gallery: ricoog.com
- Astro - Excellent static site generator
- Tailwind CSS - Utility-first CSS framework
- All developers who contributed to this project
I'm Rico, a web/UI designer passionate about creating fun and creative work. I have experience in UI/UX design and am currently focused on web design, visual implementation, and exploring development projects. I regularly update my blog on Rico's Blog. You can also follow me on Xiaohongshu @Rico的设计漫想 和 X @ricouii.
Or add me on WeChat—let’s be friends.
If you’ve found this helpful, even a small contribution can greatly encourage creators. Thank you!
- Upgraded to Astro 5.15.4 - Fully compliant with Astro v5.15 standards and compatible with Astro v6
- Content Collections Upgrade - Using new Content Layer API, all legacy APIs removed
- API Modernization - All deprecated APIs updated to latest standards
- Performance Optimization - Optimized build and runtime performance
⭐ If this project helps you, please give it a Star!

