AstroBlog

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.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-09-30View source

What stands out

A quick read of the recorded project description.

01

Built with Astro, TypeScript, and UnoCSS

02

Typographic rules reference common Chinese typography conventions, oriented toward reading experience

03

Built-in dark mode with light, dark, or system-following options

04

Supports en-us, zh-cn, zh-tw, ja-jp, and it-it languages

05

Can integrate Disqus, Giscus, and Twikoo comment services

06

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.

AstroBlog

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. 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. 2

    Create Markdown files under src/content/posts to write posts; frontmatter must include fields such as title, pubDate, categories, and description

  3. 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. 4

    Social icon names use Material Design Icons icon names; navigation items require corresponding pages added under src/pages

  5. 5

    When multiple comment services are configured, only the first is displayed; third-party assets and external services require separate license and cost verification

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This 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

Support Disqus, Giscus, Twikoo as comment service.

Original README
https://github.com/moeyua/astro-theme-typography/blob/main/LICENSEhttps://github.com/moeyua/astro-theme-typography/blob/main/README.md

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.

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new)
[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](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

[![Pagespeed Score](https://github.com/moeyua/astro-theme-typography/assets/45156493/2272f576-d6ff-49ef-a294-5c2acf365907)](https://pagespeed.web.dev/analysis/https-astro-theme-typography-vercel-app/j34nq9tx0s?form_factor=desktop)

## TODO

- [ ] WebSub
- [x] comment
- [ ] search
- [ ] analytics
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.