From 288e62d7ebc53f14d32a2ba751dfa46603d736d1 Mon Sep 17 00:00:00 2001 From: ma91n Date: Tue, 8 Sep 2026 11:33:56 +0900 Subject: [PATCH 1/7] =?UTF-8?q?=E3=83=9B=E3=83=BC=E3=83=A0=E3=81=AE?= =?UTF-8?q?=E3=80=8C=E7=89=B9=E9=9B=86=E3=80=8D=E3=81=AE=E6=9E=A0=E3=82=92?= =?UTF-8?q?=E5=A4=96=E3=81=97=E3=80=81=E3=82=B5=E3=83=A0=E3=83=8D=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=82=92=E4=B8=8A=E3=81=AB=E5=85=A8=E5=B9=85=E3=81=A7?= =?UTF-8?q?=E7=BD=AE=E3=81=8F=20(#3241)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit パネルの既定はフラット (#3152) で、囲みが残っていたのはホームの「特集」だけだった。 枠と内側の余白を外し、そのぶんサムネイルを一覧カードの頭と同じ器 (幅100%・1200/630 #2790)にして 2 列の上に置く。隣の枠との区別は間隔と絵の大きさが付ける。 - series-panels-boxed → series-panels-stacked。枠線・padding・高さそろえを落とし、 カードを縦積みにして縦のガターも 48px にする - gallery.ejs の見本は「特集のパネル」として本物の partial を呼ぶ形のまま更新 - スタイルガイド「影は持たない」を「枠線を持つのはリンクプレビューだけ」に - CLAUDE.md の #3152 の節を今の決まりに書き換え Co-Authored-By: Claude Opus 5 (1M context) --- CLAUDE.md | 29 +++++++++++---- source/specials/styleguide/index.md | 2 +- themes/future/css-src/theme-styles.styl | 39 ++++++++++---------- themes/future/layout/_partial/archive.ejs | 8 ++-- themes/future/layout/_partial/panel-card.ejs | 4 +- themes/future/layout/gallery.ejs | 6 +-- 6 files changed, 50 insertions(+), 38 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index b4903221195..a56fd5074c1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1637,14 +1637,27 @@ bootstrap-subset → theme-styles.styl の順で `/css/site.css` に連結する ホームの本文にあった「連載から探す」2枚はこれに置き換えた。 **「連載がある」ことは新着一覧自体が名乗る**——1ページ目の25本のうち12本が連載所属で、 7本はタイトルに「連載」と入っている -- **パネルの既定はフラット。囲みを持つのは強調のために枚数を絞った枠だけ**(#3152)。 - 記事へ送るカードは一覧の1件(#2747)・We're hiring(#2820)の順に囲みを外してきて、 - 枠が残っていたのは連載・特設のパネルだけだった。**1枚のまとまりは間隔の比が作る** - - 囲みを持つのは `.series-panels-boxed` を足した枠だけで、いまはホームの「特集」 - (旬で2枚 #2892)だけが該当する。**「特設ページだから枠」ではなく「選んで - 絞ったから枠」**。全件を並べる `/series/` ・ `/specials/guidelines/` ・ - `/specials/httf/` ・ `/specials/advent-calendar/` ・ `/specials/techcast/` は - フラットになる +- **パネルは囲みを持たない。すべてフラット**(#3152 / #3241)。 + 記事へ送るカード(一覧の1件 #2747・We're hiring #2820・連載/特設のパネル #3152・ + ホームの「特集」#3241)はどれも枠を持たず、**1枚のまとまりは間隔の比が作る。** + 枠線を持つのはリンクプレビューだけ + - **ホームの「特集」(旬で2枚 #2892)はサムネを上に全幅で置く**(`series-panels-stacked`。 + 器は一覧カードの頭と同じ幅100%・1200/630 #2790)。2枚しか無い枠は、隣の枠 + (よく読まれている記事・新着一覧)との区別を**間隔と絵の大きさ**で付ける。 + 2枚が本文列を2列で分ける幅では絵が 386×202(幅1280px)で、新着の 257×135・ + ランキングの 72×48 より大きい。狭い画面では新着の頭と同じ 351×184 で縦に積む + - **200×135 を左に置く1列×2行は採らない。** 新着の1件(サムネ左 257×135 +文字)と + 同じ形・同じ左端になり、見出しを除くと新着の続きに見える。絵も新着より小さい。 + 幅375pxでは文字の列が 139px しか残らず、説明文が6行に折り返す + - **1200/630 は特集に来る絵の比に合う。** ガイドラインのロゴ 898×374(2.40)・ + HTTF のロゴ 640×280(2.29)は 3:2 の器では左右が切れる。連載の索引記事の + サムネも133本の中央値が 1.66 で、3:2 より OGP の比に近い + - **絵が無い旬の2枚(アドベントカレンダー・Tech Cast)も同じ大きさの空き枠。** + 場所だけ空けておく規則(#2864)のまま + - **縦のガターも 48px**(横帯のグリッドは 24px)。縦積みでは縦の隣も + 「上の文字 ↔ 下のサムネ」で、挟まる中の空き(12px)が横と同じになる。 + 幅375pxでは節が 722px(絵 184px × 2)になるが、1枚の絵は新着の頭と + 同じ寸法なので、読者がすぐ下で見る形と揃う - **外の空きは縦横で違う。比べる相手(中の空き)が軸ごとに違うため**。 **横は 48px**——隣の列との境目で近づくのは「左のカードの文字」と「右のカードの サムネ」なので、中の空き(サムネと文字の 12px)の4倍を取る。24px では2倍にしか diff --git a/source/specials/styleguide/index.md b/source/specials/styleguide/index.md index f28050f8d91..fa8f7eaf6f0 100644 --- a/source/specials/styleguide/index.md +++ b/source/specials/styleguide/index.md @@ -354,7 +354,7 @@ editable: true ### 影は持たない -影は1段階も持ちません。**読み物を並べる場所では輪郭をなるべく作りません。** 記事へ送るカードは囲みを持たず、1件のまとまりは**外の空きが中の空きより十分大きいこと**が作ります。[連載一覧](/series/)や特設ページのパネルは、隣の列との間が 48px で、サムネイルと文字の間(12px)の4倍です。枠線を持つのは**強調のために枚数を絞った枠**([トップページ](/)の「特集」)と、リンクプレビューだけです。タブも枠を持たず、切り替わる範囲は帯の下辺の線が示します。操作部品(検索窓・ドロップダウン)と、中身をまとめて囲む枠(統計・折りたたみ・年月のカード)はこの範囲の外です。枠がその部品の範囲そのものを作っているので、外すと境目が読めなくなります。 +影は1段階も持ちません。**読み物を並べる場所では輪郭をなるべく作りません。** 記事へ送るカードは囲みを持たず、1件のまとまりは**外の空きが中の空きより十分大きいこと**が作ります。[連載一覧](/series/)や特設ページのパネルは、隣の列との間が 48px で、サムネイルと文字の間(12px)の4倍です。[トップページ](/)の「特集」は2枚だけなので、隣の枠との区別は間隔とサムネイルの大きさが付けます。枠線を持つのはリンクプレビューだけです。タブも枠を持たず、切り替わる範囲は帯の下辺の線が示します。操作部品(検索窓・ドロップダウン)と、中身をまとめて囲む枠(統計・折りたたみ・年月のカード)はこの範囲の外です。枠がその部品の範囲そのものを作っているので、外すと境目が読めなくなります。 ### hover は1部品1反応 diff --git a/themes/future/css-src/theme-styles.styl b/themes/future/css-src/theme-styles.styl index 6420073b0eb..bc9b373c780 100644 --- a/themes/future/css-src/theme-styles.styl +++ b/themes/future/css-src/theme-styles.styl @@ -2283,26 +2283,27 @@ body { --bs-gutter-x: 48px; --bs-gutter-y: 24px; } -/* 強調のために枚数を絞った枠だけが囲みを持つ (#3152)。いまはトップの「特集」 - (旬で2枚 #2892)だけ。枠は「カード・箱を囲む線」なので rule-weak(区切りの線) - ではなく rule-base。 - 高さをそろえるのもここ。囲みがあると2枚の下辺のズレが線として見える。 - - **列の間は 24px に戻す。** 切れ目は枠が作っているので、間隔で作り直す必要が無い */ -.series-panels-boxed.row, -.series-panels-boxed > .row { - --bs-gutter-x: 24px; - --bs-gutter-y: 24px; +/* ホームの「特集」(旬で2枚 #2892)はサムネを上に全幅で置く (#3241)。器は一覧カードの + 頭と同じ(幅100%・1200/630 #2790)。囲みは持たず、隣の枠(ランキング・新着一覧)との + 区別は間隔と絵の大きさが付ける(2列で分ける幅では絵が新着のサムネより大きい)。 + 縦のガターも 48px。縦積みでは縦の隣も「上の文字 ↔ 下のサムネ」で、 + 挟まる中の空き(12px)が横と同じになる */ +.series-panels-stacked.row, +.series-panels-stacked > .row { + --bs-gutter-y: 48px; +} +.series-panels-stacked .article-card { + flex-direction: column; + align-items: stretch; } -.series-panels-boxed .article-card { - /* 「特集」のパネルは本文が4行(ラベル・タイトル・メタ・導線)で 91px あり、 - 88×59 のサムネの 1.5 倍の高さになる。12px では文字の塊がサムネに寄って見える - ので一段広げた (#2892) */ - gap: 16px; - padding: 18px; - height: 100%; - border: 1px solid var(--rule-base); - border-radius: card-radius; +.series-panels-stacked .panel-thumb { + flex: none; +} +.series-panels-stacked .panel-thumb img, +.series-panels-stacked .panel-thumb-empty { + width: 100%; + height: auto; + aspect-ratio: unquote('1200 / 630'); } /* パネルは題だけがリンクで、説明文・名札・余白は押せなかった (#3189)。 一覧の1件は題と説明文が同じ の中にあるが、パネルの説明は HTTF のように diff --git a/themes/future/layout/_partial/archive.ejs b/themes/future/layout/_partial/archive.ejs index 9480d59d045..a2059d22f82 100644 --- a/themes/future/layout/_partial/archive.ejs +++ b/themes/future/layout/_partial/archive.ejs @@ -121,11 +121,9 @@ <% const shownPanels = specialPanels.slice(0, 2); %> <% const sharedMore = new Set(shownPanels.map(function(p){ return p.more.url; })).size === 1 ? shownPanels[0].more : null; %> - <%# ここだけ囲みを持つ (#3152)。パネルの既定はフラットで、枠線は「強調のために - 枚数を絞った」ときの印。この枠は候補の中から旬の2枚を選んで出している (#2892) - ので、その条件に当たる。行き先の全件は /series/ ・ /specials/ が持ち、 - そちらはフラットな一覧になる %> -
+ <%# 囲みは持たない (#3241)。旬の2枚はサムネを上に全幅で置き(series-panels-stacked)、 + 隣の枠との区別は間隔と絵の大きさが付ける。行き先の全件は /series/ ・ /specials/ が持つ %> +
<%# 連載の索引は記事なので「特設ページ」では名前が実態と合わない (#2892)。 連載も特設ページも「記事1本ではない、まとまった読み物への入口」なので特集で束ねる %> <%- partial('section-heading', {id: 'specials', text: '特集'}) %> diff --git a/themes/future/layout/_partial/panel-card.ejs b/themes/future/layout/_partial/panel-card.ejs index 8e8ca97bcf7..294bc004a8b 100644 --- a/themes/future/layout/_partial/panel-card.ejs +++ b/themes/future/layout/_partial/panel-card.ejs @@ -4,8 +4,8 @@ **列は呼び出し側が持つ。** 2列(ホームの特集)と3列(それ以外)で違い、 グリッドの都合はカードの都合ではない。ここが描くのはカード1枚だけ。 - **囲みも呼び出し側が持つ。** 既定はフラットで、強調のために枚数を絞った枠だけが - 包みに `series-panels-boxed` を足して枠線と高さそろえを持つ (#3152)。 + **向きも呼び出し側が持つ。** 既定は横並び(88×59 のサムネを左)。ホームの「特集」は + 包みに `series-panels-stacked` を足してサムネを上に全幅で置く (#3241)。囲みはどれも持たない。 引数: url 行き先(必須) diff --git a/themes/future/layout/gallery.ejs b/themes/future/layout/gallery.ejs index 1a937a850bf..6343c57d7a3 100644 --- a/themes/future/layout/gallery.ejs +++ b/themes/future/layout/gallery.ejs @@ -245,9 +245,9 @@ <%- partial('_partial/archive-post', {post: samplePost, index: false}) %>