# DESIGN.md — 大分県立美術館(OPAM) > 大分県立美術館 / Oita Prefectural Art Museum(https://www.opam.jp/)のデザイン仕様書。 > 2015 年開館。坂茂の設計による、街に開かれた「出会いと五感のミュージアム」。 > 最大の特徴は、**すべてのボタン・バッジ・ステータスを pill(`border-radius: 100px`)で統一**すること。矩形のボタンが 1 つも存在しない。 > 色は **ティール `#027e73`(操作)と サンド `#dbcea5`(展覧会)の二軸**。**ティールは「押せるもの」、サンドは「展覧会というコンテンツ」**という役割分担が全ページで守られている。 > そして **`letter-spacing: 0.04em` と `font-weight: 500` が `body` に掛かる**。**本文が Regular ではなく Medium** で、地の文字がわずかに太い。 > 実サイトの computed style 実測(2026-08-12 取得。トップ+「展覧会」ページ)に基づく。 --- ## 1. Visual Theme & Atmosphere - **デザイン方針**: **明るいグレーの地に、丸い操作系**。すべての操作要素が pill で、角のある要素が存在しない。**「公共施設の情報の多さ」を、形の統一で整理している** - **OPAM について**: 「出会いと五感のミュージアム」がコンセプト。**開館日カレンダー・展覧会・イベント・教育普及・カフェ・ショップ**と情報の種類が多く、それを**バッジの色で分類し、形(pill)で統一する**設計になっている - **密度**: 高密度。トップは KV カルーセル → カレンダー(左に当日情報、右に月間カレンダー)→ 展覧会 → イベント → 施設 と続く。**1 画面に複数の情報種別が同時に並ぶ**ため、色による分類が効く - **キーワード**: `#f6f6f6` の地、ティール `#027e73`、サンド `#dbcea5`、全 pill(radius 100px)、body weight 500、ls 0.04em、Noto Sans JP - **特徴**: - **`border-radius: 100px` の pill が全操作要素の既定**。ボタン・バッジ・タブ・絞り込み・検索——すべて pill。**矩形のボタンが 1 つも存在しない** - **ステータスは `border-radius: 50%` の円**。「開催中」「開催予定」「開催終了」「申込不要」は**正円の中に文字を入れる**。pill(横長)と円(正円)を役割で分ける - **色の二軸**: **ティール `#027e73` = 押せるもの**(検索・絞り込み実行・アウトラインの枠)、**サンド `#dbcea5` = 展覧会というコンテンツ**(バッジ・当日情報ブロック) - **`body` に `font-weight: 500` が掛かる**。日本語サイトでは珍しく、**地の文字が Regular より一段太い** - **`letter-spacing: 0.04em` が `body` から全要素に継承される**。見出しも本文もバッジも同じ字間で、**例外は「本日開館」の 0.27em だけ** - **ページ背景は `#f6f6f6`**(純白ではない)。カードや情報ブロックを白で置くことで浮かせる - **`box-shadow` は 1 段だけ**(`rgba(0,0,0,0.16) 0 0 6px`)。**上下左右に均等な、方向を持たない影** - **`palt` を掛けない**(`font-feature-settings: normal`) --- ## 2. Color Palette & Roles > 実測値。地は `#f6f6f6`(`pageBackground.resolved` = `rgb(246,246,246)` / 根拠 `viewportTopBySample`)。**ティール系(操作)とサンド系(コンテンツ)が明確に分離**しており、その 2 軸に補助色が加わる構成。 ### Brand(ブランド) - **Teal** (`#027e73`, rgb 2,126,115): **主色**。検索ボタン、「この条件で絞り込む」、アウトラインボタンの枠、「開館」バッジ、「開催中」ステータス円。**「押せるもの」の色** - **Bright Teal** (`#1bbc9b`, rgb 27,188,155): 展覧会ページの月タブ(8月 / 9月 / 10月)の面。主色より明るく彩度が高い。**時間軸のナビゲーション専用** - **Mint** (`#75cec6`, rgb 117,206,198): 「イベント」バッジの面。ティールの薄版 - **Pale Mint** (`#c7eae7`, rgb 199,234,231): 「開催予定」ステータス円の面。文字は **`#00675e`**(rgb 0,103,94) - **Pale Green** (`#e7eee7`, rgb 231,238,231): 「印刷する」ボタンの面。**ほぼ無彩色に見える最も薄いティール** - **Sand** (`#dbcea5`, rgb 219,206,165): **第 2 の主色**。「企画展」「コレクション展」「MAPO」「展覧会」バッジ、トップの当日情報ブロックの面。**「展覧会というコンテンツ」の色** - **Gold** (`#c4aa5c`, rgb 196,170,92): サンドの濃版。区切り罫・強調 - **Apricot** (`#ecb576`, rgb 236,181,118): 「お知らせ」バッジの**枠線のみ**に使う(面は白)。**面を持たない唯一のバッジ色** - **Navy** (`#374c9f`, rgb 55,76,159): 「申込不要」ステータス円の面。**ティール/サンドのどちらにも属さない情報**に当てる ### Calendar(カレンダー専用) - **Sky** (`#c5d8f2`, rgb 197,216,242): **開館延長日(20 時まで)のセル**の面。カレンダー内でしか使わない - **Pale Slate** (`#e2e5ec`, rgb 226,229,236): カレンダーの枠・区切り - **Gray Legend** (`#d4d4d4`, rgb 212,212,212): 凡例ブロックの面、「カフェ」「ミュージアムショップ」バッジの面 - **Mid Gray** (`#757575`, rgb 117,117,117): 「開催終了」ステータス円の面(文字は白) ### Neutral(面・文字) - **Background** (`#f6f6f6`, rgb 246,246,246): **ページ地色**。純白ではない - **Surface** (`#ffffff`): カード・情報ブロック・アウトラインボタンの面。**地より明るいことで浮く** - **Surface 2** (`#eef0ee`, rgb 238,240,238): フッター上部の面 - **Ink** (`#323131`, rgb 50,49,49): **主文字色**。純黒 `#000000` を使わない、わずかに赤みのある濃灰 - **Ink Muted** (`#5e606e`, rgb 94,96,110): 「検索条件をクリア」等の弱いラベル - **Ink Form** (`#444746`, rgb 68,71,70): 入力欄の文字色 - **Border** (`#a3a3a3`, rgb 163,163,163): 「会期」等の弱い枠バッジ - **Back to Top** (`#d5d6d5`, rgb 213,214,213): ページトップへボタンの面 ### Semantic(意味的な色) 意味色はステータス円が担う。**エラー色は現れない**ため、実装時は以下を目安にする。 - **Danger/Error**: `#b3312a` 目安。**ティール `#027e73` と補色関係になるため彩度を落とす** - **Warning**: `#c4aa5c`(既存の Gold)を流用する。新しい色を足さない - **Success**: `#027e73`(既存の Teal)を流用する - **非活性**: 面 `#d4d4d4` / 文字 `#757575`(「開催終了」と同じ扱い) --- ## 3. Typography Rules > **`body` に `font-weight: 500` と `letter-spacing: 0.04em` が掛かる**のがこのサイトの核。地の文字が Medium で、字間が全要素に継承される。書体は Noto Sans JP 単独。 ### 3.1 和文フォント - **全要素共通**: **Noto Sans JP**(Google Fonts)。Adobe Fonts に依存しないため、**preview.html でも実サイトと同じ書体が出る** - **ウェイト**: **500(本文・UI の既定)/ 700(見出し・ボタン)** の 2 段。**400 はフォーム入力欄と一部の枠バッジにしか現れない** - **フォールバック**: `游ゴシック体` → `"Yu Gothic"` → `"ヒラギノ角ゴ ProN W3"` → `HiraKakuProN-W3` → `"ヒラギノ角ゴ Pro W3"` → `"Hiragino Kaku Gothic Pro"` → `sans-serif` - **游ゴシックを先頭のフォールバックに置く**。ヒラギノは ProN / Pro の**両方を並べる**(環境差を吸収するための冗長な指定) - **`font-weight: 500` を `body` に掛けているため、游ゴシックにフォールバックすると Medium が無い環境で Bold に飛ぶ**リスクがある。実装では **Noto Sans JP の 500 を必ず読み込む**こと ### 3.2 欧文フォント - **欧文専用の書体を持たない**。「OPAM」「Oita Prefectural Art Museum」もロゴ画像で、本文中の英数字は Noto Sans JP の字形で出る - 例外はカルーセルの閉じるアイコン(`×`)のみで、そこだけ `arial, sans-serif` が当たる。**自社の設計には持ち込まない** - 等幅フォントは使わない - **preview.html での注記**: Noto Sans JP は Google Fonts から取得できるため、**代替フォントを立てる必要がない**。実サイトと同じ書体で確認できる ### 3.3 font-family 指定 ```css /* 全要素共通 */ font-family: "Noto Sans JP", 游ゴシック体, "Yu Gothic", "ヒラギノ角ゴ ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif; /* body の既定 */ font-size: 16px; font-weight: 500; /* ← Regular ではなく Medium */ line-height: 1.5; /* 24px */ letter-spacing: 0.04em; /* 0.64px。全要素に継承される */ color: #323131; font-feature-settings: normal; /* palt は使わない */ ``` **フォールバックの考え方**: - **和文を先頭に置く**。欧文専用書体で先取りしない - **游ゴシックをヒラギノより先に置く**。Windows 環境を優先した順序 - **ヒラギノは ProN と Pro の両方**を並べる(`ProN` = JIS2004 字形、`Pro` = JIS90 字形。環境によってどちらかしか無いため) - **`font-weight: 500` が全体に掛かることを前提にする**。Medium ウェイトを持たない書体にフォールバックすると Bold に合成されて太りすぎるため、**Noto Sans JP の 500 は必須** ### 3.4 文字サイズ・ウェイト階層 | Role | Size | Weight | Line Height | Letter Spacing | Color | 備考 | |------|------|--------|-------------|----------------|-------|------| | Exhibition Title | 38px | **700** | 1.5 (57px) | 0.017em (0.64px) | `#323131` | 「ラブ! ヴァンガード!!」 | | Open Status | 37px | **700** | 1.2 (44.4px) | **0.27em (10px)** | `#ffffff` | 「本日開館」。**唯一の極端な字間** | | Page Title | 35px | **500** | 1.5 | 0.018em (0.64px) | `#323131` | 「展覧会」(h1) | | Section Head | 28px | **700** | 1.5 (42px) | 0.023em (0.64px) | `#323131` | 「カレンダー」 | | Facility Head | 28px | **500** | 1.5 (42px) | 0.023em (0.64px) | `#323131` | 「café Charité(カフェ シャリテ)」 | | Nav Head | 24px | **700** | 1.5 (36px) | 0.027em (0.64px) | `#323131` | 「OPAM について」(メガメニュー) | | Date | 22px | **700** | 1.5 (33px) | **0.09em (2px)** | `#323131` | 「2026年8月12日(水曜日)」 | | Sub Head | 20px | **700** | 1.5 (30px) | 0.032em (0.64px) | `#323131` | 「トークセッション「東勝吉をめぐって」」 | | Info | 20px | **500** | 1.5 (30px) | 0.032em (0.64px) | `#323131` | 「10時から19時まで(入場は閉館の30分前まで)」 | | Nav | 19px | **500** | 1.5 (28.5px) | 0.034em (0.64px) | `#323131` | 「美術館コンセプト」 | | Button (Primary) | 18px | **700** | 1.5 | 0.036em (0.64px) | `#ffffff` / `#323131` | 「この条件で絞り込む」「もっと見る」 | | Nav (Mega) | 18px | **700** | 1.5 (27px) | 0.036em (0.64px) | `#323131` | メガメニューの項目 | | Body | 16px | **500** | **1.5 (24px)** | **0.04em (0.64px)** | `#323131` | `body` の基準 | | Badge | 16px | **500** | 1.5 (24px) | 0.04em (0.64px) | `#323131` | 「企画展」「イベント」 | | Facility Badge | 20px | **500** | 1.5 (30px) | 0.032em (0.64px) | `#323131` | 「カフェ」「ミュージアムショップ」 | | Header Util | 15px | **500** | 1.5 (22.5px) | 0.043em (0.64px) | `#ffffff` / `#323131` | 「検索」「本文へ」 | | Small | 14px | **500** | 1.5 (21px) | 0.046em (0.64px) | `#323131` | 「閉じる」 | | Frame Badge | 14px | **400** | 1.5 | 0.046em (0.64px) | `#323131` | 「会期」。**400 が現れる数少ない箇所** | | Tag (New) | 12px | **700** | 1.5 | 0.053em (0.64px) | `#ffffff` | 「NEW」 | - **`letter-spacing` は `0.64px` の px 固定**。`body` の 16px で 0.04em にあたり、**サイズが変わっても px 値が変わらない**ため、大きい文字ほど相対的な字間は詰まって見える - **例外は 2 つだけ**: 「本日開館」の **10px(0.27em)** と、日付の **2px(0.09em)** - **ウェイトは 500 と 700 の 2 段**。**400 は例外**(フォーム入力欄と「会期」枠バッジのみ) - **`line-height` はほぼ全要素で 1.5**。見出しも本文もバッジも同じ。例外は「本日開館」の 1.2 のみ - **見出しサイズは 38 / 35 / 28 / 24 / 22 / 20 / 19 / 18 の 8 段**と細かい。公共施設らしく情報階層が多い ### 3.5 行間・字間 - **本文の行間 (line-height)**: **1.5**(16px → 24px)。**見出しも 1.5 で、行間で階層を作らない** - **例外**: 「本日開館」の 1.2 のみ(極端に字間を開くため行間を締める) - **字間 (letter-spacing)**: **`0.64px` の px 固定を `body` から全要素に継承** - 16px で **0.04em**、28px で 0.023em、38px で 0.017em - **em ではなく px で固定しているため、文字が大きくなるほど字間の比率は下がる**。これは大見出しを塊として見せる効果を持つ - **例外**: 「本日開館」**10px(0.27em)**、日付「2026年8月12日(水曜日)」**2px(0.09em)** - **`palt` は使わない**(`font-feature-settings: normal`) **ガイドライン**: - **`letter-spacing: 0.64px` を `body` に置き、個別要素で上書きしない**。これがサイト全体の統一感を作っている - **字間を大きく開くのは「本日開館」のような 1 行のステータス表示だけ**。文章に 0.1em 以上を当てない - **行間 1.5 を全要素で守る**。見出しだけ締める・本文だけ広げる、をしない - **`font-weight: 500` を `body` に置く**。個別に 400 へ落とさない(フォーム入力欄は例外) - 日付は **weight 700 + ls 2px** のセットで作る(字間だけを真似しない) ### 3.6 禁則処理・改行ルール ```css overflow-wrap: break-word; line-break: strict; word-break: normal; ``` **禁則対象**: - 行頭禁止: `)」』】〕〉》、。,.・:;?!` - 行末禁止: `(「『【〔〈《` - **展覧会名は長く、記号を含む**(「ラブ! ヴァンガード!! 前衛を愛した、あるコレクターの眼 ―草間彌生、ヘイター and more」)。**感嘆符の直後・ダッシュ `―` の直後で折らない** - **施設名は「欧文(カタカナ)」の組**で書く(`café Charité(カフェ シャリテ)`)。**欧文と丸括弧の間で折らない** - 日付(`2026年8月12日(水曜日)`)は**全体を 1 行に保つ**(`white-space: nowrap`) - 時刻表記(`10時から19時まで`)は**数字と単位の間で折らない** - バッジのラベル(「企画展」「コレクション展」「申込不要」)は折り返さない - 「開館延長日(20時まで)」のような括弧つきの補足は、**括弧の前で折る** ### 3.7 OpenType 機能 ```css font-feature-settings: normal; /* palt を掛けない */ ``` - **`palt` は使わない**。Noto Sans JP の等幅の字面をそのまま使い、**`letter-spacing: 0.64px` で開く方向にのみ調整する** - **`font-weight: 500` と `letter-spacing` の組み合わせが可読性を作っている**。`palt` で詰めると Medium の字面が密集して読みにくくなる - **和欧が同じ書体**なので `café Charité(カフェ シャリテ)` のような混植でも字形が揃う - カレンダーの日付は桁を揃えたいので、必要なら `font-feature-settings: "tnum"` を足す(現行サイトは未使用) ### 3.8 縦書き - 現行サイトは全面横組み(`writing-mode: horizontal-tb`) - 展覧会のステートメントや作品キャプションで縦組みを使う場合は以下 ```css writing-mode: vertical-rl; text-orientation: mixed; font-family: "Noto Sans JP", 游ゴシック体, "Yu Gothic", "ヒラギノ角ゴ ProN W3", sans-serif; font-weight: 500; letter-spacing: 0.04em; /* 横組みと同じ字間を維持する */ line-height: 1.8; /* 縦組みは横組みの 1.5 より広げる */ ``` - 縦組み中の英数字・年号は `text-combine-upright: all` で 2 桁までを縦中横にする - **pill のバッジは縦組みに入れない**(横長の形が縦組みの行を割る)。縦組みブロックの外に置く --- ## 4. Component Stylings ### Buttons **Outline Pill(最も使用頻度の高い形)** - Background: **`#ffffff`** - Text: `#323131` - Border: **`1px solid #027e73`**(ティール) - Padding: **`10px 20px`**(幅広版は `10px 40px`) - Border Radius: **`100px`** - Font: 18px / **weight 700** / lh 1.5 / ls 0.64px - 例: 「展覧会年間スケジュール」「もっと見る」「お知らせ一覧へ」「詳細を確認する」「検索条件をクリア」 - **枠だけがティール、文字は本文色**。**「押せる」ことを枠の色で示し、文字は読ませる** **Filled Pill(決定操作)** - Background: **`#027e73`**(ティール) - Text: `#ffffff` - Border: なし - Padding: **`12px 40px`** - Border Radius: **`100px`** - Font: 18px / **weight 700** / lh 1.5 - 例: 「この条件で絞り込む」「検索」 - **面を塗るのは「実行する」操作だけ**。遷移は必ずアウトライン **Soft Pill(副次操作)** - Background: **`#e7eee7`**(ペールグリーン) - Text: `#323131` - Border: なし - Padding: `12px 40px` - Border Radius: **`100px`** - Font: 18px / weight 700 - 例: 「印刷する」 **Tab Pill(絞り込みタブ)** - Background: `#ffffff`(非選択)/ **`#dbcea5`**(選択中・展覧会) - Text: `#323131` - Border: **`1px solid #027e73`**(非選択)/ `1px solid #dbcea5`(選択中) - Padding: **`5.4px 18px`**(`8px 16px` の版もある) - Border Radius: **`100px`** / **`50px`** - Font: 18px / weight 500(非選択)/ **700**(選択中) - 例: 「開催中」「開催予定」「開催終了」/「展覧会」「貸館の展覧会」 - **選択中は面を塗り、weight を 500 → 700 に上げる** **Search Pill(ヘッダー)** - Background: **`#027e73`** - Text: `#ffffff` - Border Radius: **`20px`**(ヘッダー内は 20px、ページ内の検索は 100px) - Padding: `10px` - Font: 15px / weight 500 ### Badges **Category Pill(展覧会・イベント)** — このサイトを象徴する形 - Background: **`#dbcea5`**(企画展 / コレクション展 / MAPO / 展覧会)/ **`#75cec6`**(イベント) - Text: `#323131` - Border: **`1px solid` 面と同色**(面と同色の枠を置いて高さを安定させる) - Padding: **`5px 16px`** - Border Radius: **`100px`** - Font: 16px / **weight 500** / lh 1.5 / ls 0.64px - **展覧会系はサンド、イベント系はミント**。色でコンテンツの種類を分ける **Outline Pill Badge(お知らせ)** - Background: **`#ffffff`** - Text: `#0a0a0a` - Border: **`1px solid #ecb576`**(アプリコット) - Padding: `5px 16px` - Border Radius: **`100px`** - Font: 12px / **weight 700** - **面を持たない唯一のバッジ**。「お知らせ」だけ枠で表す **NEW Tag** - Background: **`#323131`**(本文色そのもの) - Text: `#ffffff` - Border: なし - Padding: `5px 16px` - Border Radius: **`100px`** - Font: 12px / **weight 700** **Facility Pill** - Background: **`#d4d4d4`** - Text: `#323131` - Padding: **`8px 20px`** - Border Radius: **`100px`** - Font: 20px / weight 500 - 例: 「カフェ」「ミュージアムショップ」 **Frame Badge(会期)** — 唯一の矩形 - Background: `#ffffff` - Text: `#323131` - Border: **`1px solid #a3a3a3`** - Padding: `5px 16px` - Border Radius: **`0px`** — **サイト内で唯一の角ばった要素** - Font: 14px / **weight 400** - **「会期」「場所」等のラベル**にだけ使う。**操作要素ではないことを形で示す** ### Status Circles(ステータス円) - Border Radius: **`50%`**(正円) - Padding: `0` - Font: 16px / weight 500 / `#ffffff` - バリエーション: - **開催中 / 申込受付中**: 面 `#027e73` / 文字 `#ffffff` - **開催予定**: 面 `#c7eae7` / 文字 **`#00675e`** - **開催終了**: 面 `#757575` / 文字 `#ffffff` - **申込不要**: 面 `#374c9f` / 文字 `#ffffff` - **pill(横長)と円(正円)を役割で分ける**。分類は pill、状態は円 ### Inputs **Search Input** - Background: `#ffffff` - Border: **なし**(`0px none`) - Border Radius: **`25px`** - Padding: `0 12px 0 0` - Font: 16px / **weight 400** / Text Color: `#444746` - **枠を持たず、pill の面だけで入力欄と分かる** **Form Input** - Background: **`#f6f6f6`**(ページ地色と同じ) - Border: `1px solid #f6f6f6` - Border (focus): `1px solid #027e73`(ティール) - Border Radius: **`0px`** - Padding: **`16px 24px`** - Font: 16px / weight 400 / Text Color: `#323131` - **面色を地色と同じにして、白いカードの上で凹んで見せる** **Select(カレンダーの年月)** - Background: `#ffffff` - Border: `1px solid #027e73` - Border Radius: **`31px`** - Font: **30px / weight 700**(数字を大きく見せる) ### Cards - Background: `#ffffff`(地の `#f6f6f6` より明るい) - Border: なし - Border Radius: `0px`(**カードは角丸にしない**。角丸は操作要素の記号) - Shadow: `0 0 6px rgba(0,0,0,0.16)` - 構成: サムネイル → カテゴリ pill → タイトル(20px / weight 700)→ 会期(枠バッジ + 日付) - **カードは矩形、中の操作要素は pill**。この対比が設計の骨格 ### Today Block(当日情報) - Background: **`#dbcea5`**(サンド) - Border Radius: `0px` - Padding: `32px 40px` 目安 - 構成: 日付(22px / weight 700 / **ls 2px**)→ 区切り罫 → 開館時間(20px / weight 500) - **展覧会系の色をトップの当日情報にも当てる**。サンド=「今日ここで見られるもの」 --- ## 5. Layout Principles ### Spacing Scale | Token | Value | |-------|-------| | XS | 5px | | S | 10px | | M | 16px | | L | 24px | | XL | 40px | | XXL | 64px | | XXXL | 96px | ### Container - Max Width: **1280px** 目安(サイトは `max-width: 100%` の流動レイアウトで、コンテナ幅を CSS 変数に持たない) - 読み物カラム: **800px** 目安 - Padding (horizontal): 24〜80px - **KV カルーセルは中央に寄せ、左右に余白を残す**(全幅ブリードにしない) - ヘッダーは全幅・白地・不透過。KV に重ねない - **「本日開館」のフローティングバッジは右下に固定**(`position: fixed`) ### Grid - Columns: トップのカレンダーは **2 カラム(当日情報 / 月間カレンダー)**、展覧会一覧は **3 カラム**、施設紹介は 2 カラム - Gutter: 24px - **セクションの区切りは面色で作る**: 地 `#f6f6f6` の上に白いカードを置く。**セクションごとに地色を変えない** - 絞り込み pill は**リストの上に横 1 列**で並べる - カレンダーは **7 列の表組み**。開館延長日は `#c5d8f2`、休館日は空白で示す --- ## 6. Depth & Elevation **実測の `box-shadow` は 1 段だけ**。方向を持たない均等な影で、カードをわずかに浮かせる。 | Level | Shadow | 用途 | |-------|--------|------| | 0 | `none` | ボタン・バッジ・ステータス円・入力欄のすべて | | 1 | **`0 0 6px rgba(0,0,0,0.16)`** | 展覧会カード、イベントカード、フローティングバッジ | - **影に方向(オフセット)を持たせない**。`0 0 6px` で上下左右に均等に広げる。**「浮いている」ではなく「輪郭が柔らかい」表現** - 奥行きは主に **地 `#f6f6f6` と面 `#ffffff` の 2 段**で表現する - **ボタンに影を付けない**。pill は完全にフラット - **バッジ・ステータス円にも影を付けない** --- ## 7. Do's and Don'ts ### Do(推奨) - **すべての操作要素を pill(`border-radius: 100px`)にする**。ボタン・バッジ・タブ・絞り込みを形で統一する - **ステータスは正円(`border-radius: 50%`)にする**。pill(分類)と円(状態)を役割で分ける - **色を二軸で運用する**。ティール `#027e73` = 押せるもの、サンド `#dbcea5` = 展覧会というコンテンツ - **遷移はアウトライン pill(白地 + `1px solid #027e73`)、実行は塗り pill(面 `#027e73` + 白文字)** - **バッジの枠を面と同色で置く**(`1px solid` 面と同色)。高さを安定させる - **`body` に `font-weight: 500`(Medium)を置く**。Regular にしない - **`letter-spacing: 0.64px` を `body` に置き、全要素に継承させる**(px 固定) - **`line-height` は全要素 1.5** で通す。行間で階層を作らない - **ページ地色は `#f6f6f6`**、カードは `#ffffff`。**地より明るい面で浮かせる** - **主文字色は `#323131`**(純黒を使わない) - 「開催予定」の円は**面 `#c7eae7` + 文字 `#00675e`** のセットで作る(薄い面には濃い同系色の文字) - **影は `0 0 6px rgba(0,0,0,0.16)` の 1 段だけ**。オフセットを持たせない - 日付は **weight 700 + `letter-spacing: 2px`** のセットで作る - カードは**矩形(radius 0)**、中の操作要素は pill。この対比を保つ - **Noto Sans JP の 500 を必ず読み込む**(`body` の weight が 500 のため) ### Don't(禁止) - **矩形のボタンを作らない**。操作要素は必ず pill(唯一の例外は「会期」枠バッジ) - **カードを角丸にしない**。角丸は操作要素の記号として温存する - **ティールとサンドの役割を入れ替えない**(ティール=操作、サンド=展覧会) - **遷移ボタンの面を塗らない**(塗るのは「実行する」操作だけ) - **`body` の `font-weight` を 400 にしない**(フォーム入力欄だけが例外) - **`letter-spacing` を要素ごとに上書きしない**。`0.64px` の継承を壊さない - **字間を 0.1em 以上に開くのは 1 行のステータス表示だけ**(「本日開館」)。文章には当てない - **行間を要素ごとに変えない**(全要素 1.5) - **ページ地を純白 `#ffffff` にしない**(`#f6f6f6` でないとカードが浮かない) - **純黒 `#000000` を使わない**(主文字は `#323131`) - **影にオフセットを付けない**(`0 2px 8px` のような方向を持つ影を作らない) - **ボタン・バッジ・ステータス円に影を付けない** - **新しい色を足さない**。Warning は既存の Gold `#c4aa5c`、Success は既存の Teal `#027e73` を流用する - **`#c5d8f2`(スカイ)をカレンダーの外に持ち出さない**(開館延長日専用) - `palt` を掛けない、字間を詰める方向に動かさない - **游ゴシックへのフォールバックで weight 500 が Bold 合成されないよう、Noto Sans JP の読み込みを省略しない** --- ## 8. Responsive Behavior ### Breakpoints | Name | Width | 説明 | |------|-------|------| | Mobile | ≤ 767px | 1 カラム。カレンダーは当日情報を上、月間カレンダーを下に。絞り込み pill は横スクロール | | Tablet | 768–1024px | 2 カラム。展覧会一覧は 2 列 | | Desktop | > 1024px | カレンダーは 2 カラム、展覧会一覧は 3 列 | ### タッチターゲット - 最小サイズ: 44px × 44px(WCAG 基準)。アウトライン pill は **padding `10px 20px` + 18px / lh 1.5 で高さ 47px** を確保する - **絞り込みタブの `padding: 5.4px 18px` はモバイルで `10px 18px` に広げる**(既定のままでは高さが 40px を切る) - ステータス円は**直径 44px 以上**にする(見た目が小さくても当たり判定を確保) - カードは**カード全体をタップ領域**にする - **カレンダーのセルは 44px × 44px 以上**。7 列が入らない場合は横スクロールさせる - モバイルでは絞り込み pill の列を横スクロールさせ、**折り返して 2 行にしない** ### フォントサイズの調整 - 本文 16px は据え置く(14px を下回らない) - Exhibition Title 38px → モバイルでは 24〜26px。**weight 700 は維持する** - 「本日開館」37px → 22〜24px。**`letter-spacing: 10px` は 6px 程度に落とす**(幅が収まらないため) - Section Head 28px → 20〜22px - Button 18px → 16px まで。**pill の高さ 44px は維持する** - 日付 22px → 18px。**`letter-spacing: 2px` と weight 700 は維持する** - **`letter-spacing: 0.64px` の全体継承と行間 1.5 はモバイルでも維持する** - **`font-weight: 500` はモバイルでも維持する** --- ## 9. Agent Prompt Guide ### クイックリファレンス ``` Background: #f6f6f6 (ページ地色。純白ではない) Surface: #ffffff (カード・アウトライン pill の面。地より明るい) Teal: #027e73 (主色。押せるもの=検索・実行・枠・開催中) Bright Teal: #1bbc9b (月タブ専用) Mint: #75cec6 (イベントバッジ) Pale Mint: #c7eae7 (開催予定の円。文字は #00675e) Pale Green: #e7eee7 (印刷するボタン) Sand: #dbcea5 (第 2 の主色。展覧会バッジ・当日情報ブロック) Gold: #c4aa5c (サンドの濃版。罫・Warning に流用) Apricot: #ecb576 (お知らせバッジの枠のみ。面は白) Navy: #374c9f (申込不要の円) Sky: #c5d8f2 (開館延長日のカレンダーセル専用) Gray Legend: #d4d4d4 (凡例・施設バッジ) Mid Gray: #757575 (開催終了の円・非活性) Ink: #323131 (主文字色。純黒は使わない) Ink Muted: #5e606e (弱いラベル) Border: #a3a3a3 (会期の枠バッジ) Font: "Noto Sans JP", 游ゴシック体, "Yu Gothic", "ヒラギノ角ゴ ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif Body: 16px / weight 500 / lh 1.5 / ls 0.04em (0.64px) Weight: 500(本文・UI)と 700(見出し・ボタン)の 2 段。400 は例外 Line Height: 全要素 1.5(例外は「本日開館」の 1.2 のみ) Letter Spacing: 0.64px を body に置いて全要素に継承(px 固定) 例外: 「本日開館」10px / 日付 2px Feature: font-feature-settings: normal(palt を使わない) Radius: 操作要素は pill 100px / ステータスは円 50% / 検索窓 20〜25px / セレクト 31px / カードと会期バッジは 0 Shadow: 0 0 6px rgba(0,0,0,0.16) の 1 段のみ(オフセットなし) Container: 1280px 目安(読み物 800px) ``` ### プロンプト例 ``` 大分県立美術館(OPAM)のデザインシステムに従って、美術館の展覧会一覧ページを作成してください。 - フォントは "Noto Sans JP", 游ゴシック体, "Yu Gothic", "ヒラギノ角ゴ ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif。 ヒラギノは ProN と Pro の両方を並べる - body に font-weight: 500(Medium)と letter-spacing: 0.64px を掛け、全要素に継承させる。 Regular(400)に落とさない。字間は px 固定なので要素ごとに上書きしない - line-height は全要素 1.5 で通す。見出しだけ締める・本文だけ広げる、をしない - ウェイトは 500(本文・UI)と 700(見出し・ボタン)の 2 段だけ - ページ地色は #f6f6f6、カードは #ffffff。地より明るい面でカードを浮かせる。 主文字色は #323131 で、純黒 #000000 は使わない - 色は二軸で運用する:ティール #027e73 = 押せるもの、サンド #dbcea5 = 展覧会というコンテンツ - すべての操作要素を pill(border-radius: 100px)にする。矩形のボタンを作らない - 遷移ボタン:背景 #ffffff / 1px solid #027e73 / 文字 #323131 / padding 10px 20px / 18px weight 700 - 実行ボタン:背景 #027e73 / 文字 #ffffff / 枠なし / padding 12px 40px / 18px weight 700 - 絞り込みタブ:非選択は白地+1px solid #027e73+weight 500、 選択中は面 #dbcea5+weight 700 - カテゴリバッジも pill:展覧会系は面 #dbcea5、イベント系は面 #75cec6、 文字 #323131 / padding 5px 16px / 16px weight 500 / 枠は面と同色の 1px solid - 「お知らせ」バッジだけは面を持たず、白地+1px solid #ecb576 で表す - ステータスは正円(border-radius: 50%)にする。pill(分類)と円(状態)を形で分ける - 開催中:面 #027e73 / 白文字 開催予定:面 #c7eae7 / 文字 #00675e - 開催終了:面 #757575 / 白文字 申込不要:面 #374c9f / 白文字 - カードは矩形(border-radius: 0)にする。角丸は操作要素の記号として温存する。 唯一の矩形バッジは「会期」(白地+1px solid #a3a3a3+14px weight 400) - box-shadow は 0 0 6px rgba(0,0,0,0.16) の 1 段だけ。オフセットを付けない。 ボタン・バッジ・ステータス円には影を付けない - 日付は 22px / weight 700 / letter-spacing 2px のセットで作り、1 行に保つ - 見出しサイズは 38 / 35 / 28 / 24 / 22 / 20 / 19 / 18 の階層から選ぶ - 新しい色を足さない。Warning は #c4aa5c、Success は #027e73 を流用する - コンテナ幅は 1280px 目安、読み物カラムは 800px - font-feature-settings は normal(palt は掛けない) ```