No. 21

透明感のクリーンビューティー Clean Beauty

白背景・パステル・丸ゴシック・ぷっくりボタンの量産クリーンビューティー形に堕ちない、写真主役の透明感。細く硬質な幾何サンセリフと余白、締めの濃墨1色で「透明感の中の芯」を作る。スキンケアD2C・美容クリニック・ウェルネス系の定期購入モデルに。

仕様

書体幾何学的なゴシック体
配色彩度を抑えた多色
情報量余白広め
レイアウト画面を左右に分割
装飾写真中心
動き動きが体験の一部
雰囲気静か・穏やか / 信頼・堅実
業種美容・サロン / 通販・小売 / 医療・クリニック
架空企業架空・スキンケアブランド「KOUSA SKIN(光紗スキン)」。角質ケアに特化した化粧水・美容液・クリームの3ステップ。成分と濃度を公開し、お試しセット¥1,800、定期便15%オフを案内する。
利用条件商用利用可・改変可・クレジット不要

このブランドのロゴ

実際のロゴ生成指示を見る
# KOUSA SKIN — ヘッダーロゴ

## 制作

2026-09-15 / built-in imagegen。既存サイトのロゴ画像は入力せず、架空ブランド向けに新規生成。

- 画像: `assets/logo.webp`(生成結果をWebPに圧縮、アルファ保持)
- 用途: トップページのヘッダー、または固定サイドのブランド表示
- 方向: minimal skincare, elegant original petal monogram and fine restrained typography
- 表示: 最大 74 × 25px の枠内で縦横比を保持。スマートフォンでは幅と高さを縮小。
- ブランド名はalt属性に保持。リンクとナビゲーションは既存のまま。
- 同じ画像をデモHTMLに埋め込み、単一ファイルでも表示可能。
- 背景に応じたCSSフィルター: `none`。

## 実際の生成プロンプト

```text
Use case: logo-brand. Create one finished original website header logo for the fictional brand "KOUSA SKIN". Art direction: minimal skincare, elegant original petal monogram and fine restrained typography. Palette: charcoal. Exact text only: "KOUSA SKIN". Compose an integrated distinctive emblem and custom drawn lettering as ONE compact horizontal lockup, about 3:1 ratio, occupying almost the entire canvas with only 4 percent padding. Must remain legible at 160px wide. Truly transparent alpha background; no background rectangle, mockup, paper, scene, shadow, 3D, watermark, extra labels or logo variations. Clean high resolution flat artwork. Do not imitate any existing brand logo. For Japanese text preserve every character exactly.
```

## 運用

参考サイトのロゴ・商標を流用していない。生成物の商標調査・法的な類似性審査は未実施。

### サイズ調整

ヘッダーの占有面積を抑えるため、ロゴを 74 × 25px、モバイルを 68 × 23px に縮小。本文の見出しより控えめな大きさにする。

DESIGN.md

DESIGN.mdtokens.css

# DESIGN.md — 透明感のクリーンビューティー / clean-beauty

> **使い方**: このファイルをプロジェクトに置き、AIに
> 「DESIGN.md に従って◯◯のサイトを作って」と指示してください。
> ライセンス: 商用利用可・改変可・クレジット不要(AIっぽくないデザイン見本帳 / サードパーティートラスト)

## 1. コンセプト

スキンケアD2Cの王道「クリーンビューティー」を、白背景・パステル・丸ゴシック・
ぷっくりボタンの量産形に堕とさずに作る。細く硬質なサンセリフの規律と、
質の高い写真、たっぷりの余白で「透明感の中に芯がある」を成立させる。
彩度は抑えるが、締める場所は黒に近い濃いインクで一段落とす。ふわっとさせない。

**キーワード**: 透明感 / 規律 / 余白 / 写真主役 / 締め
**この見た目が向く場面**: スキンケア・コスメD2C、美容クリニックのオウンドEC、
オーガニック/ウェルネス系の定期購入モデル

## 2. タイポグラフィ

- 欧文・数字: Jost / ウェイト 300〜400 / 字間 +0.08em(製品名・成分名・数値・
  英字ラベルに使う。声を張らない幾何サンセリフ。太らせて主張させない)
- 和文見出し: Zen Kaku Gothic New / ウェイト 500
- 和文本文: Zen Kaku Gothic New / ウェイト 400 / サイズ 15〜16px / 行間 1.8
- 混植ルール: `font-family: "Jost", "Zen Kaku Gothic New", sans-serif;` を
  本文に指定し、英数字は自動的に Jost、和文は Zen Kaku Gothic New に
  フォールバックさせる(個別に `<span>` で切り替える必要はない)
- 見出しスケール: h1 38px / h2 27px / h3 18px(大見出しでも38pxを超えない。
  声を張らない。強さは余白と写真の質量で出す)
- 特記: 全角約物混じりの日本語見出しに欧文の字間ルールを適用しない
  (字間+0.08emは Jost 使用箇所限定。和文見出し全体に掛けると間延びする)

## 3. カラー

無彩色に近い低彩度パレット+締めのための濃墨。マルチパステルにしない。

| 役割 | 値 | 使用比率の目安 |
|---|---|---|
| 背景(ベース) | #f7f5f2(ごく淡い温白) | 55% |
| 背景(節替え) | #f0ece5 | — |
| 背景(締めセクション) | #23201c(濃墨。ページ内1箇所のみ) | 10%程度 |
| テキスト(主・見出し) | #23201c | 25% |
| テキスト(弱) | #6b6259 | — |
| アクセント1(くすみモーヴ・面/線専用) | #b7a4a8 | 5%以下 |
| アクセント1文字用(モーヴを文字にする時だけ) | #785f64 | — |
| アクセント2(セージ・面/線専用) | #9aa89a | 5%以下 |
| アクセント2文字用(セージを文字にする時だけ) | #566655 | — |
| 罫線 | #e5e1da | — |

- 配色ルール: `--color-mauve` と `--color-sage` は**面(塗り)と細線にのみ使う**。
  文字として使う場合は必ず `-text` の濃色版を使う(実測値は§8直前を参照)。
  この2色を「地の色を薄く変えたパステル塗り」として多用しない
  (アクセント2色までの排他ルール。3色目を足さない)
- パステルの多色使い(水色・ピンク・ラベンダーの同時使用等)を禁止。
  低彩度に抑えつつも、ページ中に必ず1箇所、濃墨 #23201c の締めセクション
  (定期便・トライアルのCV導線)を置き、「軽さだけ」で終わらせない

## 4. レイアウト・余白

- コンテンツ最大幅: 1320px / 左右パディング 40px(1080px以下は28px、880px以下は22px)
- グリッドの性格: split-screen を基本とする。ヒーローは 40%(テキスト)/60%(写真)
  の非対称2カラム。成分セクションは 44%/56%。3ステップは 42%/58%
  (偶数ステップで反転し 58%/42%)
- セクション間の余白: 上下 128px 基準(モバイルは84px)。要素間は8pxの倍数
- ヒーローの構成: 中央寄せにしない。左カラムに「静かな一文の見出し+
  製品哲学2文+CTAボタン1つ」を配置し、右カラムは写真を裁ち落とし
  (画面端まで、余白なし)で敷く。ボタンを2つ並べない
- 3ステップは3カラム角丸カードにしない。**縦の流れ**で、各ステップを
  「番号+写真+説明」の横並び行(行ごとに写真の左右を反転)として積む

## 5. コンポーネントの質感

- ヘッダー・ナビゲーション: 背景は地色に近い半透明(`rgba(247,245,242,0.97)`)で
  sticky。ナビリンクは下線なし・ホバーで文字色がモーヴ文字色に変わり、
  下線が1pxで出る。本文中の通常リンクとは分けず、同じ考え方で統一する
- 角丸: 2px(ボタン・入力欄のみ、最小限)。**写真は角丸0で固定**(排他。
  写真にだけ`--radius-photo:0`を必ず使い、ボタンの`--radius`を流用しない)
- 影: 使わない(box-shadowを一切使わない。奥行きは写真そのものと余白で出す)
- ボタン: 角2px・塗り。主ボタンは濃墨地×オフホワイト文字(締めセクション上では
  オフホワイト地×濃墨文字に反転)。ホバーで背景がわずかに明転するのみ
  (0.25s)。ピル型にしない。矢印は自作インラインSVGを添える
- カード的要素: 作らない。区切りは1px罫線(#e5e1da)と余白のみ
- フォーム要素: 本DEMOでは扱わないが、使う場合は背景=地色、罫線1px、
  角丸2px、フォーカス時に罫線がセージ文字色に変わる
- 画像の扱い: 角丸なし・枠なし・影なし。`object-fit: cover`で敷き、
  全写真に共通の`filter: saturate(0.9) brightness(1.02)`を適用してトーンを統一
  (個別の写真ごとにフィルタ値を変えない)
- アクセント色の適用範囲: モーヴ=ステップ番号・ラベル文字(-text版)・
  ホバー時の文字色。セージ=section-label・成分値の数字・声のクレジット行
  (-text版)。この用法以外(ボタン背景、罫線の強調、大面積の塗り)には使わない

## 6. モーション

- 量: rich。ただし「動き=賑やかしい」にしない。役割ごとに速度と遅延を変える
  (階段ディレイ)。全要素が同じ0.6sで均一にフェードする実装を禁止
- 使う動き:
  - 主役(写真, `data-role="lead"`): scale(1.07)→1 と opacity 0→1 を
    1.4〜1.6s の `cubic-bezier(0.16,1,0.3,1)` でゆっくり
  - 見出し(`data-role="heading"`): translateY(20px)→0, 0.7s, 遅延0s
  - 本文(`data-role="body"`): translateY(12px)→0, 0.55s, 遅延0.16s
  - CTA(`data-role="cta"`): translateY(8px)→0, 0.5s, 遅延0.3s
  - ヒーローのみ控えめなパララックス(写真をscrollに応じて最大26px程度
    translateY。`will-change`を使いすぎない)
- 使わない動き: 数字のカウントアップ、自動カルーセル、マーキー、
  backdrop-filterによるグラスモーフィズム、均一0.6sフェード
- `prefers-reduced-motion: reduce` で上記アニメーションとパララックスを
  すべて無効化し、最終状態(opacity:1, transform:none)を即時表示する
- 実装上の注意: `html { scroll-behavior: smooth; }` は使わない
  (アンカー遷移のスムーススクロールと、スクロール連動のIntersectionObserver /
  rAFベースの演出が競合し、体感の重さや意図しない挙動につながるため。
  画面遷移は一瞬で、要素の出現アニメーションだけで魅せる)

## 7. 写真・イラスト・図版

- Wikimedia Commons の CC0 / Public Domain 写真のみを4〜5枚使用し、
  data URI で1ファイルに埋め込む(出典は本文に表示せず、HTMLコメントと
  プロジェクトの素材管理表に記録する)
- 被写体は「水」「肌のマクロ」「植物(逆光・光と影)」「ボトルに見立てられる
  静物(ガラスの器)」「光と影の抽象」の5系統を目安に選び、商品写真の
  代わりに質感と光で語らせる
- 写真の上に文字を重ねない。隣に置く(不透明な地の帯を挟むのは可。
  半透明スクリムや`backdrop-filter`は使わない)
- 全写真に共通の`filter: saturate(0.9) brightness(1.02)`でトーンを統一する
  (§9のコード参照)。個別に彩度や色相を変えて「作家性」を足さない

---

**色面×文字ペアの実測コントラスト(WCAG相対輝度比)— 両方向で確認済み**
```
ink        #23201c on bg        #f7f5f2  →  14.90 : 1   (本文・見出し)
text-weak  #6b6259 on bg        #f7f5f2  →   5.49 : 1   (弱文字)
ink        #23201c on bg-alt    #f0ece5  →  13.77 : 1
mauve-text #785f64 on bg        #f7f5f2  →   5.33 : 1   (モーヴを文字にする時)
sage-text  #566655 on bg        #f7f5f2  →   5.63 : 1   (セージを文字にする時)
offwhite   #f7f5f2 on bg-ink    #23201c  →  14.90 : 1   (締めセクション見出し)
weak-ink   #c9c2b8 on bg-ink    #23201c  →   9.18 : 1   (締めセクション弱文字)
mauve      #b7a4a8 on bg-ink    #23201c  →   6.87 : 1   (締めセクション上でモーヴを文字にする場合)
sage       #9aa89a on bg-ink    #23201c  →   6.52 : 1
ink        #23201c on mauve-fill #b7a4a8 →   6.87 : 1   (モーヴを面として使い、文字を乗せる場合)
ink        #23201c on sage-fill  #9aa89a →   6.52 : 1
--- 不合格につき「文字色として直接使わない」と確定した組み合わせ ---
mauve(base) #b7a4a8 on bg #f7f5f2 → 2.17 : 1   ✕ 文字には -text 版を使う
sage(base)  #9aa89a on bg #f7f5f2 → 2.29 : 1   ✕ 文字には -text 版を使う
```

## 8. 禁止事項(must not)

- Inter / Roboto / Arial / Noto Sans をデフォルトで使わない(Jost / Zen Kaku
  Gothic New で組む)
- 紫〜青の装飾グラデーションを使わない。グラデーション全般(背景・文字・
  ボタン)を使わない
- box-shadow・backdrop-filter を使わない(影で奥行きを作らない。
  半透明スクリムでグラスモーフィズムを作らない)
- 「白背景+パステル+丸ゴシック+ぷっくりボタン」の量産クリーンビューティー形を
  作らない。角丸は最小2px(ボタン・入力欄のみ)。**写真の角丸は常に0**
  (排他:写真にだけ`--radius-photo:0`を使い、他要素の`--radius`を写真に流用しない)
- アクセントのモーヴ・セージを**文字色として直接使わない**(本節直前の実測値の
  とおり、地に対して2.17:1・2.29:1でAA不合格。文字にする場合は`-text`濃色版を使う)
- パステルの多色使い(3色以上の淡い色を同一画面に併存させる)をしない。
  アクセントはモーヴ・セージの2色まで(排他リスト)
- 中央寄せの定型ヒーロー(特大見出し+サブコピー+ボタン2つ)を作らない。
  ボタンを2つ並置しない(CTAは「トライアルを試す」1本を軸に統一する)
- 3ステップ等の紹介を角丸カード×3列(アイコン+見出し+説明)にしない。
  番号+写真+説明の縦の流れで組む
- 顔写真アバター+星5評価の均質なレビュー羅列を作らない。声の長さ・
  文体・満足度にばらつきを持たせる
- 統計数字のカウントアップ・自動カルーセル・マーキー・全要素均一0.6sフェードを
  使わない(モーション演出は§6の役割別ディレイに従う)
- 絵文字をアイコンとして使わない(矢印などの記号約物は可。アイコンが必要な
  場合は線幅1.4px統一の自作インラインSVG線画のみ)

## 9. 実装ノート

```css
/* tokens.css — この変数セットをそのまま使うこと */
:root {
  --color-bg: #f7f5f2;
  --color-bg-alt: #f0ece5;
  --color-bg-ink: #23201c;

  --color-ink: #23201c;
  --color-text-weak: #6b6259;
  --color-offwhite: #f7f5f2;
  --color-weak-on-ink: #c9c2b8;

  --color-mauve: #b7a4a8;       /* 面・細線専用 */
  --color-mauve-text: #785f64;  /* 文字にする時だけ(5.33:1) */
  --color-sage: #9aa89a;        /* 面・細線専用 */
  --color-sage-text: #566655;   /* 文字にする時だけ(5.63:1) */

  --color-line: #e5e1da;

  --font-latin: "Jost";
  --font-heading: "Zen Kaku Gothic New";
  --font-body: "Zen Kaku Gothic New";

  --space-unit: 8px;
  --radius: 2px;       /* ボタン・入力欄のみ */
  --radius-photo: 0;   /* 写真は常にこれ。排他で上書きしない */
  --max-width: 1320px;

  /* 写真トーン統一:全写真に一律適用。個別に変えない */
  --photo-filter: saturate(0.9) brightness(1.02);
}

body {
  font-family: var(--font-latin), var(--font-body), sans-serif;
  /* ↑ 英数字は自動でJost、和文は自動でZen Kaku Gothic Newにフォールバックする */
}

.photo {
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: var(--radius-photo, 0); /* 常に0 */
  filter: var(--photo-filter);
}
```

```css
/* split-screen ヒーロー:中央寄せにしない。ボタン2つ並べない */
.hero {
  display: grid;
  grid-template-columns: 40% 60%;
  min-height: calc(100vh - 76px);
}
.hero-text { display: flex; flex-direction: column; justify-content: center; padding: 60px 56px 60px 40px; }
.hero-photo-frame { position: relative; overflow: hidden; }
.hero-photo-frame img { position: absolute; inset: 0; }

@media (max-width: 880px) {
  .hero { grid-template-columns: 1fr; min-height: auto; }
  .hero-photo-frame { height: 62vh; }
}
```

```css
/* モーション:役割差+階段ディレイ(均一0.6sフェード禁止) */
[data-role="lead"] {
  transform: scale(1.07); opacity: 0;
  transition: opacity 1.4s cubic-bezier(.16,1,.3,1), transform 1.6s cubic-bezier(.16,1,.3,1);
}
[data-role="lead"].is-visible { opacity: 1; transform: scale(1); }

[data-role="heading"] { transform: translateY(20px); transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
[data-role="body"]    { transform: translateY(12px); transition: opacity .55s ease-out, transform .55s ease-out; transition-delay: .16s; }
[data-role="cta"]     { transform: translateY(8px);  transition: opacity .5s ease-out,  transform .5s ease-out;  transition-delay: .3s; }
[data-role="heading"], [data-role="body"], [data-role="cta"] { opacity: 0; }
[data-role].is-visible { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  [data-reveal], [data-role] { opacity: 1 !important; transform: none !important; transition: none !important; }
}
```

```js
// IntersectionObserver で出現させる要素には必ず data-reveal を付ける。
// data-role="lead" の写真も data-reveal がないと永久に opacity:0 のまま
// (実装時に頻出するミス。ヒーローの写真だけは手動制御なので data-reveal 不要)
document.querySelectorAll('[data-reveal]').forEach(el => io.observe(el));
```

- フォント読み込み:
  `https://fonts.googleapis.com/css2?family=Jost:wght@300;400;500&family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap`
- 写真は Wikimedia Commons の CC0 のみを採用し、出典を HTMLコメントに列挙する
  (表示ページ上には出典テキストを出さない。§7参照)


## ヘッダーロゴ(2026-09-15追加)

ブランド表示には新規生成した `assets/logo.webp` を使う。画像生成指示と表示条件は `LOGO.md` に記録。デモは画像を埋め込み、altにブランド名を残している。従来の本文用フォントによるロゴ表記は、この画像仕様に置き換える。別ブランドへ応用する場合はブランド専用に生成し直す。