Skip to content

【テーマ】BurgerEditor のブロック余白が :where() と rem のためテーマ側で壊れる #4526

Description

@kaburk

概要

bc-burger-editor の bge_style_default.css におけるブロックの箱モデル指定が、
詳細度0の :where() と rem で書かれているため、テーマの書き方によっては
意図した余白にならず、ブロックが縦に詰まって表示されます。

4系(商用 BurgerEditor 同梱)との違いは次のとおりです。

4系 5系コア
セレクタ [data-bgb](詳細度 0,1,0) :where([data-bgb])(詳細度 0)
値 margin: 0 0 1.5em(本文の文字サイズ基準) margin-block-end: var(--bge-options-margin) = 1.5rem(ルート基準)

baserCMS version : 5.4.0

問題1: 詳細度0のためテーマのCSSリセットに負ける

多くのテーマが持つ以下のようなリセットは要素セレクタ(詳細度 0,0,1)なので、
読み込み順に関係なく :where()(詳細度 0)に勝ちます。

div, p, ul, ... { margin: 0; padding: 0; border: 0; background: 0 0 }

結果、[data-bgb] の margin-block-end / padding / border / background-color が
すべて潰れます。4系は詳細度があったので勝てていました。

問題2: rem がテーマのルート文字サイズに引きずられる

html { font-size: 62.5% }(1rem = 10px)を使うテーマでは、
本来 27px(本文 18px × 1.5em)取れるはずの余白が 15px にしかなりません。

症状

段組みブロック(text-image2 等)が縦に詰まり、画像が隙間なく連なって表示されます。

本文HTMLも読み込むCSSもファイル単位では同一なので、原因の特定が難しいです。
実際に4系から移行したサイトで、computed style を確認するまで気付けませんでした
(margin-bottom: 0px になっていた)。

再現手順

  1. CSSリセットで div { margin: 0 } を当てているテーマを用意する
    (html { font-size: 62.5% } も併用するとより顕著)
  2. BurgerEditor の段組みブロックを複数含むページを作る
  3. フロント表示で [data-bgb] の computed style を確認する
    → margin-block-end が 0 になっている

TODO

  • ブロックの箱モデル指定(margin / padding / border / background)は
    :where() を外して [data-bgb] で書く
  • --bge-options-margin-* の既定値を rem ではなく em にする
    (4系と同じ「本文の文字サイズ基準」に戻る)
  • 同梱テーマで表示が変わらないことを確認する

備考

テーマ側では以下で回避できます。

:root {
  --bge-options-margin-small: 1em;
  --bge-options-margin-normal: 1.5em;
  --bge-options-margin-large: 4em;
}
[data-bgb] {
  margin-block-end: var(--bge-options-margin, 1.5em);
  padding: var(--bge-options-padding, 0);
  border: var(--bge-options-border, none);
  background-color: var(--bge-options-bgcolor, transparent);
}

ただし4系から移行したテーマすべてで同じ対処が必要になるため、
コア側で解決していただけるとありがたいです。

:where() はテーマから上書きしやすくする意図だと思いますが、
リセットCSSにも負けてしまうため、既定値としては効かない場面が多いように思います。

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions