# DESIGN.md — 食べチョク(Tabechoku) > 食べチョク(https://www.tabechoku.com/)のデザイン仕様書。 > 農家・漁師から直接買える**産直通販マーケットプレイス**。商品 42,363 点/生産者 11,896 軒が並ぶ。 > **ブランド色は「金茶」1 系統**。`--Color-Primary-Gold-70: #cab270`(CSS 出現 154 回)と `Gold-60: #9f8745`(138 回)の 2 段で、面と文字を使い分ける。**日本の EC で「金」を主色に据えるのは珍しく、水引・のし・熨斗紙の意匠と地続きになっている** > **トーナルスケールを持つ**。`--Color-{Primary-Gold, Orange, Red, Blue, Green, Yellow, Gray}-{0,10,20,…,95,99,100}` の **13 段 × 7 系統**。Material 3 と同じ **「0 が黒・100 が白」** の並びで、**数字が大きいほど明るい**(Nachiguro 等の「500 が基準・900 が最暗」とは逆向き) > **見出しに明朝が入る**。金色のセクション見出しだけ `font-family: "Noto Serif JP", serif` + `color: #9f8745`。他はすべて **ヒラギノ角ゴ Pro**(**ProN ではない**) > **`letter-spacing` を px で細かく刻む**。`.4px`(152 回)`.5px`(111 回)`.15px`(109 回)`.25px`(87 回)`.1px`(66 回)——**サイズごとに 5 段階を使い分ける** > 実サイトの computed style 実測(2026-08-28 取得。トップ + 商品一覧 `/products`)+ `user-*.css`(731KB)の直接 grep に基づく。 --- ## 1. Visual Theme & Atmosphere - **デザイン方針**: **白地 + 生成りの面 + 金茶**。贈答・産直という文脈に合わせて、彩度の高い EC 色(赤やオレンジのセール色)を主役にせず、**金茶と生成りで「ちゃんとしたもの」の顔**を作る。オレンジは告知にだけ差す - **食べチョクについて**: 生産者が直接出品・発送する産直通販。「生産者からチョクでお届け。」がタグライン。**商品と同じ数だけ生産者の顔が並ぶ**ため、カードには産地名(`長野県` `青森県`)とレビュー語(`嬉しい` `すごい`)のチップが多く付く - **密度**: **高い**。商品グリッド、絞り込みチップ、産地チップ、レビュー感情チップが同居する。本文 14px / 行間 1.5 で情報量を優先している - **キーワード**: 金茶 `#cab270`、生成り `#f5f1eb`、明朝の見出し、radius 4px、px 指定の字間、影ほぼ無し - **特徴**: - **主色が 2 段の金**。**面には `#cab270`(Gold-70)、文字には `#9f8745`(Gold-60)** と役割が分かれている。金の上には必ず白文字を置く - **radius 4px が既定**。CSS 出現 **149 回**で最多。次が `50%`(105 回、アイコン円)、`8px`(38 回)、`16px`(38 回、チップ)。**ボタンは 4px の浅い角丸**で、ピルはチップ・バッジ専用 - **影をほとんど使わない**。`box-shadow` の宣言は全 CSS で 12 個しかなく、うち 3 個は Bulma 既定の `0 2px 3px rgba(10,10,10,.1), 0 0 0 1px rgba(10,10,10,.1)`。**階層は面色(生成り `#f5f1eb` / 灰 `#f2f2f2` / `#e9e9e9`)で作る** - **`letter-spacing` が px 指定**。`.4px` `.5px` `.15px` `.25px` `.1px` の 5 段階を、フォントサイズごとに割り当てている。**em ではないので、サイズを変えると字間比率が崩れる** - **`font-feature-settings` は `normal`**。**`palt` を使わない** - **CSS フレームワークは Bulma**(`rgba(10,10,10,.1)` の影と `#ffdd57` が痕跡)。ただし色・角丸はほぼ全部上書きされている - **ブレイクポイントは 768/769px の 1 本**。`min-width: 769px` が **421 回**、`max-width: 768px` が **284 回**。他は 960/961px が 10 回程度 --- ## 2. Color Palette & Roles > 地は `#ffffff`(`pageBackground.resolved` = `rgb(255,255,255)` / 根拠 `html`)。トップ・一覧ページとも同じ。 ### Brand(Primary Gold) `--Color-Primary-Gold-*` の 13 段スケール。**数字が大きいほど明るい**(0 = 黒、100 = 白)。 | トークン | 値 | 用途 | CSS 出現 | |---------|-----|------|---------| | `Gold-30` | `#564101` | — | — | | `Gold-40` | `#715c1b` | — | — | | `Gold-50` | `#8b7533` | — | — | | **`Gold-60`** | **`#9f8745`** | **文字色**。明朝の見出し、チップの文字、ページネーションのリンク、「初めての方へ」の帯 | **138 回** | | **`Gold-70`** | **`#cab270`** | **面色**。ログインボタン、定期便 CTA、バッジ、タブの選択状態、ページネーションの現在ページ | **154 回** | | `Gold-80` | `#decda2` | 淡い罫・面 | — | | `Gold-90` | `#f0e8d5` | 淡い面 | 16 回 | | **`Gold-95`** | **`#f5f1eb`** | **生成りの面**。「すぐに出荷」バッジ、レビュー感情チップ、お知らせ帯、産地リストの面 | **80 回** | | `Gold-99` | `#fcfaf8` | ほぼ白の面 | — | > **`#f5f3e9`** も実測で 34 回現れる(「すべての商品を見る」「すべての生産者を見る」の面、SNS ブロックの 5px 罫)。`Gold-95` とは別値の生成りで、**トップページ専用の `top.css` 側で定義されている**。 ### Accent(告知・注意) | 役割 | トークン | 値 | 用途 | |------|---------|-----|------| | **お知らせ** | `--Color-Orange-50` | **`#f45800`** | 「お知らせ」バッジの面(白文字 14px / 700)。**セールではなく告知に使う** | | Orange 明 | `--Color-Orange-60` | `#ff711f` | ホバー | | Alert | `--Color-Red-40` | `#c30d23` | エラー・警告の文字。19 回 | | Alert 面 | `--Color-Red-50` | `#db3347` | 小バッジの面。16 回 | | Bulma 既定 | — | `#ffdd57` | 一部の注意ラベル(黒文字)。20 回 | ### Neutral(`--Color-Gray-*`) | トークン | 値 | 用途 | CSS 出現 | |---------|-----|------|---------| | `Gray-20` | **`#212121`** | **本文の既定色**(`body`) | 125 回 | | `Gray-30` | `#333333` | 濃いめの文字 | — | | `Gray-60` | **`#858585`** | 非選択のナビ・補助テキスト | 80 回 | | `Gray-70` | `#b8b8b8` | プレースホルダ・無効 | 49 回 | | `Gray-80` | `#d9d9d9` | 罫 | — | | `Gray-90` | **`#ededed`** | **セカンダリボタンの面**(「新規会員登録」「すべての投稿を見る」) | — | | `Gray-95` | **`#f2f2f2`** | 汎用の面・入力欄の地 | **181 回** | | `Gray-99` | `#f9f9f9` | 最も淡い面(産地チップの地) | 49 回 | 実測では `#e9e9e9`(109 回)も多用され、**サイズチップ(`約1.8kg` `約5kg`)の面と罫**に使われる。`#403a39`(濃い茶褐色)はヘッダーのアイコンバッジ。 ### 面色のまとめ **白 `#ffffff` → 生成り `#f5f1eb` / `#f5f3e9` → 灰 `#f9f9f9` → `#f2f2f2` → `#e9e9e9` → `#ededed`** の 6 段。**生成りは「和・贈答」の面、灰は「機能」の面**という使い分け。 --- ## 3. Typography Rules ### 3.1 和文フォント - **ゴシック体**: **ヒラギノ角ゴ Pro**(`"Hiragino Kaku Gothic Pro"` → `"ヒラギノ角ゴ Pro W3"`)→ メイリオ → Osaka → MS Pゴシック - **ProN ではなく Pro**。旧字体の字形(`辻` `葛` 等)が JIS90 系になる。Apple 日本語サイトと同じ選択 - **明朝体**: **`"Noto Serif JP", serif`**。**金色のセクション見出し専用**(`color: #9f8745` + `text-align: center` とセットで宣言) ### 3.2 欧文フォント - **サンセリフ**: arial → helvetica → Lucida Grande(**和文の後ろ**) - 一部のバッジ・アイコンに `Arial, sans-serif` 単独指定(22 回) ### 3.3 font-family 指定 ```css /* 本文・見出し(サイト全体) */ font-family: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, メイリオ, Osaka, "MS PGothic", arial, helvetica, "Lucida Grande", sans-serif; /* 金色のセクション見出しだけ明朝 */ font-family: "Noto Serif JP", serif; color: #9f8745; text-align: center; /* 一部の小バッジ・数字 */ font-family: Arial, sans-serif; ``` **フォールバックの考え方**: - **和文優先**。ヒラギノを先頭に置き、欧文もヒラギノの欧文グリフで組む - **Windows 向けにメイリオ → MS Pゴシックまで下げている**レガシー寄りのスタック。ただし**先頭がヒラギノなので Mac/iOS では正しく組まれる**(メイリオ先頭のスタックとは別物) - 明朝は **Web フォントではなく OS の Noto Serif JP に任せる**。未搭載環境では `serif`(游明朝/ヒラギノ明朝)に落ちる ### 3.4 文字サイズ・ウェイト階層 | Role | Size | Weight | Line Height | Letter Spacing | Color | 備考 | |------|------|--------|-------------|----------------|-------|------| | Heading 1 | 24px | 700 | 33.6px (**1.4**) | normal | `#212121` | セクション大見出し | | Heading 2 (明朝) | 14px | 700 | 19.6px (**1.4**) | .1px (0.007em) | **`#9f8745`** | **Noto Serif JP**。金色の小見出し | | Heading 3 (A) | 16px | 700 | 24px (**1.5**) | .5px (**0.031em**) | `#212121` | カード見出し | | Heading 3 (B) | 16px | 700 | 22.4px (**1.4**) | .15px (0.009em) | `#000000` | 一覧の見出し | | Heading 4 | 16px | 600 | 25.6px (**1.6**) | .5px (**0.031em**) | `#000000` | サブ見出し。**600 を使う** | | Body (L) | 16px | 400 | 24px (**1.5**) | .5px (**0.031em**) | `#212121` | 説明文 | | Body | **14px** | 400 | 21px (**1.5**) | .5px (**0.036em**) | `#212121` | **`body` の既定** | | Body (loose) | 14px | 400 | 22.4px (**1.6**) | .25px (0.018em) | `#000000` | 商品説明 | | Body (bold) | 14px | 700 | 19.6px (**1.4**) | .1px (0.007em) | `#212121` | 強調 | | Label | 14px | 700 | 14px (**1.0**) | .5px | `#ffffff` / `#212121` | ボタンのラベル | | Caption | 13px | 600 | 19.5px (**1.5**) | .5px (**0.038em**) | `#000000` | 補足 | | Caption (S) | 12px | 600 | 18px (**1.5**) | .5px (**0.042em**) | `#9f8745` | 金色の注記 | | Chip | 12px | 700 | 18px (**1.5**) | .4px (**0.033em**) | 面による | バッジ・チップ | | Micro | 11px | 400 | 15.4px (**1.4**) | .5px (**0.045em**) | `#000000` | 最小の注記 | | Micro (chip) | 10px | 600 | — | .5px (**0.05em**) | `#000000` | サイズチップ | ### 3.5 行間・字間 - **本文の行間**: **1.5**(14px → 21px)。商品説明は **1.6**(14px → 22.4px) - **見出しの行間**: **1.4〜1.5** - **字間**: **px 指定で 5 段階**。CSS 中の出現順に `.4px`(152 回)/`.5px`(111 回)/`.15px`(109 回)/`.25px`(87 回)/`.1px`(66 回)/`0`(47 回) | px 値 | 主な適用サイズ | em 換算 | |-------|--------------|---------| | `.5px` | 10〜16px の本文・ラベル | 0.031〜0.05em | | `.4px` | 12px のチップ | 0.033em | | `.25px` | 14px の商品説明 | 0.018em | | `.15px` | 16px の見出し | 0.009em | | `.1px` | 14px の太字・明朝見出し | 0.007em | **小さい文字ほど em 換算で字間が広がる**設計(10px で 0.05em、16px で 0.009em)。**px のまま移植すると比率が壊れる**ので、em に換算してから使うこと ### 3.6 禁則処理・改行ルール ```css word-break: break-all; overflow-wrap: break-word; line-break: strict; ``` - 商品名・生産者名はユーザー入力。カード内は 2 行で省略する前提で組む - 産地表記(`愛知県 名古屋市`)は**全角スペースではなく半角スペース + 改行**で 2 行にする ### 3.7 OpenType 機能 ```css font-feature-settings: normal; /* palt を使わない */ ``` - **`palt` を適用しない**。代わりに `letter-spacing` を px で細かく調整している ### 3.8 縦書き 該当なし。 --- ## 4. Component Stylings ### Buttons **Primary(ログイン / すべての定期便を見る)** - Background: **`#cab270`**(Gold-70) - Text: `#ffffff` - Padding: `12px 10px`(ヘッダー) / `16px`(本文中の大ボタン) - Border Radius: **`4px`** - Font Size: `14px`(小) / `16px`(大) / Weight: `700` / Letter Spacing: `.5px` - Shadow: なし **Secondary(新規会員登録 / すべての投稿を見る / カテゴリー一覧を見る)** - Background: **`#ededed`**(Gray-90) - Text: `#212121` - 他は Primary と同一(padding / radius / サイズ / ウェイト) - **形を変えず、面を金 → 灰に落として優先度を下げる** **Outline(食べチョクとは? / 食べチョク基準 / 品質保証について)** - Background: `#ffffff` / Text: `#000000` - Border: `1px solid #dddddd` / Border Radius: **`8px`** - Padding: `0 20px` / 16px / 700 / `.5px` **Text CTA(すべての商品を見る / すべての生産者を見る)** - Background: `#f5f3e9`(生成り) / Text: `#000000` / Border Radius: **`0px`** - Padding: `13px 16px` / 14px / 700 / `.5px` **Ribbon(初めての方へ)** - Background: **`#9f8745`**(Gold-60。**文字色として使う金を、ここだけ面に使う**) - Text: `#212121` / Border Radius: **`9px 0 0`**(左上だけ丸める帯) - Padding: `8px 8px 8px 12px` / 14px / 400 ### Chips / Badges | 種別 | 面 | 文字 | Radius | Padding | Size | |------|----|------|--------|---------|------| | トレンド | `#cab270` | `#ffffff` | **`20px`**(ピル) | `8px 12px` | 12px / 700 / `.4px` | | グランプリ受賞商品 | `#cab270` | `#ffffff` | `16px` | `4px 8px` | 12px / 700 / `.4px` | | お知らせ | **`#f45800`** | `#ffffff` | `4px` | `4px 8px` | 14px / 700 / `.1px` | | すぐに出荷 | `#f5f1eb` | `#000000` | `20px` | `4px 6px` | 10px / 700 / `.5px` | | レビュー感情(嬉しい / すごい) | `#f5f1eb` | **`#9f8745`** | `14px` | `0 8px 0 0` | 12px / 600 / `.5px` | | サイズ(約1.8kg) | `#e9e9e9` | `#000000` | `16px` + `1px solid #e9e9e9` | `0 8px` | 10px / 600 / `.5px` | | 産地(長野県) | `#f9f9f9` | `#212121` | **`28px`** + `1px solid #e9e9e9` | `10px 14px` | 14px / 700 / `.5px` | ### SNS Buttons - Background: `#ffffff` / Text: `#222222` / Border Radius: **`30px`** - Padding: `6px 6px 6px 18px` / 13px / 700 - **枠線だけ各 SNS のブランド色**:X `#000000` / Instagram `#d92938` / Facebook `#1877f2` / LINE `#06c755` ### Filter Controls(一覧ページ) - 変更 / 決定: `#cab270` 塗り・白文字・radius **`24px`**・`1px 6px`・12px / 600 - リセット: `#ffffff` 地・`#cab270` 文字・`1px solid #cab270`・radius `24px` - 並び替えセレクト: `#ffffff` + `1px solid #e9e9e9`・radius `4px`・padding `10px` - 見出し(表示条件 / カテゴリー): `#f5f1eb` の面・`#212121`・radius `0`・padding `12px`・14px / 600 ### Tabs(商品 / 生産者) - 選択: `#cab270` 塗り・白文字・**`8px 8px 0 0`**(上だけ丸める)・padding `12px 52px 10px` - 非選択: `#ffffff` 地・`#9f8745` 文字・同じ radius ### Pagination - 現在ページ: `#cab270` 塗り・白文字・`1px solid #cab270`・radius `4px`・12px / 700 - 他ページ: 透明・`#9f8745` 文字・`1px solid #cab270`・radius `4px`・12px / 400 ### Inputs - Background: `#f2f2f2`(Gray-95) / Text: `#000000` - Border Radius: `4px` / Font Size: `14px` / `line-height: normal` - Placeholder: `#b8b8b8`(Gray-70) ### Cards - Background: `#ffffff` / Border Radius: `4px` または `8px` - Border: `1px solid #e9e9e9` - Shadow: 原則なし。強調したいときのみ `2px 2px 6px rgba(0,0,0,.15)` --- ## 5. Layout Principles ### Radius Scale | Value | 出現 | 用途 | |-------|------|------| | **`4px`** | **149 回** | **ボタン・カード・入力欄・バッジ。既定** | | `50%` | 105 回 | アイコンの円・アバター | | `8px` | 38 回 | アウトラインボタン・大きめのカード | | `16px` | 38 回 | チップ | | `20px` | 15 回 | ピル型チップ | | `12px` | 12 回 | 中サイズ | | `10px` | 12 回 | 中サイズ | | `0` | 10 回 | セクション帯 | ### Container - Max Width: **`1240px`**(5 回)/ `1200px`(2 回)/ `1000px`(1 回) - 記事系の狭いブロック: `700px` / `600px` / `500px` / `400px` ### Breakpoints(CSS の実出現) | Query | 出現 | |-------|------| | `min-width: 769px` | **421 回** | | `max-width: 768px` | **284 回** | | `max-width: 960px` | 10 回 | | `min-width: 961px` | 9 回 | | `min-width: 1239px` | 4 回 | | `max-width: 414px` | 4 回 | **768/769px の 1 本が実質の分岐点。** --- ## 6. Depth & Elevation **影の宣言は全 CSS で 12 個しかない。** 階層は面色と 1px の罫で作る。 | Level | Shadow | 出現 | 用途 | |-------|--------|------|------| | 0 | `none` | 6 回 | 既定 | | 1 | `0 2px 3px rgba(10,10,10,.1), 0 0 0 1px rgba(10,10,10,.1)` | 3 回 | **Bulma 既定**。ドロップダウン | | 2 | `2px 2px 6px rgba(0,0,0,.15)` | 2 回 | 浮かせたカード | | 2' | `2px 2px 5px rgba(0,0,0,.2)` | 2 回 | フローティング要素 | | — | `inset 0 0 0 2px #9f8745` | 1 回 | **選択状態の内側 2px 罫**(金) | **カードに影を付けない。** 代わりに `1px solid #e9e9e9` の罫か、生成り `#f5f1eb` の面で区切る。 --- ## 7. Do's and Don'ts ### Do(推奨) - **面には `#cab270`(Gold-70)、文字には `#9f8745`(Gold-60)** を使い分ける。金の面には必ず白文字 - **radius は 4px**。チップ・バッジだけ 16〜28px のピルにする - **主 CTA `#cab270` / 副 CTA `#ededed`** と、形を変えずに面色だけで優先度を落とす - **金色のセクション見出しには `"Noto Serif JP", serif`** を当てる(食べチョクらしさの核) - 面は **白 → 生成り `#f5f1eb` → 灰 `#f2f2f2` / `#e9e9e9`** の順に重ねる - **`letter-spacing` はサイズごとに 5 段階**(`.1px` / `.15px` / `.25px` / `.4px` / `.5px`)。移植するときは **em に換算**する - 影を使わず、`1px solid #e9e9e9` の罫で区切る - オレンジ `#f45800` は**告知(お知らせ)にだけ**使う ### Don't(禁止) - **金を面と文字で取り違えない**。`#9f8745` を大きな面に塗ると重く、`#cab270` を白地の文字にするとコントラストが足りない(例外は「初めての方へ」の帯のみ) - **トーナルスケールの向きを間違えない**。`Gold-70` は `Gold-60` より**明るい**(0 が黒、100 が白)。他システムの「数字が大きいほど濃い」と逆 - **ピルをボタンに使わない**(ボタンは 4px、ピルはチップ専用) - **カードに影を付けない** - **`palt` を有効にしない**(`font-feature-settings: normal`) - **ヒラギノ角ゴ ProN を指定しない**(このサイトは **Pro**) - オレンジや赤をセール色として広く使わない(**贈答の顔が崩れる**) - 日本語本文に `line-height: 1.2` 以下を使わない(本文は 1.5、商品説明は 1.6) --- ## 8. Responsive Behavior ### Breakpoints | Name | Width | 説明 | |------|-------|------| | Small Mobile | ≤ 414px | チップの折り返しを調整 | | Mobile | ≤ 768px | 1 カラム。ヘッダーはハンバーガー + 検索 | | Desktop | ≥ 769px | **主レイアウト**。左サイドに絞り込み、右に商品グリッド | | Wide | ≥ 961px / ≥ 1239px | コンテナ 1240px まで拡張 | ### タッチターゲット - ヘッダーの主ボタンは `padding: 12px 10px` + 14px 行高 = **約 38px**。**モバイルでは `padding: 16px` の大ボタン(約 48px)を使う** ### フォントサイズの調整 - 本文 14px は据え置き(**もともと小さめ**)。見出し 24px は 18〜20px 相当へ縮める --- ## 9. Agent Prompt Guide ### クイックリファレンス ``` Primary Color: #cab270 (面 / Gold-70) Primary Text: #9f8745 (文字 / Gold-60) Accent: #f45800 (お知らせのみ / Orange-50) Text Color: #212121 (補助は #858585) Background: #ffffff (面 #f5f1eb 生成り / #f2f2f2 灰 / 罫 #e9e9e9) Font: "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, メイリオ, Osaka, "MS PGothic", arial, helvetica, "Lucida Grande", sans-serif Serif: "Noto Serif JP", serif (金色の見出しのみ) Body Size: 14px / line-height 1.5 / letter-spacing .5px (0.036em) Radius: ボタン 4px / チップ 16〜28px / アウトライン 8px Shadow: なし(罫 1px solid #e9e9e9 で代替) palt: off ``` ### プロンプト例 ``` 食べチョクのデザインシステムに従って、産直商品のカードグリッドを作成してください。 - 主 CTA「カートに入れる」は面 #cab270・白文字・radius 4px・16px/700・letter-spacing .5px - 副ボタン「あとで見る」は同じ形のまま面を #ededed・文字 #212121 に落とす - セクション見出しは "Noto Serif JP", serif / color: #9f8745 / 中央揃え - 商品名は 16px/700/line-height 1.5/letter-spacing .15px、 生産者名は 14px/400/line-height 1.5/letter-spacing .5px、色は #212121 - 産地チップは #f9f9f9 の地に 1px solid #e9e9e9・radius 28px・14px/700 - レビューの感情チップ(嬉しい・すごい)は #f5f1eb の地に文字 #9f8745・radius 14px・12px/600 - カードに影は付けず、1px solid #e9e9e9 の罫で区切る - 本文フォントは "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", Meiryo, … (ProN ではない) - font-feature-settings は normal(palt を使わない) ```