ハンドクラフト・手描き クーポン/お知らせ

様式名: ハンドクラフト・手描き / カード・バッジ

手描き判子コラージュ和文
⧉ 別タブで開く

「壊れた例」を押すと、この様式が成立しなくなる条件を実物で見られます。

特徴 — なぜ効くか

  • フリーハンドの線・かすれ・滲みで、手仕事の温かみを出す。完璧な直線・正円を避けるのが成立条件
  • 紙・インクのテクスチャ、軽いグレインを地に敷く。ベタ塗りの白にしない
  • マスキングテープ・判子・切り貼りのコラージュ感で『人が作った』感じを出す
  • 手描きイラストだけ置いて背景とタイポが整然としたグリッドだと、温かみが出ず『イラスト付きサイト』止まり
  • 2025〜2026年は『AIの完璧な生成物への反動=人が作った感』として現役トレンド

実装メモ — 踏んだ罠

  • 線・枠の『揺らぎ』は SVG の feTurbulence(乱数)+feDisplacementMap(輪郭の押し出し)で作る。scale を 3〜5 にすると手描きらしい不均一さが出る。04 のコンクリート地のノイズ技術の応用
  • 紙のグレインは feTurbulence の data URI を opacity .05〜.08 で敷く。ここは彩度を残してよい(紙の粒に見える)
  • 枠の角丸を4隅バラバラ(18px 12px 20px 10px)にし、要素をわずかに傾け・重ねると『手で置いた』風になる
  • 判子は円をわずかに歪ませ、opacity を落として『かすれ』を出す。完璧な円だとスタンプに見えない
  • 【和文の最大の罠】日本語の手描き風フォントは選択肢が極端に少ない(Google Fonts の和文は総数が少なく、手描き系はさらに限られる)。だから和文は普通の丸ゴシックのまま、枠・下線・判子など『線側』を歪ませて手描き感を出すのが現実的。フォントで解決しようとしない
  • 【自分で実測した数値】紙地 #f4ead8 の上でインク #2b2622 は 12.55:1、サブ #6b5d4f は 5.33:1、赤インク #b23a2e は 4.98:1。赤スタンプに白抜きは 5.94:1。手描き風でもコントラストは通常どおり測る

使いどころ / 使ってはいけない場面

壊れる条件

コントラスト実測

対象文字色背景実効背景判定
見出し・本文インク(紙地)#2b2622#f4ead8#f4ead812.55:1AA 合格
サブテキスト(紙地)#6b5d4f#f4ead8#f4ead85.33:1AA 合格
赤インク・下線・判子(紙地)#b23a2e#f4ead8#f4ead84.98:1AA 合格(余裕なし)
CTA(白文字 on 赤スタンプ)#ffffff#b23a2e#b23a2e5.94:1AA 合格

アクセシビリティ

スマホへの落とし方

ブラウザ対応

関連するパーツ

コードを見る
<!doctype html>
<html lang="ja"><head><meta charset="utf-8"><title>ハンドクラフト・手描き クーポン デモ</title><style>
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --paper:#f4ead8;   /* 生成りの紙 */
  --ink:#2b2622;     /* インク。紙地で 12.55:1 */
  --sub:#6b5d4f;     /* サブ。紙地で 5.33:1 */
  --stamp:#b23a2e;   /* 判子の赤。紙地で 4.98:1、白抜きで 5.94:1 */
  --tape:#f6e7a8;    /* マスキングテープ */
}
body{background:var(--paper);color:var(--ink);min-height:340px;position:relative;overflow:hidden;
  font-family:"Yu Gothic","Hiragino Maru Gothic ProN",system-ui,sans-serif}
/* 手描きの肝:線・枠を「揺らす」。feTurbulence で乱数を作り、feDisplacementMap で
   要素の輪郭を押し出す。完璧な直線を避けるのが成立条件。04 のノイズ技術の応用 */
svg.filters{position:absolute;width:0;height:0}
/* 紙のグレイン。ベタ塗りにしない(04 と同じ data URI ノイズ、彩度は残す=紙の粒) */
body::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.06;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}

.inner{position:relative;z-index:1;padding:32px 30px}
.tape{position:absolute;top:-10px;left:40px;width:120px;height:30px;background:var(--tape);
  opacity:.85;transform:rotate(-6deg);filter:url(#rough)}
.eyebrow{font-size:11px;letter-spacing:.12em;color:var(--sub);font-weight:700;margin-bottom:12px}
/* 手描き枠:破線を feDisplacementMap で歪めて「手で描いた囲み」に見せる */
.card{position:relative;border:2.5px dashed var(--ink);border-radius:18px 12px 20px 10px;
  padding:22px 24px;max-width:24em;filter:url(#rough);background:rgba(255,255,255,.25)}
h1{font-size:clamp(26px,6vw,40px);line-height:1.15;letter-spacing:.01em;font-weight:800}
h1 .hl{color:var(--stamp)}
p{margin-top:10px;font-size:13px;line-height:1.9;color:var(--sub);max-width:22em}
/* 手描きの下線:まっすぐな border でなく、揺らした SVG ストローク風に見せる */
.underline{display:inline;background:linear-gradient(var(--stamp),var(--stamp)) left bottom/100% 3px no-repeat;
  padding-bottom:2px;filter:url(#rough)}
/* 判子:円をわずかに歪ませ、かすれた赤で「押した」風に */
.stamp{position:absolute;right:24px;bottom:22px;width:84px;height:84px;border:3px solid var(--stamp);
  border-radius:50%;color:var(--stamp);display:flex;align-items:center;justify-content:center;
  text-align:center;font-size:11px;font-weight:800;line-height:1.3;transform:rotate(-12deg);
  opacity:.85;filter:url(#rough)}
.cta{display:inline-block;margin-top:18px;background:var(--stamp);color:#fff;font-weight:800;
  font-size:13px;padding:11px 24px;border-radius:14px 10px 16px 8px;text-decoration:none;filter:url(#rough)}
.cta:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
/* 手描き風の「揺らぎ」は小さい文字で潰れる。本文は普通のゴシック(filter を掛けない)*/
</style></head><body>
<svg class="filters" aria-hidden="true">
  <filter id="rough"><feTurbulence type="fractalNoise" baseFrequency="0.018" numOctaves="3" result="n"/>
    <feDisplacementMap in="SourceGraphic" in2="n" scale="4"/></filter>
</svg>

<div class="inner">
  <div class="tape"></div>
  <p class="eyebrow">HANDMADE MARKET</p>
  <div class="card">
    <h1>てしごとの、<br><span class="hl">まるいち</span>市。</h1>
    <p><span class="underline">今週末だけ</span>、作り手が集まる小さな市を開きます。コーヒー1杯、お土産ひとつ。</p>
    <a class="cta" href="#">場所を見る →</a>
  </div>
  <div class="stamp">土日<br>限定</div>
</div>
</body></html>
出典・参考: 自作の再現実装。成立条件(フリーハンド・紙テクスチャ・コラージュ)と『人が作った感』のトレンド文脈は https://www.creativebloq.com/art/illustration/messy-meaningful-and-made-by-humans-the-biggest-illustration-trends-for-2026 、和文フォントの少なさは https://webclips.jp/design/google-font/ (いずれも2026-07-21閲覧)。feTurbulence/feDisplacementMap の手法は 04 の応用。コントラスト値は当方で実測。