Skip to content

Latest commit

 

History

845 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Shirone logo

Shirone

An expressive, anime-inspired blog theme built on Material 3 Expressive.

A calm reading space for long-form writing, personal collections, and the small details that make a site feel like yours.

Live demo · Documentation · Report an issue

English · 简体中文 · 繁體中文 · 日本語

Node.js >= 22.12 pnpm 9 Astro 7 License: MIT

Important

Start with the online documentation. It is the primary guide for setup, configuration, content workflows, and deployment.

Start Here

The online documentation is the main entry point for setup, configuration, content workflows, and deployment. This repository contains the theme source; use Shirone-Content when you want to keep personal content in a separate repository.

Verified In Practice

The current reference run scores 100 for Performance, Accessibility, Best Practices, and SEO, with all three agentic browsing checks passing. The detailed performance metrics also reach 100 in this run; results can vary with hosting, content, and network conditions.

Shirone benchmark

Shirone homepage

Chromatic Spell
Dynamic HCT palettes that respond to light, mood, and choice.
Seamless Passage
Swup navigation keeps the surrounding world gently in motion.
Story Grimoire
Markdown, MDX, math, diagrams, code, and images in one writing flow.
Quiet by Design
SSR-first, accessible, and truly weightless when features are disabled.

✦ A Small Spell for Every Story

Shirone is a static personal blog theme built with Astro 7, Svelte 5, Tailwind CSS 4, and Stylus. Its magic is not a layer of spectacle: it lives in colors that shift with light and mood, pages that turn without breaking the atmosphere, and small details that make a personal corner of the web feel alive.

Behind that softness is a token-driven Material 3 Expressive component system. Content is rendered server-side, while Swup provides smooth in-site navigation and keeps the surrounding application shell alive between pages.

The theme is designed for long-form writing as well as personal collections such as moments, albums, anime lists, friends, projects, skills, and timelines.

✦ Inside the Grimoire

  • Dynamic HCT color palettes with Material 3 and Material 3 Expressive specifications
  • Light and dark themes, banner and solid backgrounds, optional textures, and visitor display preferences
  • Responsive layouts with configurable single or dual sidebars
  • Smooth Swup navigation with a persistent shell, route progress, and reduced-motion support
  • Markdown and MDX content with math, Mermaid, admonitions, enhanced code blocks, and image galleries
  • Full-text search powered by Pagefind, plus RSS and sitemap output
  • Article table of contents, related posts, sharing, encryption, and optional comments
  • Dedicated pages for archives, categories, tags, friends, moments, anime, albums, projects, skills, and timelines
  • Ten built-in interface locales
  • SSR-first output, keyboard-friendly interactions, and accessibility testing
  • Optional integrations follow a zero-burden rule: when disabled, they add no external requests, DOM, layout shift, or main-bundle code

✦ AI Skills

Shirone ships with agent skills in .agents/skills/. AI coding assistants that support the Agent Skills standard (Claude Code, Codex, ZCode, and others) discover them automatically after you clone the repository — developer-oriented skills guide theme development, while user-oriented skills help you write posts, use the custom Markdown syntaxes, and configure your site. To package the same skills as one installable Codex plugin, run pnpm.cmd skills:package -- --zip.

Quick Start

Requirements

  • Node.js 22.12 or newer
  • pnpm 9.x (the repository pins pnpm@9.14.4)

Run locally

git clone https://github.com/LyraVoid/Shirone.git
cd Shirone
corepack enable
pnpm install
pnpm dev

Open http://localhost:4321 in your browser.

On Windows PowerShell installations where script execution is restricted, use pnpm.cmd and npx.cmd instead.

Customize your site

  1. Set the canonical URL, title, language, theme, banner, and display options in src/config/siteConfig.ts.
  2. Update the profile and navigation in src/config/profileConfig.ts and src/config/navBarConfig.ts.
  3. Review the feature-specific files in src/config/; their inline comments document defaults and supported values.
  4. Replace the sample posts, personal data, and media under src/content/, src/data/, and public/.
  5. Create a post with pnpm new-post <filename>, then edit it under src/content/posts/.

See src/config/README.md for the complete configuration contract.

Official Companion Repositories

Shirone keeps theme source, personal site content, and npm publishing responsibilities separate. These official repositories serve different workflows:

Repository Use it for What it contains
Shirone-Content Running a blog in the external-content, dual-repository mode A content template for posts, moments, data, media, and config/*.yaml overlays. Fork or clone it into your own repository, normally private, then point this theme repository at it. See the content-separation guide.
Shirone-NPM Maintaining and publishing the shirones npm package The manual build-and-publish pipeline. It pulls this repository at build time and deliberately contains no theme source; regular blog users install shirones rather than working in this repository. See npm package mode.

Main Configuration

File Purpose
src/config/siteConfig.ts Site URL, identity, locale, dynamic color, banner, texture, TOC, and display settings
src/config/profileConfig.ts Author profile and social links
src/config/navBarConfig.ts Main navigation
src/config/sidebarConfig.ts Sidebar layout, widgets, and page filters
src/config/postListConfig.ts Pagination and list/grid presentation
src/config/articleConfig.ts Update notice, related posts, and article sharing
src/config/commentConfig.ts Optional comment provider
src/config/musicConfig.ts Optional local, custom, Meting, or mixed music source
src/config/animeConfig.ts Anime page and local/Bangumi/Bilibili snapshot source

Writing a Post

Posts live in src/content/posts/ and may be Markdown or MDX. A minimal frontmatter block looks like this:

---
title: My First Post
published: 2026-08-26
description: A short summary shown in post lists and metadata.
image: ./cover.webp
tags: [Astro, Notes]
category: Writing
draft: false
---

Frequently used optional fields include updated, pinned, comment, lang, encrypted, password, passwordHint, and hideHomeContent. Images may be remote URLs, absolute paths from public/, or paths relative to the post file.

Commands

Command Action
pnpm dev Start the development server
pnpm new-post <filename> Create a new post
pnpm format Format source files with Biome (mandatory before commit)
pnpm check Run Astro diagnostics
pnpm type-check Run TypeScript checks
pnpm check:manifest Validate the component manifest
pnpm test Run the Playwright test suite
pnpm build Build the site and Pagefind index into dist/
pnpm preview Preview the production build
pnpm lighthouse Run the desktop production audit

Deployment

Shirone produces a static dist/ directory and can be deployed to Vercel, Netlify, GitHub Pages, or any static hosting service.

Before deploying, update site and base in src/config/siteConfig.ts, then run:

pnpm install --frozen-lockfile
pnpm check
pnpm type-check
pnpm check:manifest
pnpm build

Use pnpm build as the build command and dist as the output directory. More details are available in INDEX.md.

Documentation

Contributing

Issues and pull requests are welcome. For substantial features or visual changes, please open an issue or discussion first. Read CONTRIBUTING.md and the repository rules before submitting code. Always format your changes with pnpm format before committing, keep each pull request focused, and use Conventional Commits.

Acknowledgements

Shirone began as a refactor of Fuwari by saicaca. Its current M3E design system, component architecture, page modules, and orchestration are developed as Shirone. Thanks to the Fuwari project and its contributors for the original foundation.

Contributors

Every contribution adds a new line to Shirone's spellbook. Thank you to everyone who helps this little world grow.

Star Trail

Shirone Star History chart

Each star is a spark that helps Shirone shine a little farther.

License

Shirone is released under the MIT License. The repository retains the original copyright notice required by that license.

About

An expressive, anime-inspired blog theme built on Material 3 Expressive, Astro 7, and Svelte 5

Resources

Contributing

Stars

106 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages