A minimal, clean Astro theme for personal websites and blogs.
Built with Astro 5, Tailwind CSS v4, and TypeScript.
- Dark / Light mode with smooth toggle
- Full-text search (Pagefind, Cmd+K)
- RSS feed and sitemap
- Artalk comments (optional)
- Umami analytics (optional)
- Content collections (posts, projects, categories, tags, friends)
- Table of contents for posts
- Expressive Code syntax highlighting
- View Transitions
- Responsive design
- OKLch color system with easy hue customization
# Clone the repository
git clone https://github.com/your-username/astro-theme-breeze.git my-site
cd my-site
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Build for production
pnpm buildAll site configuration is in src/config/site.ts. This is the only file you need to edit to personalize the theme.
| Section | Description |
|---|---|
meta |
Site title, description, author, logo, language |
navigation |
Navigation menu items with subtitle labels |
social |
Social links (GitHub, Email, etc.) |
hero |
Homepage greeting, description, info cards |
footer |
Copyright and credit text |
comments |
Artalk comments configuration |
features |
Toggle search, RSS |
tools |
Tools/Stack page data |
labels |
All UI text labels (for i18n) |
Also update astro.config.mjs to set your site URL.
Add Markdown or MDX files to src/content/posts/:
---
title: My First Post
createdAt: 2025-01-01
category: technology
tags: [astro, tutorial]
summary: A brief description of the post.
---Edit src/content/pages/about.md — pure Markdown, no component knowledge needed.
Add to src/content/projects/ with frontmatter: title, description, tech, link, status.
Edit src/content/miscs/categories.json and src/content/miscs/tags.json.
Edit src/content/miscs/friends.json with name, description, link, avatar.
Edit src/styles/theme.css. All colors use OKLch with a consistent hue value (default: 165).
To change the color palette, find-and-replace the hue number:
165= Sage Green (default)250= Ocean Blue280= Lavender Purple330= Rose Pink30= Warm Orange
- Set up an Artalk server
- In
src/config/site.ts, setcomments.enabled: trueandcomments.artalk.serverto your server URL - To disable comments, set
comments.enabled: false
- Copy
.env.exampleto.env - Set
UMAMI_URLandUMAMI_WEBSITE_ID
Works with any static hosting: Vercel, Netlify, Cloudflare Pages, etc.
pnpm buildThe output is in dist/.
MIT