import { H2 } from './h2';
import { H3 } from './h3';
import { P } from './p';
import { Ul } from './ul';
import { Ol } from './ol';
/**
* Article Typography Components
*
* These components are used in MDX article content to provide
* consistent styling for headings, paragraphs, lists, and text formatting.
*
* H4-H6, strong, em, code, hr are styled via rehype-article-elements plugin
* at build time instead of React component wrappers.
*
* Features:
* - Responsive typography (mobile/tablet/desktop)
* - Consistent spacing and visual rhythm
* - Anchor links for headings with IDs
* - Proper list nesting styles
*/
export const meta = {
title: 'Article/Typography',
};
/**
* All typography elements
*/
export const AllElements = () => (
<div className="max-w-[800px]">
<H2>見出し2 (H2) - Main Section</H2>
<P>
これは段落テキストです。モジュラーシンセサイザーは、独立したモジュールを組み合わせて音を作り出す電子楽器です。
各モジュールはオシレーター、フィルター、アンプなどの機能を持ち、パッチケーブルで接続します。
</P>
<H3>見出し3 (H3) - Sub Section</H3>
<P>
Eurorack(ユーロラック)は最も普及しているモジュラーシンセサイザーの規格です。
3Uの高さと電源規格が標準化されており、異なるメーカーのモジュールを組み合わせることができます。
</P>
<h4 className="font-futura font-bold pb-vgap-sm text-sm md:text-lg">
見出し4 (H4) - Detail Section
</h4>
<P>
<strong className="text-zd-strong font-bold">ボールドテキスト</strong>と
<em className="italic">イタリックテキスト</em>
を使って強調することができます。これらはMDXで**と*で囲むことで表現できます。
</P>
<h5 className="font-futura font-bold pb-vgap-sm text-sm md:text-base">見出し5 (H5)</h5>
<P>見出し5は小さめのセクション見出しに使用します。</P>
<h6 className="font-futura font-bold pb-vgap-sm text-sm">見出し6 (H6)</h6>
<P>見出し6は最も小さい見出しレベルです。</P>
<hr className="border-0 h-[4px] bg-zd-white my-vgap-md lg:my-vgap-lg" />
<H3>リスト表示</H3>
<h4 className="font-futura font-bold pb-vgap-sm text-sm md:text-lg">順序なしリスト (Ul)</h4>
<Ul>
<li>VCO (Voltage Controlled Oscillator) - 電圧制御発振器</li>
<li>VCF (Voltage Controlled Filter) - 電圧制御フィルター</li>
<li>VCA (Voltage Controlled Amplifier) - 電圧制御アンプ</li>
<li>
モジュレーション
<Ul>
<li>LFO (Low Frequency Oscillator)</li>
<li>Envelope Generator</li>
</Ul>
</li>
</Ul>
<h4 className="font-futura font-bold pb-vgap-sm text-sm md:text-lg">順序付きリスト (Ol)</h4>
<Ol>
<li>電源を接続する</li>
<li>VCOの出力をVCFに接続する</li>
<li>VCFの出力をVCAに接続する</li>
<li>VCAの出力をミキサーまたはオーディオインターフェースに接続する</li>
</Ol>
</div>
);
/**
* Headings only
*/
export const Headings = () => (
<div className="max-w-[800px]">
<H2>H2 見出し - セクションタイトル</H2>
<H3>H3 見出し - サブセクション</H3>
<h4 className="font-futura font-bold pb-vgap-sm text-sm md:text-lg">
H4 見出し - 詳細セクション
</h4>
<h5 className="font-futura font-bold pb-vgap-sm text-sm md:text-base">H5 見出し - 小見出し</h5>
<h6 className="font-futura font-bold pb-vgap-sm text-sm">H6 見出し - 最小見出し</h6>
</div>
);
/**
* Heading with anchor link
*/
export const HeadingWithAnchor = () => (
<div className="max-w-[800px]">
<P>見出しにIDを設定すると、ホバー時にアンカーリンクが表示されます。</P>
<H2 id="section-with-anchor">アンカー付き見出し</H2>
<P>この見出しにマウスを乗せると # リンクが表示されます。</P>
</div>
);
/**
* Paragraphs and text formatting
*/
export const TextFormatting = () => (
<div className="max-w-[800px]">
<P>これは通常の段落テキストです。複数行にわたる長いテキストも適切な行間で表示されます。</P>
<P>
<strong className="text-zd-strong font-bold">Strong要素</strong>
はテキストを太字にします。MDXでは**で囲みます。
</P>
<P>
<em className="italic">Em要素</em>はテキストをイタリックにします。MDXでは*で囲みます。
</P>
<P>
<strong className="text-zd-strong font-bold">
<em className="italic">両方を組み合わせる</em>
</strong>
こともできます。
</P>
</div>
);
/**
* Lists
*/
export const Lists = () => (
<div className="max-w-[800px]">
<H3>順序なしリスト</H3>
<Ul>
<li>アイテム1</li>
<li>アイテム2</li>
<li>
ネストしたリスト
<Ul>
<li>サブアイテム1</li>
<li>サブアイテム2</li>
</Ul>
</li>
<li>アイテム4</li>
</Ul>
<H3>順序付きリスト</H3>
<Ol>
<li>ステップ1</li>
<li>ステップ2</li>
<li>ステップ3</li>
<li>ステップ4</li>
</Ol>
</div>
);
/**
* Horizontal rule
*/
export const HorizontalRule = () => (
<div className="max-w-[800px]">
<P>上のセクション</P>
<hr className="border-0 h-[4px] bg-zd-white my-vgap-md lg:my-vgap-lg" />
<P>下のセクション</P>
</div>
);