ドキュメントテンプレートv2.4
ドキュメントを検索⌘K

ガイド / はじめる

テーマを追加する

テーマは1つのディレクトリでできています。ビルドはページ単位で分離されるので、既存のテーマに影響を与えずに増やせます。

NOTE
テーマは独自のトークンを持ちません。大きさ・字間・角丸は Tailwind 既定のスケールで書き、入口が名乗るのは色だけです。

1. ディレクトリを作る

ルートを直下に、それを組み立てるものを _theme/ に置きます。

src/pages/themes/izakaya/tree
izakaya/
├── index.astro          トップページ
├── menu/index.astro     お品書き
├── news/[slug].astro    お知らせ
└── _theme/
    ├── global.css       色だけを名乗る
    ├── theme.ts         自分を名乗る
    ├── Base.astro
    ├── routes.ts        BASE = "/themes/izakaya"
    └── components/

2. カタログに載せる

テーマ自身が theme.ts で名乗り、カタログはそれを集めます。 登録する表はありません。

src/pages/themes/izakaya/_theme/theme.tsTypeScript
import { defineTheme } from "@/lib/theme";

export const identity = {
  title: "居酒屋テンプレート",
  tagline: "居酒屋のテンプレートです。",
  favicon: "/themes/izakaya/favicon.svg",
};

export default defineTheme({
  site: identity,
  card: {
    name: "居酒屋",
    description: "暗い下地にお品書きを並べる、夜の店の顔になるサイト。",
    tags: [
      "和食・ダイニングバー",
      "お品書き(価格つき)",
      "コース・飲み放題",
      "宴会・貸切の受付",
    ],
    background: "#17130f",
  },
});

theme.ts

カタログのカードが読むフィールド。

フィールド必須説明
siteThemeSite必須サイトの中で名乗る名前・タグライン・favicon
card.namestring必須カードに出す表示名
card.descriptionstring必須何のためのテーマかを1文で
card.tagsstring[]1〜4件1件目は誰向けか、残りはそのサイトに載るもの
card.backgroundstring必須カードの絵の下地に敷く、テーマ自身の背景色
CAUTION
base は各テーマの routes.tsBASE と一致させてください。ルートのテストが両者を突き合わせます。