No. 29
旅の帖面 Tabi Scrap
旅人が宿帳に貼り込んだ切符・スタンプ・地図の切れ端。藁半紙と茶墨、土色の点使いだけで組む、几帳面な人の静かなコラージュ。回転は±1.5度まで、色は土系のみ、動きは一切なし。宿・旅館・ゲストハウス・喫茶・工芸店など、時間の積み重ねを語りたい小規模事業者に。

仕様
| typography | mincho-modern |
|---|---|
| color-strategy | earth |
| density | balanced |
| layout | collage |
| ornament | print-texture |
| motion | static |
| mood | nostalgic / wa / trust |
| industry | local-business / portfolio-creative |
| 架空企業 | 架空・尾道のゲストハウス「灯台屋(とうだいや)」 |
| license | 商用利用可・改変可・クレジット不要 |
検証記録
verified_at: 2026-07-11
公式パイプライン検証(Claude Code / sonnet subagent): 別セッションのagentに DESIGN.md + tokens.css のみを渡し、別業種=直売所『六日町ファーマーズマーケット』で再生成。r1・r2で「§2/§9/デモ間の題箋サイズ矛盾(40/32/30px)による非h1実装」「朱(#b8452c)のbg-alt上文字使用が4.14:1でAA未達」を検出→DESIGN.md改稿(デモ実装の30pxに統一・h1のHTML例追加・朱はbg上のみ+紙片自身にbackground明示の排他ルール・番号ラベルの和文原則)→r3で合格(verification/farmers-market/index-r3.html)。Zen Old Mincho×IBM Plex Mono・9トークン・±1.5度以内の傾き・目打ち線/消印/テープのSVG実装・帖タグの和文表記まで一致、朱の全使用箇所の実背景をWCAG実計算で確認(tier-A 🔴0/🟡0)
DESIGN.md
https://3pt.co.jp/design-library/md/tabi-scrap/DESIGN.md
# DESIGN.md — 旅の帖面 / tabi-scrap
> **使い方**: このファイルをプロジェクトに置き、AIに
> 「DESIGN.md に従って◯◯のサイトを作って」と指示してください。
> ライセンス: 商用利用可・改変可・クレジット不要(AIっぽくないデザイン見本帳 / サードパーティートラスト)
## 1. コンセプト
旅人が宿帳に貼り込んだ切符・スタンプ・地図の切れ端。時間の積もった帳面の質感を、
**几帳面な人が組んだ静かなコラージュ**で表す。切り貼りは乱雑ではなく、几帳面に
角をそろえて貼られている。動かない。帳面は静止している。
**キーワード**: 帳面 / 貼り込み / 土色 / 几帳面 / 静止
**この見た目が向く場面**: 宿・旅館・ゲストハウス・喫茶・工芸店など、時間の積み重ねと
実直さを語りたい小規模事業者
## 2. タイポグラフィ
- 和文見出し: Zen Old Mincho / ウェイト 600
- 和文本文: Zen Old Mincho / ウェイト 400 / サイズ 16px / 行間 1.9 / 字間 0.03em
- 欧文・数字(切符番号・日付・料金): IBM Plex Mono / ウェイト 400・500。
和文本文中に地の文として混植しない。**必ず「切符の様式」として独立した小片
(宿札の番号、日付印、料金の数字部分)にのみ使う**
- 見出しスケール: h1(帳面題箋)30px・縦書き(§9のコード例と同値。他のサイズにしない) / h2(節見出し)26px / h3(紙片内見出し)18px /
キャプション 12.5px
- 特記: **手書き風フォントは使用しない(排他・禁止)**。「手の気配」は書体でなく
紙片の**わずかな回転・重なり・目打ち線**で出す。見出しは字間 +0.06em でゆったり組み、
帳面らしい落ち着きを保つ
## 3. カラー(earth・7色固定)
| 役割 | 値 | 使用比率の目安 |
|---|---|---|
| 藁半紙(地・帳面の紙) | #f3ecd6 | 60% |
| 藁半紙・節替え | #ece2c3 | — |
| 茶墨(本文・見出し) | #43392e | 30% |
| 茶墨弱(キャプション・フッター文字) | #6b5e4d | — |
| 土(罫線・タグ枠・アイコンなど非テキスト専用) | #8a6f52 | 6% |
| 土の文字色(帖タグ等、文字に土系を使う場合は必ずこちら) | #6e5638 | 2% |
| 錆浅葱(節区切り線・切り抜き枠など非テキスト専用) | #5f7d78 | — |
| 錆浅葱の文字色(経路番号等、文字に錆浅葱系を使う場合は必ずこちら) | #46615c | — |
| 消印の朱(スタンプ・点使い限定) | #b8452c | 2%以下 |
※朱(--color-stamp)を文字色(点強調)に使ってよいのは **--color-bg(#f3ecd6)上のみ**
(実測4.53:1でAA適合)。**--color-bg-alt(#ece2c3)上では実測4.14:1でAA未達のため、
bg-altが背景になる節・要素の内部では朱を文字色に使わない**。朱の点強調を持つ紙片・枠
(宿札・カレンダー枠等)は、節背景がどちらでも影響を受けないよう、当該紙片自身に
`background: var(--color-bg)` を明示すること(.ticket-edge が既にこの実装をしている)
- 配色ルール(排他・この構成以外を追加しない): **`--color-soil` / `--color-asagi` は
罫線・枠線・アイコンなど非テキスト要素専用**(実測 3.97:1 / 3.79:1=非文字要素の
WCAG基準3:1は満たすが、本文サイズの文字色としての4.5:1には届かないため)。
**文字色として土・錆浅葱の色みを使いたい場合は、サイズや太さに関わらず必ず
`--color-soil-text`(#6e5638・地に対し5.83:1) / `--color-asagi-text`(#46615c・地に対し5.69:1)
を使う**(「18px以上かつ600ウェイト以上なら装飾色のまま文字に使ってよい」という
サイズ依存の例外運用はしない。過去にこの例外運用で `.section-no` 12px に `--color-soil`
を直接使ってしまいAA未達になった反省から、文字用途は常に専用トークンに分離する)。
朱は実測4.53:1で小文字でも規定を満たすが、面積は「スタンプ・点」用途に限定する
(見出し全体やボタン全面には使わない)。`--color-line` は罫線専用(地に対し1.6:1のため
文字色には一切使わない)
- 土・錆浅葱を**背景の塗り**として使う場合、その上に置く文字は必ず藁半紙地に置いた
別片(インセット)にする。段落本文を土/錆浅葱の面の上に直接置かない
- 固定9色の値そのもの以外に、それらへ opacity や rgba() のアルファ値を適用した
派生色を文字色として新たに作らない(背景が変わる業種転換時にAA基準を割り込む
リスクがあるため)。半透明表現が必要な場合も、文字要素には適用禁止とし、
文字色は必ず表内の9色のいずれかをそのまま使うこと。特に、地に対して4.5:1
ぎりぎりの派生色を作らないこと。既存の `--color-soil-text`(5.83:1)・
`--color-asagi-text`(5.69:1)のような十分な安全マージンを持つ専用トークンの
追加が必要な場合のみ、新たなCSS変数として定義しこの表に追記する運用にする
## 4. レイアウト・余白(collage)
- コンテンツ最大幅: 1040px(帳面の見開き幅)/ 品書き・帖面本文は 720px の狭い版面
- **紙片コラージュの型**: 部屋紹介=「宿札」風の短冊(縦長、目打ち線の上辺、
切符番号を左上にIBM Plex Monoで配置)。地図・周辺案内=「切り抜き」風の枠
(四隅にトンボ状のL字罫線を配置した枠、錆浅葱の細罫。矩形の角を切り欠くのではなく、
矩形の外周はそのままに四隅へL字マークを重ねる。実装は§9参照)。旅の記録=「貼った便箋」(横長矩形、
角にテープ跡、右上に消印スタンプ)
- **回転は -1.5deg 〜 1.5deg まで(排他・厳守)**。0度に近い微差の集合で「几帳面に
貼った」印象を作る。zine-collage のような ±5度超の大胆な回転・入り乱れた重なりは禁止
- **重なりは各節につき1〜2箇所まで**(テープが紙片の角に少しかかる程度)。
紙片同士を雑然と何枚も折り重ねない。整列を基本とし、コラージュは「わずかな崩し」に留める
- セクション間余白: 96px 基準 / 要素間は 8px の倍数
- ヒーローの構成: **中央寄せの特大見出し+ボタン2つを作らない。** 帳面の表紙を模した
型(§5参照)。ボタンはヒーローに置かない。予約導線はナビと末尾の「予約と行き方」節に限定する
## 5. コンポーネントの質感
- **節見出しの帖タグ(eyebrow に代わる装置)**: 各節の見出し直上に、検印風の
紙片・切符などコンポーネント個別の番号ラベルも和文(漢字略称+番号。例:「宿-01」「便-03」)を
基本とし、英字表記(TICKET No.01 等)にしない。英字は§9の定めるブランド副題等の限定用途のみ
角枠タグ「帖ノ壱/帖ノ弐/帖ノ参/帖ノ四」を置く。**英字ラベル("01 — ROOMS" の
ような番号+ラテン英字の直訳)は使わない(排他)**。土の文字色(`--color-soil-text`)
で1px角枠+和文の通し呼称のみを組む。この帖面固有の呼び方(帖ノ壱〜四)を使うことで、
最近傍パターン letterpress-sincerity の `.sec-num`(番号)+`.sec-en`(英字ラベルを
右寄せで併記) という「番号+ラテン語彙」の型から意匠面で明確に離す
- ヘッダー・ナビゲーション: 藁半紙地・茶墨文字・下線なし。ナビはホバーで
ホバーで朱の下線が現れる変化は、宿札状のリンク片(ボタン代替リンク)にも同様に
`transition: border-color 0.15s ease;` を明示適用する(ナビだけに書いてリンク片で
書き漏らさない)
**朱の下線のみ**が現れる(色替え不要、下線1本、0.15sで十分。他の装飾は付けない)
- 角丸: 0px(全紙片・全要素直角)/ 影: 使わない。奥行きはテープ跡の色面と
紙片の重なりの前後関係(z-index 1段のみ)で出す
- **切符の目打ち線(ticket-edge)**: 宿札の上辺に破線状の穴を模した縁を作る。
実装は §9 参照(CSSグラデーション関数は使わず、地色の円を描いたSVGデータURIを
`background-repeat: repeat-x` でタイル化して「ミシン目」を表現する)
- **消印スタンプ**: 円形・二重の枠線・朱色・わずかにかすれた質感(SVG feTurbulence を
displacement に使い縁を欠けさせる)。旅の帖面の各便箋につき1個のみ、右上に配置
- **セロテープ跡**: 半透明にしない。`--color-tape: #e4cd94` の**不透明な色面**を
矩形(幅 46px 高さ 20px 目安)で紙片の角に重ね、わずかに回転させる
- ボタン: **原則使わない。** 誘導はすべて下線付きテキストリンクか、宿札・切符状の
リンク片(枠線+角の目打ち+ホバーで朱下線)で行う
- カード的要素(宿札・便箋・切り抜き枠): 罫線1px(土 or 錆浅葱)+わずかな回転。
角丸なし。影なし
- フォーム要素: 使う場合は藁半紙地・1px 土罫線・角丸0・フォーカス時に罫線が朱に変わる
- 画像の扱い: **写真は使用しない(排他)**。図版はすべて自作インラインSVGの線画
(灯台マーク、自転車アイコン、経路図など)で統一。線幅 1.5px、色は茶墨 or 土 or 錆浅葱のみ
- アクセント色の適用範囲: 朱は「①消印スタンプ ②ホバー時の下線 ③料金・切符番号の
1文字程度の点強調」の3用途に限定。面(背景)に朱を使わない
## 6. モーション
- 量: **static(一切動かさない)**。帳面は静止している。スクロール連動アニメ・
フェードイン・パララックス・カウントアップは使わない
- 許される唯一の動き: リンク/ナビのホバー時に**朱の下線が現れる**変化のみ
(0.15s ease、下線の出現のみ。色替え・拡大・影は付けない)
- 使わない動き: opacity/translateのスクロール出現、数字カウントアップ、
カルーセル、マーキー、パララックス、ホバーでのtranslateY・拡大・影増し
## 7. 写真・イラスト・図版
- 写真は一切使用しない(排他・slop罠回避の核)。すべて自作インラインSVGの線画で統一
(灯台マーク、自転車、経路図の点線ルート、スタンプ、封筒の折り目線)
- 地図は写実的な地図画像を使わず、**typographic な経路図**(番号つきの直線ルートと
分数表記)を切り抜き枠の中に組む
## 8. 禁止事項(must not)
- 手書き風フォント(Klee One / うずらフォント等の手書き系)を一切使用しない
(排他。手の気配は紙片の回転・重なり・目打ち線でのみ表現する)
- 回転角を ±1.5deg を超えて使わない(zine-collage 系の大胆な回転・入り乱れた
重なりと混同しない。本作は土色の静かな貼り込み帳)
- 紙片の重なりを各節2箇所を超えて多用しない(雑然とした散らかしにしない。
帳面は几帳面な人が貼ったもの)
- 写真(実写・ストック風含む)を一切使用しない
- `--color-soil` / `--color-asagi`(装飾トークン)を文字色として直接使わない
(§3参照。罫線・枠線・アイコン用途に限定。文字に使う場合は必ず
`--color-soil-text` / `--color-asagi-text` を使う)。`--color-line` も文字色に使わない
(罫線専用)。朱を面(背景)として塗らない
- 節見出しの装置に英字ラベル("01 — ROOMS" 等、和文見出しの直訳を添えるだけのラテン語)
を使わない(§5参照。帖ノ壱〜四のような帖面固有の和文の通し呼称を使う)
- 中央寄せの定型ヒーロー(特大見出し+サブコピー+ボタン2つ)を作らない。
ヒーローに予約ボタンを置かない
- Inter / Roboto / Arial / システムフォントのデフォルト依存をしない
(Zen Old Mincho / IBM Plex Mono の指定に従う)
- 絵文字をアイコンとして使わない(線幅を統一した自作インラインSVGのみ)
- グラデーション・box-shadow のぼかし・backdrop-filter を使わない
(奥行きはテープ色面と紙片の重なりのみで表現する)(目打ち線もrepeating-radial-gradient等の
CSSグラデーション関数ではなく、SVG円のタイル画像で実装すること。slop-scanは
repeating-radial-gradientも含め全てのgradient関数を検出対象とする)
- セロテープ跡を半透明(rgba+blur等)で表現しない。不透明な色面で表現する
## 9. 実装ノート
```css
/* tokens.css — この変数セットをそのまま使うこと */
:root {
--color-bg: #f3ecd6;
--color-bg-alt: #ece2c3;
--color-ink: #43392e;
--color-ink-weak: #6b5e4d;
--color-soil: #8a6f52; /* 罫線・枠・アイコンなど非テキスト専用 */
--color-soil-text: #6e5638; /* 文字に土系を使う場合は必ずこちら */
--color-asagi: #5f7d78; /* 罫線・枠など非テキスト専用 */
--color-asagi-text: #46615c; /* 文字に錆浅葱系を使う場合は必ずこちら */
--color-stamp: #b8452c;
--color-tape: #e4cd94;
--color-line: #cabb9a; /* 罫線専用。文字色には使わない */
--font-heading: "Zen Old Mincho";
--font-body: "Zen Old Mincho";
--font-mono: "IBM Plex Mono";
--space-unit: 8px;
--radius: 0;
--max-width: 1040px;
--tilt-max: 1.5deg;
}
```
- フォント読み込み:
`https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap`
- **回転クラス(-1.5deg〜1.5deg厳守。この6値以外を追加しない)**:
```css
.tilt-a { transform: rotate(-1.5deg); }
.tilt-b { transform: rotate(-0.8deg); }
.tilt-c { transform: rotate(-0.3deg); }
.tilt-d { transform: rotate(0.4deg); }
.tilt-e { transform: rotate(0.9deg); }
.tilt-f { transform: rotate(1.5deg); }
```
- **切符の目打ち線(ticket-edge)**: 上辺にミシン目を作る。**CSSグラデーション関数
(repeating-radial-gradient 等)は一切使わない(§8参照)**。地色の円を
`data:image/svg+xml` のインラインSVGとして1個描き、`background-repeat: repeat-x`
でタイル化してミシン目を表現する:
```css
.ticket-edge {
position: relative;
border: 1px solid var(--color-soil);
background: var(--color-bg);
}
.ticket-edge::before {
content: "";
position: absolute;
top: -5px; left: 0; right: 0; height: 10px;
/* ミシン目の穴を地色の円タイルで表現(gradient関数は使わず、SVGの円をタイル化) */
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="10"><circle cx="6" cy="0" r="4" fill="%23f1ebdd"/></svg>');
background-repeat: repeat-x;
background-size: 12px 10px;
background-position: 6px 0;
}
```
※ SVG内の `fill` は `--color-bg`(#f3ecd6) 相当の地色を16進カラーコードで直書きする
(data URI内でCSS変数は参照できないため)。地色トークンを変更した場合はこの
`fill` 値も同時に更新すること。
- **地図・周辺案内の切り抜き枠(area-frame)**: §4の「切り抜き風の枠」は矩形の角を
くり抜くのではなく、四隅すべてに幅16px・線幅相当2pxのL字型トンボ風マークを
重ねて配置する。色は `var(--color-asagi)` のみ(罫線・枠専用トークン。文字には使わない)。
HTML側は矩形要素の中に `.corner.c-tl` / `.c-tr` / `.c-bl` / `.c-br` を1個ずつ配置する:
```css
.area-frame {
position: relative;
border: 1px solid var(--color-asagi);
padding: 40px 32px;
}
/* 切り抜き枠の四隅マーク(トンボ風のL字。写真コーナーの代替として自作) */
.area-frame .corner { position: absolute; width: 16px; height: 16px; }
.area-frame .corner::before, .area-frame .corner::after { content: ""; position: absolute; background: var(--color-asagi); }
.area-frame .corner::before { width: 16px; height: 2px; }
.area-frame .corner::after { width: 2px; height: 16px; }
.c-tl { top: -1px; left: -1px; }
.c-tl::before { top: 0; left: 0; } .c-tl::after { top: 0; left: 0; }
.c-tr { top: -1px; right: -1px; }
.c-tr::before { top: 0; right: 0; } .c-tr::after { top: 0; right: 0; }
.c-bl { bottom: -1px; left: -1px; }
.c-bl::before { bottom: 0; left: 0; } .c-bl::after { bottom: 0; left: 0; }
.c-br { bottom: -1px; right: -1px; }
.c-br::before { bottom: 0; right: 0; } .c-br::after { bottom: 0; right: 0; }
```
```html
<div class="area-frame tilt-d">
<span class="corner c-tl"></span><span class="corner c-tr"></span>
<span class="corner c-bl"></span><span class="corner c-br"></span>
<!-- 経路図SVGなどをここに配置 -->
</div>
```
- **消印スタンプ(自作SVG。かすれは feTurbulence の displacement で表現。写真・既製素材不使用)**:
```html
<svg class="postmark" viewBox="0 0 100 100" width="64" height="64" aria-hidden="true">
<filter id="scratch"><feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="2" result="n"/>
<feDisplacementMap in="SourceGraphic" in2="n" scale="6"/></filter>
<g filter="url(#scratch)" fill="none" stroke="var(--color-stamp)" stroke-width="2">
<circle cx="50" cy="50" r="42"/>
<circle cx="50" cy="50" r="34"/>
</g>
</svg>
```
```css
.postmark { color: var(--color-stamp); }
```
色は `var(--color-stamp)` のみ。1紙片につき1個。面積が大きくならないよう 56〜72px に収める。
- **セロテープ跡(不透明色面。半透明にしない)**:
```css
.tape {
position: absolute;
width: 46px; height: 20px;
background: var(--color-tape); /* 不透明。rgba/blurを使わない */
transform: rotate(-4deg);
}
```
- **帳面題箋(ヒーローの縦書き見出し)**: 必ず `<h1>` でマークアップする
(divやpで実装しない。ページ内のh1はこの題箋1箇所のみ):
```html
<h1 class="cover-title">灯台屋<span class="sub">旅の帖面 — 尾道</span></h1>
```
```css
.cover-title {
writing-mode: vertical-rl;
font-family: var(--font-heading), serif;
font-weight: 600;
font-size: 30px; /* §2の見出しスケールと同値。40pxや32pxにしない */
letter-spacing: 0.24em;
color: var(--color-bg);
border: 1px solid var(--color-bg);
padding: 30px 12px;
}
```
- 数値(切符番号・日付・料金)は `font-family: var(--font-mono), monospace;` を明示し、
和文本文の `var(--font-body)` と混植しない(切符片・スタンプ・料金表記のみに限定)
- 藁半紙のノイズは `feTurbulence baseFrequency 0.7前後 / opacity 0.045前後 / mix-blend-mode: multiply`
を body::after に敷き、他パターン(letterpress-sincerity・kissa-melancholy)と
周波数を変えて識別できるようにする