Built with Astro, TypeScript, and UnoCSS
astro-theme-typography — Astro Blog Template
By moeyua
An Astro-based typography-focused blog theme rewritten from hexo-theme-Typography, supporting dark mode, i18n, and multiple comment services.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Typographic rules reference common Chinese typography conventions, oriented toward reading experience
Built-in dark mode with light, dark, or system-following options
Supports en-us, zh-cn, zh-tw, ja-jp, and it-it languages
Can integrate Disqus, Giscus, and Twikoo comment services
Provides Open Graph, Twitter Cards, Sitemap, and RSS feed
Template Details
Typography is a blog theme built with Astro, TypeScript, and UnoCSS by moeyua, with the repository under the MIT license. It is rewritten from hexo-theme-Typography and focuses on typography and reading experience; the README states its typographic rules are derived from common Chinese typography conventions.
The theme provides default navigation for posts, archives, categories, and about. Posts are stored as Markdown files under src/content/posts, with frontmatter for metadata such as title, publication date, categories, and description; new posts can also be created with the pnpm theme:create command. Site configuration is split into default settings in src/.config/default.ts and user overrides in src/.config/user.ts. Social links, navigation items, theme styles, language, and comment services are all set in the configuration files.
Feature-wise, the theme includes dark mode (light, dark, or system), i18n with built-in en-us, zh-cn, zh-tw, ja-jp, and it-it (extendable in src/i18n.ts), Open Graph and Twitter Cards, Sitemap and RSS feed, and support for Disqus, Giscus, and Twikoo comment services; when multiple are configured, only the first is displayed. The README's TODO lists WebSub, search, and analytics as unfinished, indicating these capabilities are not currently part of the theme.
Usage limitations: social icon names must correspond to icon names in Material Design Icons; after changing configuration, the development server must be restarted to see the changes; third-party assets such as demo images, fonts, and icons require separate license verification, and the MIT license covers only the code of this version.
Is it right for your project?
Use Cases
- Building a personal blog focused on long-form reading
- Sites needing Chinese typographic details and multilingual switching
- Adjusting navigation, social links, and theme styles via configuration files
- Blogs that write in Markdown and need category and archive pages
Suitable For
- Developers using Astro or bloggers willing to configure according to the documentation
- Chinese-language content sites that value typography and reading experience
- Personal blogs needing dark mode, RSS, and Sitemap
- Static sites looking to integrate comment services such as Giscus
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Can be deployed by forking the repository and importing it via Vercel or Netlify, or by referring to Astro's deployment documentation for other platforms
- 2
Create Markdown files under src/content/posts to write posts; frontmatter must include fields such as title, pubDate, categories, and description
- 3
Configuration is written in src/.config/user.ts to override defaults in src/.config/default.ts; the development server must be restarted after changes
- 4
Social icon names use Material Design Icons icon names; navigation items require corresponding pages added under src/pages
- 5
When multiple comment services are configured, only the first is displayed; third-party assets and external services require separate license and cost verification
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- After modifying configuration (such as social links), the development server must be restarted for changes to take effect.
- When multiple comment services are configured, only the first takes effect; the others will not be displayed.
- The name for social links must use icon names from Material Design Icons, otherwise icons cannot be generated correctly.
- Built-in languages are only en-us, zh-cn, zh-tw, ja-jp, and it-it; other languages must be extended in src/i18n.ts.
- WebSub, search, and analytics features are not yet implemented and are not included in the current version.
- Updating the theme requires running Sync Fork on the forked repository and must not click Discard Changes, otherwise local changes will be lost.
- Comment functionality depends on third-party external services such as Disqus, Giscus, or Twikoo, which may require additional accounts or self-hosted services.
- Demo images, fonts, icons, and other third-party assets require license verification under their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domain, hosting, database, payment, or AI may incur additional charges.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
Note that you need to restart the development server to see the changes.
Original README
when you fill in multiple comment services, only the first service will be displayed.
Original README
The `name` is the icon name in [Material Design Icons](https://pictogrammers.com/library/mdi/),
Original README
You can see all supported languages in [src/i18n.ts](src/i18n.ts), and add more if you need.
Original README
- [ ] WebSub - [x] comment - [ ] search - [ ] analytics
Original README
You can simply [`Sync Fork`](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) on your own forked project (do not click Discard Changes, otherwise you will lose your own changes).
Original README
https://github.com/moeyua/astro-theme-typography/blob/main/LICENSEhttps://github.com/moeyua/astro-theme-typography/blob/main/README.mdSupport Disqus, Giscus, Twikoo as comment service.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-01. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 91 / 100
- Technologies
- Astro
- Website type
- Blog
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-02-17
- Screenshot last checked
- 2026-10-01
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Astro as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: 70ce9db9aa3a65582ad23b151068fbb1757fd4e63c468004866d0b7dfe01a624
2026-10-01T15:15:31.493Z
Source file / repository# Typography
<p align='center'>
<img src='./public/typograph-og.jpg' alt='Typography' width='600'/>
</p>
<h6 align='center'>
<a href="https://astro-theme-typography.vercel.app/">Live Demo</a>
</h6>
<h5 align='center'>
<b>This work is rewrite from <a href="https://github.com/sumimakito/hexo-theme-typography">hexo-theme-Typography</a></b>
</h5>
<p align='center'>
<b>English</b> | <a href="./README.zh-CN.md">简体中文</a>
</p>
## Features
- Build with **Astro**, **TypeScript** and **UnoCSS**
- **Fast**. 100% [Pagespeed Score](https://pagespeed.web.dev/analysis/https-astro-theme-typography-vercel-app/j34nq9tx0s?form_factor=desktop).
- **Typography** Derived from prevalent Chinese typographic norms and aims to provide an enhanced reading experience for website visitors.
- **Responsive**. Responsive and works well on all screen sizes.
- **Accessible**. A well thought out semantic and accessible content.
- **SEO friendly**.Open Graph and Twitter Cards support for a better social sharing experience.
- **Sitemap** and **RSS feed** for search engines.
- i18n support.
- Support Disqus, Giscus, Twikoo as comment service.
- Dark mode support.
## Demo
> Submit a PR to add your blog Demo.
- [Live Demo](https://astro-theme-typography.vercel.app/)
- [My Blog](https://blog.moeyua.com/)
- [Julyfun's Blog (how to fully build this blog using `bun` in minutes)](https://julyfun.fun/posts/%E5%85%89%E9%80%9F%E6%90%AD%E5%BB%BA%E8%BF%99%E6%A0%B7%E4%B8%80%E4%B8%AA%E5%8D%9A%E5%AE%A2/)
- [Jinx's Blog](https://blog.mytest.cc/)
- [Unconventional Reading Notes](https://books.beyondxin.top/)
## Getting Started
Typography is a minimal, responsive and SEO-friendly Astro blog theme. This guide will help you get started with a new project.
### Quick Start
You can fork the repository to your account by clicking the Fork button in the upper right corner, click the button below, select the repository you just forked, click the Import button, and you will be taken to the project configuration page.
[](https://vercel.com/new)
[](https://app.netlify.com/start)
Or you can refer to the [Astro](https://docs.astro.build/guides/deploy/) documentation to deploy to your favorite platform.
### Add post
You can add content by creating a new markdown file in `src/content/posts`. The file need metadata in the frontmatter, like this:
```md
---
title: title
pubDate: 2021-08-01
categories: ["article"]
description: "description"
---
```
Or, you can use the following command in your terminal to create a new post:
```bash
pnpm theme:create
```
## Updating the theme
You can simply [`Sync Fork`](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) on your own forked project (do not click Discard Changes, otherwise you will lose your own changes).
## Customization
Typography is highly customizable. The default configuration file is [src/.config/default.ts](src/.config/default.ts), you can override the default configuration in [src/.config/user.ts](src/.config/user.ts) as needed.
### Social links
Typography has built-in support for adding links to your social media accounts to the site via the social option in the config file:
```ts
socials: [
{
name: 'github',
href: 'https://github.com/moeyua/astro-theme-typography'
}
]
```
The `name` is the icon name in [Material Design Icons](https://pictogrammers.com/library/mdi/),
which will be automatically generated as the icon.
> Note that you need to restart the development server to see the changes.
### Navigation links
By default, the navigation are `Posts`, `Archive`, `Categories` and `About`. You can add more in the config file:
```ts
{
navs: [
{
name: 'Categories',
href: '/categories'
}
]
}
```
And then add the corresponding page in `src/pages`, see more in [Astro Pages](https://docs.astro.build/en/core-concepts/astro-pages/)
### Dark mode
Typography supports dark mode. You can change it in the config file:
```ts
themeStyle: 'dark' // 'light' | 'dark' | 'system'
```
### Internationalization (i18n)
Typography provides built-in support for multilingual sites. By default, the language is `en-us`, you can change it in the config file:
```ts
locale: 'zh-cn'
```
For now, Typography supports below languages:
- `en-us`
- `zh-cn`
- `zh-tw`
- `ja-jp`
- `it-it`
You can see all supported languages in [src/i18n.ts](src/i18n.ts), and add more if you need.
### Comment
Typography supports multiple comment services, currently supports [Disqus](https://disqus.com/), [Giscus](https://giscus.app/) and [Twikoo](https://twikoo.js.org/).
Enable the corresponding comment service by adding the configuration to the config file, when you fill in multiple comment services, only the first service will be displayed.
#### Disqus
You can enable Disqus by adding the following configuration to the config file:
```ts
comments: {
disqus: {
shortname: 'your-disqus-shortname'
}
}
```
#### Giscus
Based on the [Giscus web component](https://github.com/giscus/giscus-component?tab=readme-ov-file#using-the-web-component) implementation.
The prop names are the same as the data- attributes shown on the [giscus website](<(https://giscus.app/)>), but written in camelCase with the data- prefix and dashes removed.
You can enable Giscus by adding the following configuration to the config file:
```ts
{
comments: {
giscus: {
repo: 'moeyua/astro-theme-typography'
repoId: 'R_kgDOKy9HOQ'
category: 'General'
categoryId: 'DIC_kwDOKy9HOc4CegmW'
mapping: 'title'
strict: '0'
reactionsEnabled: '1'
emitMetadata: '1'
inputPosition: 'top'
theme: 'light'
lang: 'zh-CN'
loading: 'lazy'
}
}
}
```
#### Twikoo
You can enable Twikoo by adding the following configuration to the config file:
```ts
{
comments: {
twikoo: {
envId: 'your-env-id'
}
}
}
```
## Pagespeed Score
[](https://pagespeed.web.dev/analysis/https-astro-theme-typography-vercel-app/j34nq9tx0s?form_factor=desktop)
## TODO
- [ ] WebSub
- [x] comment
- [ ] search
- [ ] analytics
Explore similar templates
Compare previews and descriptions within the same stack and category.

astrowind
AstroWind is a free, open-source Astro starter theme using Astro and Tailwind CSS, released under the MIT license.
Astro · Blog

astro-paper
AstroPaper is a minimal, responsive, accessible, and SEO-friendly Astro blog theme. Articles are stored as Markdown/MDX in src/content/posts/, with subdirectories affecting URLs.
Astro · Blog

fuwari
Fuwari is a static blog template built with Astro and Tailwind CSS for personal blogs. It manages posts as Markdown files in src/content/posts/, with frontmatter for title, date, description, cover, tags, categories, draft status, and language.
Astro · Blog

Firefly
Firefly is a clean personal blog theme forked from Astro and Fuwari, offering four background modes, single/double sidebar and list/grid layouts, Pagefind client-side full-text search, and a six-language UI.
Astro · Blog

astro-theme-cactus
Astro Cactus is an Astro-based blog and portfolio theme that uses Markdown/MDX content collections to manage posts, notes, and tags, with frontmatter type-checked by a schema.
Astro · Portfolio

astrofy
Astrofy is a free and open-source personal portfolio website template built with Astro and TailwindCSS, with built-in blog, CV timeline, project showcase, store, and RSS feed modules.
Astro · Portfolio
