
# Typographyプラグイン

`@tailwindcss/typography`は公式typographyプラグインの1:1のPHP移植版です。`prose`クラスとその修飾子を追加し、レンダリングされたHTMLのブロックに読みやすいタイポグラフィ既定スタイルを適用します。見出し、段落、リスト、引用、コード、表などを個別にスタイリングする必要はありません。

## 使い方

`@plugin`でプラグインを読み込み、utilitiesレイヤーをインポートしてから、コンテンツを囲むコンテナーに`prose`を適用します。

```php
use TailwindPHP\tw;

$css = tw::generate(
    '<article class="prose prose-lg"><h1>Title</h1><p>Body text…</p></article>',
    '@plugin "@tailwindcss/typography"; @import "tailwindcss/utilities.css";'
);
```

生成される`.prose`ルールは`--tw-prose-*`カスタムプロパティ（`--tw-prose-body`、`--tw-prose-headings`、`--tw-prose-links`、`--tw-prose-code`、`--tw-prose-quotes`など）を定義し、それらを通じて子孫要素をスタイリングします。

## クラス

### サイズ

サイズ修飾子は、文字サイズの段階全体を拡大・縮小します。ベースの`prose`クラスと併用します。

| クラス | 用途 |
|-------|---------|
| `prose` | デフォルトのサイズ |
| `prose-sm` | 小 |
| `prose-base` | 標準 |
| `prose-lg` | 大 |
| `prose-xl` | 特大 |
| `prose-2xl` | 2倍の特大 |

```html
<article class="prose prose-xl">…</article>
```

### カラーテーマ

色の修飾子は、本文、見出し、境界線に使うグレースケールを切り替えます。

| クラス | テーマ |
|-------|-------|
| `prose-slate` | スレート |
| `prose-gray` | グレー |
| `prose-zinc` | ジンク |
| `prose-neutral` | ニュートラル |
| `prose-stone` | ストーン |

### 反転

`prose-invert`は暗い背景で使うためにカラーパレットを反転します。サイズや色の修飾子と自由に組み合わせられます。

```html
<article class="prose prose-lg prose-slate prose-invert">…</article>
```

## オプション

### `className`

デフォルトでは、このプラグインは`prose`クラスを生成します。`className`を設定すると名前を変更でき、修飾子にも新しい名前が反映されます（`markdown`、`markdown-lg`、`markdown-invert`、…）。設定すると、`prose`クラスは生成されません。

```php
$css = tw::generate(
    '<article class="markdown markdown-lg">…</article>',
    '
        @plugin "@tailwindcss/typography" {
            className: "markdown";
        }
        @import "tailwindcss/utilities.css";
    '
);
```

## 注意事項

`prose-headings:underline`や`prose-a:text-blue-600`などの要素修飾子は登録されますが、現在のリリースでは要素セレクターなしでコンパイルされます。そのため、ユーティリティは`prose`コンテナー全体に適用され、内部の見出しやリンクには適用されません（[#10](https://github.com/inline0/tailwindphp/issues/10)）。修正されるまでは、独自のCSSでこれらの要素をスタイリングしてください。

これはTailwindCSS v4ポートです。元のプラグインの一部のv3-specific動作（`.dark`セレクターによるダークモードや、一部の要素バリアント設定形式など）はv4では異なる動作をするため、ここではサポートされていません。代わりに`prose-invert`修飾子とv4バリアントを使用してください。

`@plugin`ディレクティブと読み込み方法は[プラグイン](https://tailwindphp.inline0.dev/ja/docs/plugins)を参照してください。
