vivliostyle / themes

💅 Beautifully crafted CSS themes.
https://vivliostyle.github.io/themes/
Other
30 stars 10 forks source link

目次項目番号の形式はセクション番号の形式と同様に "1.1.1" のようにしたい #128

Closed MurakamiShinyu closed 2 months ago

MurakamiShinyu commented 2 months ago

Vivliostyle Base Theme で、セクション番号は "1.1.1" の形式になるように設定されています:

https://github.com/vivliostyle/themes/blob/main/packages/%40vivliostyle/theme-base/css/partial/section.css#L16-L20

しかし、目次項目番号はどのレベルの項目であってもひとつの番号で "1" という形式になっています:

https://github.com/vivliostyle/themes/blob/ebf926f25ccec72fc01bf7f27cad6dcac4af9273/packages/%40vivliostyle/theme-base/css/partial/toc.css#L6

目次項目番号とセクション番号は同じ形式("1.1.1")がデフォルトになるほうがよいと思います。

現状のThemeで --vs-toc--marker-display: inline を指定した場合の目次を表示したスクリーンショット: Screenshot 2024-08-26 19 09 21

スタイルの修正の案

https://github.com/vivliostyle/themes/blob/ebf926f25ccec72fc01bf7f27cad6dcac4af9273/packages/%40vivliostyle/theme-base/css/partial/toc.css#L6

  --vs-toc--marker-content: counters(vs-counter-toc, '.') ' ';

に変更する。

しかしこれだけだと、次のように目次のレイアウトが崩れる: Screenshot 2024-08-26 19 08 14

そこで、さらに次のように修正する:

https://github.com/vivliostyle/themes/blob/ebf926f25ccec72fc01bf7f27cad6dcac4af9273/packages/%40vivliostyle/theme-base/css/partial/toc.css#L8

  --vs-toc--marker-text-align: end;

に変更する。また、

https://github.com/vivliostyle/themes/blob/ebf926f25ccec72fc01bf7f27cad6dcac4af9273/packages/%40vivliostyle/theme-base/css/partial/toc.css#L32-L39

inset-inline-startwidth の指定を次のように変更する:

  inset-inline-start: calc(var(--vs-toc--ol-indent-size) * -6);
  inline-size: calc(var(--vs-toc--ol-indent-size) * 5.5);

NOTE:

この修正により、目次のレイアウトが次のようになる:

Screenshot 2024-08-26 19 06 47