コンテンツにスキップ

Astro StarlightでTailwind CSSを利用する

AstroのドキュメントテンプレートStarlightでTailwind CSSを使ってみたので備忘録です。

Tailwind CSSの追加

既存のStarlightプロジェクトにTailwind CSSを追加します。(新規の場合はこちら)

  1. AstroのTailwindインテグレーションを追加:

    Terminal window
    pnpm astro add @astrojs/tailwind

  2. StarlightのTailwindプラグインをインストール:

    Terminal window
    pnpm add @astrojs/starlight-tailwind
  3. Tailwindのベーススタイル用のCSSファイルを作成(例:src/styles/tailwind.css)します。

    src/styles/tailwind.css
    @tailwind base;
    @tailwind components;
    @tailwind utilities;
  4. astro.config.mjsを更新します

    astro.config.mjs
    import { defineConfig } from 'astro/config';
    import starlight from '@astrojs/starlight';
    import tailwind from '@astrojs/tailwind';
    export default defineConfig({
    integrations: [
    starlight({
    title: 'Tailwindを使ったドキュメント',
    customCss: [
    './src/styles/tailwind.css',
    ],
    }),
    tailwind({
    applyBaseStyles: false,
    }),
    ],
    });
  5. tailwind.config.mjsにStarlightのTailwindプラグインを追加します。

    tailwind.config.mjs
    import starlightPlugin from '@astrojs/starlight-tailwind';
    /** @type {import('tailwindcss').Config} */
    export default {
    content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
    plugins: [starlightPlugin()],
    };

Tailwindを使ったStarlightのスタイリング

StarlightはTailwindのテーマ設定値をUIで使用します。

例としてリンクなどに使われるアクセントカラーを変更する方法を紹介します。

colors.accent:リンクと現在のアイテムのハイライト

今回はtailwindの色設定を利用します。

色を確認したい場合は、Tailwind CSSの公式サイトを参照してください。

tailwind.config.mjs
import starlightPlugin from '@astrojs/starlight-tailwind';
import colors from 'tailwindcss/colors';
/** @type {import('tailwindcss').Config} */
export default {
content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
theme: {
extend: {
colors: {
accent: colors.red,
},
},
},
plugins: [starlightPlugin()],
};

実行すると下記のようにカラーが変更されます。

Image from Gyazo

カスタムテーマの作成

Starlightのカラーテーマは、カスタムプロパティを上書きしてコントロールできます。

Starlightは、テーマカラーエディタを提供しています。

下記のリンクからテーマカラーエディタにアクセスできます。