# DESIGN.md — 玉川堂（GYOKUSENDO）

> 玉川堂（https://www.gyokusendo.com/）のデザイン仕様書。
> 1816 年（文化 13 年）創業、新潟県燕市。一枚の銅板を鎚で叩き縮めて器に成形する「鎚起銅器」を 200 年以上つくり続ける工房で、国の無形文化財に指定されている。
> 最大の特徴は、**サイト全体を Morisawa の明朝系ディスプレイ書体「りょう Display PlusN」（`ryo-display-plusn`）一本で組み、`font-feature-settings: "palt"` と `letter-spacing: 0.06em` と `line-height: 2.0` をすべてグローバルに効かせる**こと。さらに **見出しを weight 300（Light）、本文を weight 500（Medium）** と、通常とは逆のウェイト関係で階層をつくる。地は白 `#ffffff`、メニュータイルとフッターは黒 `#000000`、KV は工房写真に `rgba(0,0,0,0.3)` の暗幕。
> 実サイトの computed style 実測（2026-07-28 取得。トップページ）に基づく。

---

## 1. Visual Theme & Atmosphere

- **デザイン方針**: **明朝一本で、静かに、細く**。ゴシックを一切使わず、サイト全体を明朝系ディスプレイ書体で組む。見出しほど細く（weight 300）、行間は隅々まで 2.0。銅器の「打つ」という行為の静けさを、字面の余白で表す
- **玉川堂について**: 200 年続く鎚起銅器の工房。EC よりも「工房を訪ねる」「使い込んで育てる」体験の紹介が中心で、サイトのコピーも「打つ。時を打つ。」のような短い詩的な一行が軸になる
- **密度**: 低密度。KV は工房の全画面写真。以下は黒タイルのメニュー、お知らせ、フッターと縦に積むだけで、1 画面あたりの要素数を絞る
- **キーワード**: 明朝一本（りょう Display PlusN）、weight 300 の見出し、行間 2.0 グローバル、palt グローバル、ls 0.06em、白と黒の二値、角丸 0
- **特徴**:
  - **和文も欧文も `ryo-display-plusn` 一書体**。ナビ・見出し・本文・フォーム・フッターまですべてこれ。**欧文フォントを別に指定していない**ため、`English` `1816` などのラテン文字も明朝のラテングリフで組まれる
  - **`font-feature-settings: "palt"` がグローバル**。見出しだけでなく本文にも掛かる。明朝の字面の空きを全面的に詰めたうえで、`letter-spacing: 0.06em` で均一に開き直すという二段構え
  - **`line-height: 2.0` がグローバル**。16px→32px、14px→28px、28px→56px、12px→24px と、本文系はすべて ×2.0。**見出しだけが 1.1** に締まる
  - **ウェイトの関係が逆転している**。見出し（48px / 24px / 18px）は **300（Light）**、本文・ナビ・リストは **500（Medium）**。サイズと太さが逆方向に動くことで、大きな見出しが軽く、静かに見える
  - **色は白と黒の二値**。彩度を持つ色を UI に持ち込まず、色は銅器の写真（赤銅・紫金・黒味銅・栗色）が担当する
  - **メニューは黒ベタのタイル**。写真の上に `#000000` の面を置き、白の明朝で「玉川堂について」「玉川堂の歴史」「玉川堂の技術」と並べる
  - **角丸は全域 0**。アウトラインボタンも 1px の直線の矩形

---

## 2. Color Palette & Roles

> 実測値。UI に使われる色は**白・黒とグレー 4 段だけ**。ブランドカラーと呼べる有彩色を持たず、銅の色は写真が受け持つ。

### Base（地）

- **Background** (`#ffffff`): ページ地色。純白
- **Ink** (`#000000`): 本文・見出しの基本テキスト色。**メニュータイルとフッターの面色でもある**
- **KV Overlay** (`rgba(0,0,0,0.3)`): KV の工房写真に重ねる暗幕。白のロゴと「English / 簡体中文 / 繁體中文 / オンラインショップ」を読ませるための 30% の黒

### Neutral（文字・罫）

- **Text on Dark** (`#ffffff`): 黒タイル・フッター上の文字
- **Sub Text** (`#333333`, rgb 51,51,51): サブメニューのリンク（「玉川堂について」等の下層項目）
- **Caption** (`#666666`, rgb 102,102,102): 著作権表記・注釈。フォーム入力欄の文字色
- **Muted** (`#999999`, rgb 153,153,153): アウトラインボタン（「一覧を見る」）の文字色。**押せることを示しつつ主張しない灰**
- **Border** (`#cccccc`, rgb 204,204,204): アウトラインボタンの罫・区切り線
- **Gray** (`#aaaaaa`, rgb 170,170,170): スライダーの非活性インジケータ

### Brand（ブランド）

- **玉川堂は UI 上のブランドカラーを持たない**。ロゴマーク（鎚目の円）とロゴタイプ「Gyokusendo 1816」は白または黒の単色で使う
- ブランドの色は**銅の経年色**そのもの。赤銅（`#7b3f2e` 目安）・紫金（`#4a2a2a` 目安）・黒味銅（`#2b2320` 目安）・栗色（`#5c3a25` 目安）は**写真と商品説明の中で示すものであり、UI の面色や罫に使わない**

### Semantic（意味的な色）

- 意味色を持たない。状態は文言と罫線の有無で示す
- **Danger／Error**: フォームで必要な場合のみ暖色の赤（`#a83a2e` 目安。銅の赤に近い落ち着いた赤を選ぶ）
- **Info**: `#333333` の文字＋ 1px の罫線で代用する

---

## 3. Typography Rules

> **明朝系ディスプレイ書体「りょう Display PlusN」一本**でサイト全体を組む。`palt` / `letter-spacing: 0.06em` / `line-height: 2.0` がすべてグローバルに効き、**見出しは weight 300、本文は weight 500** と太さの関係が逆転する。

### 3.1 和文フォント

- **明朝体**: **りょう Display PlusN**（`ryo-display-plusn`／Morisawa、Adobe Fonts 経由で配信）。大きなサイズでの表示を想定した明朝系ディスプレイ書体で、線のコントラストが強く、横画が細い
- **ゴシック体**: **使わない**。ナビも本文もフォームもすべて明朝
- **ウェイト**: **300（Light）／400／500（Medium）／700** の 4 段を使う。主役は **300（見出し）と 500（本文）**

### 3.2 欧文フォント

- **欧文専用のスタックを持たない**。`ryo-display-plusn, serif` のみで、ラテン文字は**明朝書体に内蔵されたラテングリフ**で組まれる
- そのため `English` / `GYOKUSENDO` / `1816` といった欧文も和文と同じ字面のトーンで並ぶ
- 例外はフォームの `input[type=email]` で、`"Open Sans", "Helvetica Neue", Arial, Helvetica, Verdana, sans-serif` に落ちる。**これは実装上の取り残しであり、再現時は `ryo-display-plusn` に揃えること**
- **preview.html での注記**: `ryo-display-plusn` は Morisawa の Adobe Fonts 配信書体で、ローカルの preview.html では表示できない。プレビューでは **Google Fonts の "Noto Serif JP"（weight 300 / 500）** を代替に用いる。**weight 300 が使えることが代替選定の決め手**で、玉川堂の設計の核である「見出しを Light で組む」を再現できる書体は Google Fonts の日本語明朝では限られる（Shippori Mincho / Zen Old Mincho は 400 以上のみ）。実装時は必ず `ryo-display-plusn` を読み込むこと

### 3.3 font-family 指定

```css
/* サイト全体（唯一の指定） */
font-family: ryo-display-plusn, serif;

/* グローバル */
font-feature-settings: "palt";
letter-spacing: 0.06em;    /* 16px に対し 0.96px */
line-height: 2.0;          /* 16px に対し 32px */
font-weight: 500;          /* 本文の既定 */
```

**フォールバックの考え方**:
- **1 書体 ＋ `serif` のみ**という最小構成。和欧を分けず、多言語（簡体中文・繁體中文）ページも同じ指定で通す
- **ウェイトは `font-weight` で切る**（`300` / `400` / `500` / `700`）。ファミリー名の切り替えは行わない
- フォールバックが `serif` だけなので、**書体が読み込めなかったときは OS の明朝（游明朝 / ヒラギノ明朝）に落ちる**。ゴシックに落ちない設計になっている

### 3.4 文字サイズ・ウェイト階層

| Role | Font | Size | Weight | Line Height | Letter Spacing | 備考 |
|------|------|------|--------|-------------|----------------|------|
| Display | りょう Display PlusN | 48px | **300** | **1.1** (52.8px) | 0.02em (0.96px) | `h2`「打つ。時を打つ。」 |
| Menu Title | りょう Display PlusN | 28px | 500 | **2.0** (56px) | 0.034em (0.96px) | 黒タイルの見出し「玉川堂について」 |
| Heading 2 | りょう Display PlusN | 24px | **300** | **1.1** (26.4px) | 0.04em (0.96px) | `h3`「お知らせ・催事情報」 |
| Heading 3 | りょう Display PlusN | 18px | **300** | **1.1** (19.8px) | 0.053em (0.96px) | `h4`「玉川堂メールマガジン お申込」 |
| Body / Nav | りょう Display PlusN | 16px | 500 | **2.0** (32px) | **0.06em** (0.96px) | `body` 既定 |
| Nav (Sub) | りょう Display PlusN | 16px | 500 | 1.25 (20px) | 0.06em | ヘッダーの言語切替 |
| Logo Link | りょう Display PlusN | 16px | **300** | 1.0 (16px) | **0.1em** (1.6px) | 「鎚起銅器 玉川堂 - GYOKUSENDO」 |
| Body Small | りょう Display PlusN | 14px | 500 | **2.0** (28px) | 0.069em (0.96px) | 段落・リストの標準 |
| Menu Desc | りょう Display PlusN | 14px | 500 | 1.5 (21px) | 0.069em | 黒タイル内の説明文 |
| Submenu | りょう Display PlusN | 14px | 400 | 1.43 (20px) | 0.069em | ドロップダウンの項目 `#333333` |
| Button | りょう Display PlusN | 13px | 500 | 2.46 (32px) | 0.03em (0.39px) | 送信ボタン |
| Caption | りょう Display PlusN | 12px | 500 | **2.0** (24px) | 0.08em (0.96px) | 著作権表記 `#666666` |
| Outline Button | りょう Display PlusN | 16px | **700** | — | 0.06em | 「一覧を見る」`#999999` |

- **`letter-spacing` は px 固定の 0.96px**。基準サイズが変わっても px 値が変わらないため、**小さい文字ほど em 換算で字間が広くなる**（16px→0.06em、12px→0.08em、48px→0.02em）。これがサイト全体の「小さい文字ほど開いて見える」印象をつくっている
- **見出しは 300、本文は 500**。サイズが大きいほど細く、小さいほど太い

### 3.5 行間・字間

- **行間 (line-height)**: **本文系はすべて 2.0**（16px→32px / 14px→28px / 12px→24px / 28px→56px）。**見出しだけが 1.1**（48px→52.8px / 24px→26.4px / 18px→19.8px）。中間の値をほとんど使わない**二極構造**
- **字間 (letter-spacing)**: **グローバルに 0.96px 固定**。em 換算では 0.02em（48px）〜 0.08em（12px）に分布する。ロゴリンクのみ 1.6px（0.1em）と別扱い
- **`font-feature-settings: "palt"` がグローバル**。本文にも掛かる

**ガイドライン**:
- **行間 2.0 と weight 300 の見出しがセット**。片方だけ真似すると印象が変わる（行間だけ 2.0 にして見出しを 700 にすると、ただの重い明朝サイトになる）
- **見出しの行間 1.1 は攻めた値**。48px の明朝を 1.1 で組めるのは、見出しが 1〜2 行の短いコピーに限られているから
- 明朝で 14px の本文を成立させているのは **行間 2.0 ＋ palt ＋ 0.96px の字間**の 3 点セット。どれか 1 つでも外すと小さい明朝が読みづらくなる

### 3.6 禁則処理・改行ルール

```css
overflow-wrap: break-word;
line-break: strict;
word-break: normal;
```

**禁則対象**:
- 行頭禁止: `）」』】〕〉》、。，．・：；？！`
- 行末禁止: `（「『【〔〈《`

- 「打つ。時を打つ。」のような句点で切るコピーは、**句点の直後で改行させない**。`palt` が効いているため句点の後ろの空きが詰まり、行頭に来ると特に目立つ

### 3.7 OpenType 機能

```css
font-feature-settings: "palt";   /* グローバル。本文にも掛ける */
letter-spacing: 0.96px;          /* palt で詰めた分を px 固定で開き直す */
```

- **`palt` をサイト全体（本文含む）に掛けるのは、日本語サイトとしては強い選択**。明朝は仮名の字面が小さく、そのままでは約物まわりの空きが目立つため、いったん全面的に詰める
- **詰めたうえで `letter-spacing: 0.96px` を均一に足す**。「palt で不均一な空きをならし、letter-spacing で一定量だけ開き直す」という二段構えが玉川堂の字面の作り方
- `lnum` などの数字指定は行っていない。「1816」「200 年」といった数字も書体既定のまま

### 3.8 縦書き

- 該当なし。UI・記事とも横組み
- 商品名（「鎚起銅器 湯沸 鎚目 木蓋」等）や工房紹介で縦組みを使う場合は `writing-mode: vertical-rl; text-orientation: mixed;`。明朝一本の設計とは相性がよい

---

## 4. Component Stylings

### Buttons

**Outline（主要 CTA）**
- Background: `transparent`
- Text: `#999999`
- Border: `1px solid #cccccc`
- Padding: `15px`
- Border Radius: **`0px`**
- Font: りょう Display PlusN / 16px / **weight 700** / ls 0.06em
- 例: 「一覧を見る」
- **玉川堂の CTA は主張しない**。文字色まで灰に落とし、罫線も薄い `#cccccc`。押せることだけを示す

**Form Submit**
- Background: `#000000`
- Text: `#ffffff`
- Padding: `0 24px`（行高 32px で高さを確保）
- Border Radius: **`0px`**
- Font: 13px / weight 500 / ls 0.03em (0.39px)

### Menu Tiles（黒ベタのタイル）

- Background: `#000000`（写真の上に重ねる）
- Text: `#ffffff`
- Border Radius: **`0px`**
- 構成: 見出し（28px / weight 500 / **行間 2.0**）＋ 説明文（14px / weight 500 / 行間 1.5）
- 例: 「玉川堂について」「玉川堂の歴史」「玉川堂の技術」「商品一覧」「お手入れ」「人間国宝　玉川宣夫」
- **サイトのナビゲーションの主役**。ヘッダーのメニューではなく、この黒タイルの一覧が導線になる

### Inputs

- Background: `#ffffff`
- Border: `1px solid #cccccc`
- Border (focus): `1px solid #000000`
- Border Radius: **`0px`**
- Padding: `12px 14px`
- Font: りょう Display PlusN / 14〜15px / weight 500 / ls 0.06em
- Text Color: `#343434` / Placeholder: `#999999`
- **実サイトの `input[type=email]` は Open Sans に落ちているが、これは実装漏れ**。明朝に揃えること

### Cards（お知らせ・商品）

- Background: `#ffffff`
- Border: なし、または `1px solid #cccccc`
- Border Radius: **`0px`**
- 構成: 写真 → 日付（14px / `#666666`）→ タイトル（16px / weight 500 / 行間 2.0）
- Shadow: なし

### Header / Footer

- **Header**: KV の上に透過で重なる。ロゴ（左、白 16px / weight 300 / ls 0.1em）＋ 言語切替とオンラインショップ（右、白 16px / weight 500）
- **Footer**: 面色 `#000000`、文字 `#ffffff`。中にメールマガジン申込（`h4` 18px / weight 300）と著作権表記（12px / `#666666` / 行間 2.0）

---

## 5. Layout Principles

### Spacing Scale

| Token | Value |
|-------|-------|
| XS | 8px |
| S | 15px |
| M | 24px |
| L | 40px |
| XL | 80px |
| XXL | 120px |

- 実測のパディングは `15px`（ボタン）を中心に、セクション間は 80〜120px の大きな余白を取る
- **行間 2.0 が空間の基本単位**。16px 本文なら 1 行 = 32px で、余白もこの倍数に寄せると縦のリズムが揃う

### Container

- Max Width: **KV は全幅ブリード**（1440px のビューポート全域）
- コンテンツセクションは概ね **1100〜1200px**
- 読み物カラムは **720px 前後**
- Padding (horizontal): 24〜40px

### Grid

- Columns: 黒タイルのメニューは 3 カラム、お知らせは 1 カラムのリスト、商品一覧は 3〜4 カラム
- Gutter: 24px
- **「全画面の工房写真 → 黒タイルのメニュー → 白地のお知らせ → 黒フッター」という白黒の交互構成**

---

## 6. Depth & Elevation

実測ではすべての要素が `box-shadow: none`。**玉川堂は影を使わない**。

| Level | Shadow | 用途 |
|-------|--------|------|
| 0 | none | 既定。すべての要素 |
| 1 | none（面色差で表現） | カード。白地 `#ffffff` と黒タイル `#000000` の二値で分離 |
| 2 | `1px solid #cccccc` | ボタン・入力欄。**影の代わりに 1px の罫線** |
| 3 | `rgba(0,0,0,0.3)` のオーバーレイ | KV の写真に重ねる暗幕。文字を読ませるための唯一の重ね合わせ |

- **奥行きは「白 `#ffffff` × 黒 `#000000`」の二値**でつくる。中間のグレー面を持たない
- 鎚起銅器の写真そのものが強い陰影を持つため、UI 側で影を足すと画面が濁る

---

## 7. Do's and Don'ts

### Do（推奨）

- **サイト全体を明朝系ディスプレイ書体（りょう Display PlusN）一本で組む**。ナビもフォームもゴシックに逃がさない
- **`font-feature-settings: "palt"` と `letter-spacing: 0.96px`（0.06em 相当）をグローバルに掛ける**。palt で詰めてから均一に開き直す
- **本文系の行間は 2.0、見出しは 1.1** の二極で組む
- **見出しは weight 300、本文は weight 500**。サイズが大きいほど細く組む
- 色は白と黒の二値に絞り、グレーは `#333333` / `#666666` / `#999999` / `#cccccc` の 4 段だけ使う
- CTA は `1px solid #cccccc` のアウトライン・文字色 `#999999`。**主張させない**
- ナビゲーションの主役は黒ベタのタイル（写真＋ `#000000` の面＋白の明朝）にする
- 角丸は全域 0。影は使わず、罫線と面の二値で階層を作る
- 銅の色（赤銅・紫金・黒味銅・栗色）は**写真と商品説明でのみ示し、UI の面色や罫に使わない**

### Don't（禁止）

- **ゴシック体を混ぜない**。ナビ・ボタン・フォームまで明朝で通すことがこのブランドの前提
- **本文の行間を 1.7 以下にしない**。明朝の 14px を成立させているのは行間 2.0 ＋ palt ＋ 字間の 3 点セットで、行間だけ詰めると一気に読みづらくなる
- **見出しを太くしない**。48px を weight 700 で組むと、静けさが失われて別のブランドになる
- `palt` を外さない（明朝の約物まわりの空きが目立つ）。逆に `letter-spacing` を 0 に戻すのも不可（palt で詰めた分だけ窮屈になる）
- 角丸・影・グラデーションを足さない
- 有彩色を UI に持ち込まない。CTA を目立たせたくなっても、色ではなく余白と位置で解決する
- 中間グレーの面（`#f5f5f5` のようなカード面）を作らない。**白と黒の二値**を崩さない
- フォームだけ `Open Sans` にしない（実サイトの取り残しを再現しない）

---

## 8. Responsive Behavior

### Breakpoints

| Name | Width | 説明 |
|------|-------|------|
| Mobile | ≤ 767px | 1 カラム。ヘッダーはハンバーガー（`navbar-toggle`）に格納、黒タイルは縦積み |
| Tablet | 768–1024px | 2 カラム。Bootstrap 系のグリッドを使用 |
| Desktop | > 1024px | 3 カラムの黒タイル＋全幅 KV |

### タッチターゲット

- 最小サイズ: 44px × 44px（WCAG基準）
- アウトラインボタンは `padding: 15px` ＋ 行間 2.0 で高さ 46px 前後が確保される

### フォントサイズの調整

- 本文 16px は据え置き。段落 14px もモバイルで下げない（明朝は小さくすると急に読みづらくなる）
- Display 48px → モバイルでは 28〜32px。**ただし weight 300 と行間 1.1 は維持する**
- Menu Title 28px → 20〜22px
- **行間 2.0 と字間 0.96px はモバイルでも変えない**。この 2 つがブランドの字面の芯

---

## 9. Agent Prompt Guide

### クイックリファレンス

```
Background:     #ffffff   （純白）
Ink:            #000000   （文字・黒タイル・フッターの面）
KV Overlay:     rgba(0,0,0,0.3)
Sub Text:       #333333   （サブメニュー）
Caption:        #666666   （著作権・日付）
Muted:          #999999   （アウトラインボタンの文字）
Border:         #cccccc   （罫・ボタンの枠）
Font:           ryo-display-plusn, serif    ← 和文・欧文ともこれ 1 書体のみ
Weight:         300（見出し） / 400（サブメニュー） / 500（本文・ナビ） / 700（アウトラインボタン）
Body Size:      16px（既定） / 14px（段落）
Line Height:    2.0（本文系すべて） / 1.1（見出しのみ）
Letter Spacing: 0.96px 固定（16px で 0.06em、12px で 0.08em、48px で 0.02em）
Feature:        font-feature-settings: "palt"（グローバル。本文にも掛ける）
Radius:         0px（全域）
Shadow:         none（1px solid #cccccc の罫線で代替）
CTA:            transparent + 1px solid #cccccc + color #999999 + padding 15px + weight 700
```

### プロンプト例

```
玉川堂（GYOKUSENDO）のデザインシステムに従って、商品紹介のページを作成してください。
- 和文も欧文も ryo-display-plusn（無ければ serif）の 1 書体だけで組む。ゴシックは一切使わない
- font-feature-settings: "palt" と letter-spacing: 0.96px をサイト全体に掛ける
  （palt で詰めてから均一に開き直す二段構え）
- line-height は本文系すべて 2.0、見出しだけ 1.1 の二極にする
- 見出しは font-weight 300（Light）、本文とナビは 500（Medium）。大きい見出しほど細く組む
- 地は白 #ffffff、文字は #000000。中間グレーの面は作らない
- グレーは #333333（サブメニュー） / #666666（日付・著作権） / #999999（ボタン文字） /
  #cccccc（罫）の 4 段だけ使う
- ナビゲーションは写真の上に #000000 のベタタイルを置き、白の明朝で見出し 28px（行間 2.0）＋
  説明 14px（行間 1.5）を組む
- CTA は transparent + 1px solid #cccccc + 文字色 #999999 + padding 15px + weight 700。目立たせない
- KV は工房写真に rgba(0,0,0,0.3) の暗幕を重ね、白のロゴと言語切替を載せる
- 角丸は全域 0px。影は使わず、1px の罫線と白黒の二値で階層を作る
- 銅の色（赤銅・紫金・黒味銅）は写真と商品説明でのみ示し、UI の面色や罫には使わない
```
