Skip to content
Go back

AstroPaper 5.0

Published:  at  08:18 AM

At last, the long-awaited AstroPaper v5 is finally here. AstroPaper v5 keeps the same minimal & clean look, but comes with significant updates under the hood.

AstroPaper v5

Table of contents

Open Table of contents

Major Changes

Upgrade to Astro v5 #455

AstroPaper now comes with Astro v5, bringing all the new features and improvements that come with it.

Tailwind v4

AstroPaper has been upgraded to Tailwind v4, which includes many style changes under the hood. The tailwind.config.js file has been removed, and now all the configuration is located within the src/styles/global.css file. Typography-related styles have been extracted and moved to src/styles/typography.css.

Due to the new behavior in TailwindCSS v4, styles inside <style> blocks within components have been removed and replaced with inline Tailwind classes.

Additionally, the color palette across the UI has been updated. The new palette now consists of only five colors:

:root,
html[data-theme="light"] {
  --background: #fdfdfd;
  --foreground: #282728;
  --accent: #006cac;
  --muted: #e6e6e6;
  --border: #ece9e9;
}

html[data-theme="dark"] {
  --background: #212737;
  --foreground: #eaedf3;
  --accent: #ff6b01;
  --muted: #343f60bf;
  --border: #ab4b08;
}

In previous versions, React.js and Fuse.js were used for search functionality and OG image generation. In AstroPaper v5, React.js has been removed and replaced with Pagefind, a static site search tool.

The search experience is almost identical to previous versions, but now all contents, not just titles and descriptions, are indexed and searchable, thanks to Pagefind.

The idea of using Pagefind in dev mode was inspired by this blog post.

Updated import alias

The import alias has been updated from @directory to @/directory, which means you now have to import like this:

---
import { slugifyStr } from "@/utils/slugify";
import IconHash from "@/assets/icons/IconHash.svg";
---

Move to pnpm

AstroPaper has switched from npm to pnpm, which offers faster and more efficient package management.

Replace icons/svg with Astro’s Svg Component

AstroPaper v5 replaces inline SVGs with Astro’s experimental SVG Component. This update reduces the need for predefined SVG code in the socialIcons object, making the codebase cleaner and more maintainable.

Separate Constants and Config

The project structure has been reorganized. The src/config.ts file now only contains the SITE object, which holds the main configuration for the project. All constants, such as LOCALE, SOCIALS, and SHARE_LINKS, have been moved to the src/constants.ts file.

Other notable changes

Outtro

AstroPaper v5 brings many changes, but the core experience remains the same. Enjoy a smoother, more efficient blogging platform while keeping the clean and minimal design that AstroPaper is known for!

Feel free to explore the changes and share your thoughts. As always, thank you for your support!

If you enjoy this theme, please consider starring the repo. You can also support me via GitHub Sponsors or you can buy me a coffee if you’d like. However, of course, these actions are entirely optional and not required.

Enjoy!

Sat Naing


Suggest Changes

Previous Post
How to add LaTeX Equations in Astro blog posts
Next Post
Adding new posts in AstroPaper theme