目次
あなたのサイトのCookie同意バナー、嫌われていませんか?
「このサイトはCookieを使用しています。同意ボタンを押さなと邪魔で記事が読めない」
こんなバナーに出くわして、イラっとした経験はありませんか?同意ボタンしかなく、拒否すると記事が読めない。これが今、日本のWebサイトで急増しているダークパターンです。
ユーザーを尊重しない設計は、あなたのサイトの印象を大きく損ないます。でも実は、デザイン次第でCookie同意バナーは「邪魔なもの」から「好感を持たれるもの」に変えられるんです。
この記事では、誠実でありながら魅力的なバナーデザインを紹介します。CSSで実装できるレベルなので、ぜひ参考にしてください。
なぜCookie同意バナーが嫌われるのか?
日本で急増する「同意しないと読めない」バナー
Webサイトを開いた瞬間、画面全体を覆う巨大なバナー。選択肢は「同意する」ボタンひとつだけ。拒否しようとすると、記事が読めない。
これが、ダークパターンと呼ばれる悪質なUI設計です。ユーザーの選択肢を奪い、意図しない同意を強制する手法として、世界中で問題視されています。
そのほかの事例:消費者庁|ダークパターン事例イラスト集
なぜこんな設計が生まれたのか
「Cookieに同意してもらわないと、広告収益が減る」 「アクセス解析ができないと困る」
運営者側の事情はわかります。でも、ユーザーを不快にさせてまで得た同意に、本当に価値はあるでしょうか?
むしろ逆です。強制的な同意は、ユーザーの信頼を失い、サイトの評判を落とします。二度と訪れてもらえなくなるリスクさえあります。
誠実な設計こそが、長期的な信頼を生む
考えてみてください。あなたが初めて訪れたWebサイトで、いきなり「同意しろ」と迫られたら、どう感じますか?
「このサイト、何か怪しいな…」
そう思いますよね。逆に、選択肢が平等に提示され、わかりやすい説明があったら?
「ちゃんとしたサイトだな」
そう感じるはずです。誠実なデザイン設計は、ユーザーの心に響きます。そして長期的には、サイトの価値を高めることにつながるのです。
誠実なCookie同意バナーの3原則
ダークパターンを避け、ユーザーに好かれるバナーには、3つの共通点があります。
原則1: 選択肢を平等に提示する
「同意する」と「同意しない」のボタンは、同じ大きさ、同じ目立ち方で配置しましょう。
ダークパターンの典型例:
- 「同意する」は大きく目立つ色
- 「拒否」は小さく薄い色、または存在しない
誠実な設計:
- 両方のボタンが同じサイズ
- 色の明度も同等
- 「同意しない」を選んでも記事は読める
ユーザーに本当の選択肢を与えること。これがすべての出発点です。
原則2: わかりやすい言葉で説明する
「当サイトではCookieを使用し、第三者配信の広告サービスを利用しています。詳細はプライバシーポリシーをご確認ください」
こんな文章、誰も読みません。
誠実な設計では:
- 「サイト改善のためにアクセス情報を収集します」
- 「広告をカスタマイズするためにCookieを使います」
- 「拒否してもサイトは使えます」
学生でもわかる言葉で、正直に伝える。これが信頼の第一歩です。
原則3: 視覚的に圧迫感を与えない
画面全体を覆う巨大なモーダルウィンドウ。閉じるボタンもない。これでは、ユーザーは「押さされている」と感じます。
誠実な設計では:
- バナーは控えめなサイズ
- 背景はぼかしすぎない
- 簡単に閉じられる×ボタンがある
- 画面下部や上部に小さく配置
存在は示しつつ、邪魔にならない。このバランスが大切です。
Cookie同意バナーデザインギャラリー
ここからは、実際に使えるバナーデザインを紹介します。すべて誠実な設計で、ユーザーに選択肢を与えながらも、押しやすく魅力的なデザインです。
カラフル横:HTML、CSSコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cookie同意バナープレビュー</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', sans-serif;
background: #ffffff;
padding: 40px 20px;
min-height: 100vh;
}
.preview-container {
max-width: 1200px;
margin: 0 auto;
}
.banner-section {
margin-bottom: 80px;
padding: 40px;
background: #ffffff;
border-radius: 8px;
position: relative;
}
.banner-title {
font-size: 20px;
font-weight: 700;
color: #1f2937;
margin-bottom: 24px;
padding-bottom: 12px;
border-bottom: 2px solid #e5e7eb;
}
/* クッキーちゃんデザイン */
.cookie-chan {
max-width: 320px;
margin: 0 auto;
padding: 32px 24px 24px;
background: linear-gradient(180deg, #fff9e6 0%, #ffe5f0 100%);
border-radius: 24px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
position: relative;
text-align: center;
}
.cookie-close {
position: absolute;
top: 16px;
right: 16px;
width: 32px;
height: 32px;
border: none;
background: transparent;
color: #ec4899;
font-size: 24px;
cursor: pointer;
line-height: 1;
font-weight: 300;
}
.cookie-emoji {
font-size: 64px;
margin-bottom: 16px;
display: block;
}
.cookie-chan-title {
font-size: 20px;
font-weight: 700;
color: #ec4899;
margin: 0 0 16px 0;
}
.cookie-chan-text {
font-size: 14px;
line-height: 1.8;
color: #4a4a4a;
margin: 0 0 8px 0;
}
.cookie-highlight {
color: #ec4899;
font-weight: 600;
}
.cookie-actions {
display: flex;
flex-direction: column;
gap: 12px;
margin: 24px 0 16px;
}
.btn {
width: 100%;
padding: 14px 20px;
border-radius: 12px;
font-size: 15px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
}
.btn-accept {
background: #ec4899;
color: white;
border: none;
}
.btn-settings {
background: white;
color: #4a4a4a;
border: 2px solid #ec4899;
}
.btn-decline {
background: white;
color: #4a4a4a;
border: 2px solid #ec4899;
}
.cookie-policy-text {
font-size: 12px;
color: #4a4a4a;
}
.cookie-policy {
color: #ec4899;
text-decoration: underline;
}
.cookie-policy:hover {
color: #db2777;
}
</style>
</head>
<body>
<div class="preview-container">
<!-- クッキーちゃんデザイン -->
<div class="banner-section">
<h2 class="banner-title">クッキーちゃん(改善版)</h2>
<div class="cookie-chan">
<button class="cookie-close">×</button>
<span class="cookie-emoji">🥰</span>
<h3 class="cookie-chan-title">クッキーちゃん</h3>
<p class="cookie-chan-text">
当メディアではサイト改善のため<br>
<span class="cookie-highlight">クッキーを使用しています</span>
</p>
<div class="cookie-actions">
<button class="btn btn-accept">すべて同意する</button>
<button class="btn btn-settings">設定する</button>
<button class="btn btn-decline">同意しない</button>
</div>
<p class="cookie-policy-text">
<a href="#" class="cookie-policy">プライバシーポリシー</a>を確認
</p>
</div>
</div>
</div>
</body>
</html>
楽しい縦:HTML、CSSコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cookie同意バナープレビュー</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', sans-serif;
background: #ffffff;
padding: 40px 20px;
min-height: 100vh;
}
.preview-container {
max-width: 1200px;
margin: 0 auto;
}
.banner-section {
margin-bottom: 80px;
padding: 40px;
background: #ffffff;
border-radius: 8px;
position: relative;
}
.banner-title {
font-size: 20px;
font-weight: 700;
color: #1f2937;
margin-bottom: 24px;
padding-bottom: 12px;
border-bottom: 2px solid #e5e7eb;
}
/* デザイン2: パステル */
.cookie-pastel {
max-width: 400px;
margin: 0 auto;
padding: 24px;
background: linear-gradient(135deg, #ffeef8 0%, #ffe5f1 100%);
border-radius: 20px;
box-shadow: 0 8px 32px rgba(236, 72, 153, 0.2);
position: relative;
}
.cookie-close {
position: absolute;
top: 12px;
right: 12px;
width: 28px;
height: 28px;
border: none;
background: rgba(236, 72, 153, 0.1);
border-radius: 50%;
color: #ec4899;
font-size: 20px;
cursor: pointer;
}
.cookie-content {
display: flex;
gap: 12px;
margin-bottom: 16px;
}
.cookie-icon {
font-size: 32px;
flex-shrink: 0;
}
.cookie-title {
font-size: 16px;
font-weight: 700;
color: #ec4899;
margin: 0 0 8px 0;
}
.cookie-text {
font-size: 13px;
line-height: 1.5;
color: #831843;
margin: 0;
}
.cookie-text a {
color: #ec4899;
text-decoration: underline;
}
.cookie-actions {
display: flex;
gap: 10px;
}
.btn {
flex: 1;
padding: 10px 16px;
border: 2px solid #ec4899;
border-radius: 10px;
font-size: 13px;
font-weight: 600;
cursor: pointer;
}
.btn-accept {
background: #ec4899;
color: white;
}
.btn-decline {
background: transparent;
color: #ec4899;
}
</style>
</head>
<body>
<div class="preview-container">
<!-- デザイン2: パステル -->
<div class="banner-section">
<h2 class="banner-title">デザイン2: パステル・ソフト</h2>
<div class="cookie-pastel">
<button class="cookie-close">×</button>
<div class="cookie-content">
<div class="cookie-icon">🍪</div>
<div>
<h3 class="cookie-title">Cookieについて ✨</h3>
<p class="cookie-text">サイト改善のためクッキーを使用します。<a href="#">詳細を見る</a></p>
</div>
</div>
<div class="cookie-actions">
<button class="btn btn-accept">すべて同意する</button>
<button class="btn btn-decline">同意しない</button>
</div>
</div>
</div>
</div>
</body>
</html>
ポップ横:HTML、CSSコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cookie同意バナープレビュー</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', sans-serif;
background: #ffffff;
padding: 40px 20px;
min-height: 100vh;
}
.preview-container {
max-width: 1200px;
margin: 0 auto;
}
.banner-section {
margin-bottom: 80px;
padding: 40px;
background: #ffffff;
border-radius: 8px;
position: relative;
}
.banner-title {
font-size: 20px;
font-weight: 700;
color: #1f2937;
margin-bottom: 24px;
padding-bottom: 12px;
border-bottom: 2px solid #e5e7eb;
}
/* 透明性を大切にデザイン */
.cookie-transparency {
max-width: 780px;
margin: 0 auto;
padding: 48px 40px;
background: linear-gradient(135deg, #fff9f0 0%, #fff5e8 100%);
border: 3px solid #f9a169;
border-radius: 24px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
text-align: center;
}
.cookie-icon-circle {
width: 120px;
height: 120px;
margin: 0 auto 24px;
background: linear-gradient(135deg, #ff7e5f 0%, #feb47b 100%);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 8px 24px rgba(255, 126, 95, 0.3);
}
.eye-icon {
width: 60px;
height: 60px;
}
.cookie-transparency-title {
font-size: 24px;
font-weight: 700;
color: #2d3436;
margin: 0 0 16px 0;
}
.cookie-transparency-text {
font-size: 15px;
line-height: 1.8;
color: #636e72;
margin: 0 0 32px 0;
}
.cookie-actions-row {
display: flex;
justify-content: center;
gap: 16px;
flex-wrap: wrap;
}
.btn {
padding: 14px 32px;
border-radius: 50px;
font-size: 15px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
min-width: 120px;
}
.btn-deny {
background: transparent;
color: #ff7e5f;
border: 2px solid #ff7e5f;
}
.btn-settings {
background: transparent;
color: #ff7e5f;
border: 2px solid #ff7e5f;
}
.btn-accept {
background: linear-gradient(135deg, #ff7e5f 0%, #ff6b4a 100%);
color: white;
border: none;
box-shadow: 0 4px 16px rgba(255, 126, 95, 0.3);
}
.btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}
.btn-accept:hover {
box-shadow: 0 6px 24px rgba(255, 126, 95, 0.4);
}
</style>
</head>
<body>
<div class="preview-container">
<!-- 透明性を大切にデザイン -->
<div class="banner-section">
<h2 class="banner-title">透明性を大切に</h2>
<div class="cookie-transparency">
<div class="cookie-icon-circle">
<svg class="eye-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 5C7 5 2.73 8.11 1 12.5C2.73 16.89 7 20 12 20C17 20 21.27 16.89 23 12.5C21.27 8.11 17 5 12 5Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" fill="white" fill-opacity="0.2"/>
<circle cx="12" cy="12.5" r="3.5" stroke="white" stroke-width="2" fill="white"/>
</svg>
</div>
<h3 class="cookie-transparency-title">透明性を大切に</h3>
<p class="cookie-transparency-text">
クッキーでサイト体験を改善します。設定はいつでも変更できます。
</p>
<div class="cookie-actions-row">
<button class="btn btn-deny">拒否する</button>
<button class="btn btn-settings">設定</button>
<button class="btn btn-accept">同意する</button>
</div>
</div>
</div>
</div>
</body>
</html>
シンプル横:HTML、CSSコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cookie同意バナープレビュー</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', sans-serif;
background: #ffffff;
padding: 40px 20px;
min-height: 100vh;
}
.preview-container {
max-width: 1200px;
margin: 0 auto;
}
.banner-section {
margin-bottom: 80px;
padding: 40px;
background: #ffffff;
border-radius: 8px;
position: relative;
}
.banner-title {
font-size: 20px;
font-weight: 700;
color: #1f2937;
margin-bottom: 24px;
padding-bottom: 12px;
border-bottom: 2px solid #e5e7eb;
}
/* プライバシー設定デザイン */
.cookie-privacy {
max-width: 680px;
margin: 0 auto;
padding: 48px 40px;
background: #f5f5f7;
border: 3px solid #1d1d1f;
border-radius: 32px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
text-align: center;
position: relative;
}
.cookie-privacy::before {
content: '';
position: absolute;
top: 20px;
right: 24px;
width: 8px;
height: 8px;
background: #1d1d1f;
border-radius: 50%;
}
.cookie-privacy::after {
content: '';
position: absolute;
bottom: 20px;
left: 24px;
width: 8px;
height: 8px;
background: #1d1d1f;
border-radius: 50%;
}
.lock-icon {
width: 90px;
height: 90px;
margin: 0 auto 24px;
}
.cookie-privacy-title {
font-size: 22px;
font-weight: 700;
color: #1d1d1f;
margin: 0 0 16px 0;
}
.cookie-privacy-text {
font-size: 15px;
line-height: 1.8;
color: #4a4a4a;
margin: 0 0 32px 0;
}
.cookie-actions-row {
display: flex;
justify-content: center;
gap: 16px;
flex-wrap: wrap;
}
.btn {
padding: 14px 40px;
border-radius: 50px;
font-size: 15px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
min-width: 140px;
}
.btn-later {
background: transparent;
color: #1d1d1f;
border: 2px solid #1d1d1f;
}
.btn-ok {
background: #1d1d1f;
color: white;
border: 2px solid #1d1d1f;
}
.btn:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}
</style>
</head>
<body>
<div class="preview-container">
<!-- プライバシー設定デザイン -->
<div class="banner-section">
<h2 class="banner-title">プライバシー設定</h2>
<div class="cookie-privacy">
<svg class="lock-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="5" y="11" width="14" height="10" rx="2" fill="#f39c12" stroke="#f39c12" stroke-width="1.5"/>
<path d="M7 11V7C7 4.79086 8.79086 3 11 3H13C15.2091 3 17 4.79086 17 7V11" stroke="#8e8e93" stroke-width="2" stroke-linecap="round"/>
<circle cx="12" cy="16" r="1.5" fill="#2c3e50"/>
</svg>
<h3 class="cookie-privacy-title">プライバシー設定</h3>
<p class="cookie-privacy-text">
クッキーでサービスを改善します。設定はいつでも変更できます。
</p>
<div class="cookie-actions-row">
<button class="btn btn-later">今はいい</button>
<button class="btn btn-ok">OK</button>
</div>
</div>
</div>
</div>
</body>
</html>
クール横:HTML、CSSコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cookie同意バナープレビュー</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', sans-serif;
background: #ffffff;
padding: 40px 20px;
min-height: 100vh;
}
.preview-container {
max-width: 1200px;
margin: 0 auto;
}
.banner-section {
margin-bottom: 80px;
padding: 40px;
background: #ffffff;
border-radius: 8px;
position: relative;
}
.banner-title {
font-size: 20px;
font-weight: 700;
color: #1f2937;
margin-bottom: 24px;
padding-bottom: 12px;
border-bottom: 2px solid #e5e7eb;
}
/* プライバシー保護バナー */
.cookie-privacy-bar {
width: 100%;
max-width: 100%;
padding: 16px 24px;
background: linear-gradient(90deg, #0f182c 0%, #1e3989 50%, #0f182c 100%);
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
.cookie-privacy-left {
display: flex;
align-items: center;
gap: 16px;
flex: 1;
}
.shield-icon {
width: 48px;
height: 48px;
background: linear-gradient(135deg, #3498db 0%, #2980b9 100%);
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.shield-svg {
width: 28px;
height: 28px;
}
.cookie-privacy-content {
flex: 1;
}
.cookie-privacy-bar-title {
font-size: 16px;
font-weight: 700;
color: #ffffff;
margin: 0 0 4px 0;
}
.cookie-privacy-bar-text {
font-size: 13px;
line-height: 1.5;
color: #e0e0e0;
margin: 0;
}
.cookie-privacy-actions {
display: flex;
gap: 12px;
flex-shrink: 0;
}
.btn {
padding: 10px 24px;
border-radius: 6px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
white-space: nowrap;
}
.btn-settings {
background: transparent;
color: #ffffff;
border: 2px solid rgba(255, 255, 255, 0.3);
}
.btn-decline {
background: transparent;
color: #ffffff;
border: 2px solid rgba(255, 255, 255, 0.3);
}
.btn-accept {
background: linear-gradient(135deg, #4a9eff 0%, #2e7dd6 100%);
color: white;
border: 2px solid #4a9eff;
}
.btn:hover {
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}
.btn-accept:hover {
background: linear-gradient(135deg, #3a8eef 0%, #2571c6 100%);
border-color: #3a8eef;
}
@media (max-width: 768px) {
.cookie-privacy-bar {
flex-direction: column;
text-align: center;
}
.cookie-privacy-left {
flex-direction: column;
}
.cookie-privacy-actions {
width: 100%;
flex-direction: column;
}
.btn {
width: 100%;
}
}
</style>
</head>
<body>
<div class="preview-container">
<!-- プライバシー保護バナー -->
<div class="banner-section">
<h2 class="banner-title">プライバシー保護バー</h2>
<div class="cookie-privacy-bar">
<div class="cookie-privacy-left">
<div class="shield-icon">
<svg class="shield-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 2L4 6V11C4 16.55 7.84 21.74 12 23C16.16 21.74 20 16.55 20 11V6L12 2Z" fill="white" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</div>
<div class="cookie-privacy-content">
<h3 class="cookie-privacy-bar-title">プライバシー保護</h3>
<p class="cookie-privacy-bar-text">当サイトではクッキーを使用してサイト分析と体験改善を行っています。</p>
</div>
</div>
<div class="cookie-privacy-actions">
<button class="btn btn-settings">設定</button>
<button class="btn btn-decline">同意しない</button>
<button class="btn btn-accept">同意</button>
</div>
</div>
</div>
</div>
</body>
</html>
他にもこんなデザインがあります
まとめ:ユーザーを尊重するデザインが、サイトの価値を高める
Cookie同意バナーは、ユーザーとサイト運営者の最初の信頼関係を築く場所です。
ここで強制的な同意を迫れば、ユーザーは不快に感じ、サイトを去ってしまいます。逆に、誠実で魅力的なデザインを提供すれば、「このサイトは信頼できる」と思ってもらえます。
今回紹介した3つの原則
- 選択肢を平等に提示する – 「同意する」と「同意しない」を対等に
- わかりやすい言葉で説明する – 専門用語を避け、正直に伝える
- 視覚的に圧迫感を与えない – 邪魔にならないサイズと配置
紹介したデザイン事例とCSSコードを参考に、自分のサイトでも誠実なバナーを実装してみてください。
関連リンク:プライバシーポリシーの正しい書き方
参考情報:
- 個人情報保護委員会「Cookie等の利用に係る情報提供の充実について」https://www.ppc.go.jp/news/press/2024/240319/
- 消費者庁「ダークパターンに関する検討会報告書」https://www.caa.go.jp/policies/policy/consumer_policy/meeting_materials/review_meeting_004/

https://shorturl.fm/qsPOW
https://shorturl.fm/qeHko