特大タイポ・ヒーロー(ダーク/明朝)

様式名: 特大タイポ・ダーク / ヒーロー

ヒーローダーク明朝裁ち落とし縦組み半透明パネル
⧉ 別タブで開く

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

特徴 — なぜ効くか

  • 様式名そのものが「ダーク」なので、02_oversized_type(明地版)はこの様式の仮運用に過ぎなかった。濃紺地+特大セリフで初めて様式定義どおりになる
  • 地が暗いので、白文字の可読性がブロブの有無に依存しない。明地版は白文字を必ず色面の上に置く制約があったが、ダーク地ではその制約が外れ、レイアウトの自由度が上がる
  • 半透明パネルで本文をまとめることで、特大見出しの余白に情報を『浮かせる』。パネルが無いと本文が地に直置きになり、見出しの圧に負けて読み流される
  • 彩度の高い写真が無くてもマルーンの色面1枚と明朝の書体コントラストだけで『重厚』な印象が出せる。写真映えを謳う様式だが、写真が無くても成立する

実装メモ — 踏んだ罠

  • 画面右への裁ち落としは、要素をずらす負のmarginが要らない。h1をnowrapのまま親のpadding位置から自然に伸ばすだけでbodyのoverflow:hiddenに食われて裁ち落とせる。左に出す02は開始位置自体をずらす必要があるため負のmarginが要ったが、右はコンテナ幅を超えた分が自動で切れるので実装が1行少ない
  • 粒状ノイズのopacityは明地版の.10のままだと暗い地の上で『砂嵐』に見えて質感ではなくノイズに見えた。.05まで下げてようやく『地の質感』に留まった。地の明度で最適な粒の強さが変わるので、様式を跨いで同じ値を使い回さない
  • 半透明パネルの実効色は実測: rgba(245,242,234,.10) を地 #0d1220 に重ねると合成後は約 #242834。本文 #cbd2de は9.67:1、eyebrow #99a1b3 は5.67:1で通る。当初 eyebrow に #8a93a6 を使ったが4.76:1とAA(4.5:1)ギリギリで、文字サイズ10pxには余裕が無いため明度を上げた
  • 【実際に踏んだ罠】ブロブを左下、パネルも左下に置いた最初の版では、パネルの左上がブロブと重なり実効色が地(#0d1220)ではなくブロブ(#7b1418)との合成になった。この場合の合成色は約 rgb(135,42,45) で、eyebrow #99a1b3 のコントラストは5.6:1→3.37:1まで落ち、AA(4.5:1)を割った。ガラスパネルの色は『どこに置くか』で毎回変わるため、地の色だけで計算して満足せず、実際に重なる位置ごとに最も不利な箇所で測り直す必要がある(03_glassmorphismで踏んだのと同じ罠を、位置を変えたことで再現してしまった)。対策としてブロブを右下、パネルを左下に離して重なりそのものを無くした
  • 縦組みの白文字はブロブの外(無地の上)に置いても地とのコントラストが18.7:1あるため消えない。明地版(02)の『白抜きは色面の上に置かないと消える』という制約はダーク地には当てはまらない — 地の明度自体がコントラストの主因かブロブの主因かで対策が変わる
  • backdrop-filter:blur(14px) は地の粒状ノイズも一緒にぼかすため、パネルの内側だけ質感が消える。ノイズ層(body::before)をパネルより手前に重ねないよう z-index の順序に注意(今回はパネルがinset:0の疑似要素より後の要素なので自然に手前へ来る)

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

壊れる条件

コントラスト実測

対象文字色背景実効背景判定
見出し(Nocturne)#f5f1e8#0d1220#0d122016.57:1AA 合格
縦組み(WORKS、ブロブ外の無地上)#f5f1e8#0d1220#0d122016.57:1AA 合格
パネルeyebrow(実測パネル地)#99a1b3#0d1220#2428345.67:1AA 合格(余裕なし)
パネル見出し(ja)#f5f1e8#0d1220#24283413.05:1AA 合格
パネル本文(lede)#cbd2de#0d1220#2428349.67:1AA 合格
修正前・パネルeyebrow(#8a93a6)#8a93a6#0d1220#2428344.76:1AA 合格(余裕なし)

アクセシビリティ

スマホへの落とし方

ブラウザ対応

関連するパーツ

コードを見る
<!doctype html>
<html lang="ja"><head><meta charset="utf-8"><title>特大タイポ・ヒーロー(ダーク)デモ</title>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<!-- 02_oversized_type と同じウェイトのみ読み込む。字体を合わせて骨格の統一感を保つ -->
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@900&family=Shippori+Mincho:wght@700&family=Noto+Serif+JP:wght@400&display=swap">
<style>
*{box-sizing:border-box;margin:0;padding:0}
body{
  background:#0d1220;
  color:#f5f1e8;
  padding:34px 30px;
  overflow:hidden;           /* 裁ち落としの受け皿 */
  position:relative;
  min-height:340px;
}
/* 粒状のノイズ。ダーク地では明地版(02)と同じopacity(.10)だと砂嵐に見えたため.05まで落とした */
body::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;
  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.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* 大判の有機的な色面を1枚。今回は右下に配置(02は右上)で背骨の位置を変えた。
   左下に置いていた版はパネルと重なり、パネルの実効色計算が崩れる罠を踏んだため右下に移した */
.blob{
  position:absolute;bottom:-70px;right:-80px;width:320px;height:320px;
  background:#7b1418;opacity:.85;
  border-radius:58% 42% 46% 54% / 44% 58% 42% 56%;
  transform:rotate(16deg);
}
.inner{position:relative;padding-top:10px}
h1{
  font-family:'Playfair Display',serif;   /* ハイコントラストのDidone系 */
  font-size:clamp(56px,15vw,132px);
  font-weight:900;
  line-height:.9;
  letter-spacing:-.02em;
  white-space:nowrap;
  color:#f5f1e8;
}
/* 縦組み。ダーク地は地そのものにコントラストがあるため、明地版(02)のように
   色面(ブロブ)の上に置かなくても白文字のまま消えない。ここでは意図的にブロブの外=
   無地の上に置いて成立を確認している */
.vertical{
  position:absolute;top:30px;right:28px;
  writing-mode:vertical-rl;
  font-family:'Shippori Mincho',serif;
  font-weight:700;
  font-size:13px;letter-spacing:.32em;color:#f5f1e8;
}
/* 半透明パネル。02では省いていた「手癖5」をここで足す。
   実効色は実測: rgba(245,242,234,.10) を #0d1220 に重ねると合成後は #242834 相当 */
.panel{
  position:absolute;left:30px;bottom:24px;
  max-width:19em;
  background:rgba(245,242,234,.10);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.16);
  border-radius:10px;
  padding:16px 20px;
}
.eyebrow{
  font-size:10px;letter-spacing:.28em;color:#99a1b3;margin-bottom:8px;
  font-family:system-ui,sans-serif;
}
.ja{
  font-family:'Shippori Mincho',serif;
  font-size:15px;font-weight:700;letter-spacing:.04em;color:#f5f1e8;margin-bottom:8px;
}
.lede{
  font-family:'Noto Serif JP',serif;
  font-size:12px;line-height:1.9;color:#cbd2de;
  max-width:17em;            /* 和文は em で取る。ch は半角基準で半分になる */
}
</style></head><body>
<div class="blob"></div>
<div class="vertical">WORKS</div>
<div class="inner">
  <h1>Nocturne</h1>
</div>
<div class="panel">
  <p class="eyebrow">SELECTED WORKS</p>
  <p class="ja">夜は、輪郭を濃くする。</p>
  <p class="lede">光を絞るほど、形だけが残る。写真を使わず、文字と質感だけで魅せるヒーロー。</p>
</div>
</body></html>
出典・参考: STYLE_AXIS.md の様式定義(03 特大タイポ・ダーク=濃紺背景に画面を突き抜ける特大文字)と ito-design-taste の手癖(明朝特大・テクスチャ地・大判の有機色面・色数を絞る・半透明パネル・裁ち落とし・縦組み)を、02_oversized_type が未収集のまま残していた『ダーク』の定義部分に適用した自作実装