slidev-theme-gtlabo 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- <!-- components/SectionDivider.vue -->
1
+ <!-- components/TableOfContents.vue -->
2
2
  <template>
3
3
  <div class="table-of-contents-container flex flex-col justify-start bg-white overflow-hidden relative">
4
4
  <!-- 厳密な背景グリッド - Swiss Styleの基礎 -->
@@ -16,7 +16,7 @@
16
16
 
17
17
  <!-- 右側の装飾バー群 - cover.vueと同じスタイル -->
18
18
  <div class="absolute right-0 top-0 w-1/4 h-full z-0 pointer-events-none">
19
- <div class="absolute right-0 top-0 w-full h-full bg-gradient-to-l from-slate-200 to-slate-200/10" />
19
+ <div class="absolute right-0 top-0 w-full h-full bg-slate-50" />
20
20
  <div class="absolute right-[15%] top-0 w-32 h-[35%] bg-sky-600/10" />
21
21
  <div class="absolute right-0 bottom-0 w-2 h-[40%] bg-slate-900" />
22
22
  </div>
@@ -40,18 +40,108 @@
40
40
  <!-- メインコンテンツ - 厳密なグリッドベース -->
41
41
  <div :class="mainContentClasses" class="relative z-10">
42
42
  <div class="max-w-full w-full">
43
- <!-- 共通の目次表示 -->
44
- <div :class="gridClasses">
45
- <ChapterItem
46
- v-for="(chapter, index) in displayChapters"
43
+ <!-- 通常の目次表示 -->
44
+ <div
45
+ v-if="!isAppendixSection"
46
+ :class="gridClasses"
47
+ >
48
+ <div
49
+ v-for="(chapter, index) in regularChapters"
47
50
  :key="chapter.key"
48
- :chapter="chapter"
49
- :index="index"
50
- :is-next="isNextChapter(chapter.key)"
51
- :is-appendix="isAppendixSection"
52
- :size="size"
53
- :config="currentConfig"
54
- />
51
+ class="flex flex-col "
52
+ :class="isNextChapter(chapter.key) ? 'border-sky-500 border-l-8 pl-6' : 'border-slate-200 border-l-4 pl-7'"
53
+ >
54
+ <!-- 次の章インジケーター - sky-500アクセント -->
55
+ <div
56
+ v-if="isNextChapter(chapter.key)"
57
+ :class="nextBadgeClasses"
58
+ class="bg-sky-500 text-white font-bold uppercase tracking-widest leading-none"
59
+ >
60
+ NEXT
61
+ </div>
62
+
63
+ <!-- 章番号とタイトル - 左揃え、明確なヒエラルキー -->
64
+ <div :class="chapterHeaderClasses">
65
+ <div class="flex items-end space-x-3 w-full">
66
+ <div :class="chapterNumberClasses" class="flex text-slate-900 font-bold tabular-nums leading-none">
67
+ {{ String(index + 1).padStart(2, '0') }}
68
+ </div>
69
+ <div class="flex-1">
70
+ <div class="border-b border-slate-900 mb-2">
71
+ <span :class="chapterTitleClasses" class="text-slate-900 font-bold leading-tight">
72
+ {{ chapter.title }}
73
+ </span>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ </div>
78
+
79
+ <!-- セクション一覧 - 機能的な情報構造 -->
80
+ <div :class="sectionListClasses">
81
+ <div
82
+ v-for="(sectionData, sectionIndex) in chapter.uniqueSections"
83
+ :key="`${chapter.key}-${sectionIndex}`"
84
+ class="flex items-start"
85
+ >
86
+ <span class="w-1 h-1 bg-slate-400 mr-2 mt-1.5 flex-shrink-0 rounded-full"></span>
87
+ <span :class="sectionTextClasses" class="text-slate-600 leading-snug">
88
+ {{ sectionData.title }}
89
+ </span>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </div>
94
+
95
+ <!-- 付録の目次表示 -->
96
+ <div
97
+ v-else
98
+ :class="gridClasses"
99
+ >
100
+ <div
101
+ v-for="(chapter, index) in appendixChapters"
102
+ :key="chapter.key"
103
+ class="flex flex-col"
104
+ :class="isNextChapter(chapter.key) ? 'border-sky-500 border-l-8 pl-6' : 'border-slate-200 border-l-4 pl-7'"
105
+ >
106
+ <!-- 次の章インジケーター -->
107
+ <div
108
+ v-if="isNextChapter(chapter.key)"
109
+ :class="nextBadgeClasses"
110
+ class="bg-sky-500 text-white font-bold uppercase tracking-widest leading-none"
111
+ >
112
+ NEXT
113
+ </div>
114
+
115
+ <!-- 付録番号とタイトル -->
116
+ <div :class="chapterHeaderClasses">
117
+ <div class="flex items-end space-x-3 w-full">
118
+ <div :class="chapterNumberClasses" class="flex text-slate-900 font-bold tabular-nums leading-none">
119
+ A{{ index + 1 }}
120
+ </div>
121
+ <div class="flex-1">
122
+ <div class="border-b border-slate-900 mb-2">
123
+ <span :class="chapterTitleClasses" class="text-slate-900 font-bold leading-none">
124
+ {{ chapter.title }}
125
+ </span>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+
131
+ <!-- セクション一覧 -->
132
+ <div :class="sectionListClasses">
133
+ <div
134
+ v-for="(sectionData, sectionIndex) in chapter.uniqueSections"
135
+ :key="`${chapter.key}-${sectionIndex}`"
136
+ class="flex items-start"
137
+ >
138
+ <span class="w-1 h-1 bg-slate-400 mr-2 mt-1.5 flex-shrink-0 rounded-full"></span>
139
+ <span :class="sectionTextClasses" class="text-slate-600 leading-snug">
140
+ {{ sectionData.title }}
141
+ </span>
142
+ </div>
143
+ </div>
144
+ </div>
55
145
  </div>
56
146
  </div>
57
147
  </div>
@@ -62,11 +152,10 @@
62
152
  </div>
63
153
  </div>
64
154
  </template>
65
-
155
+
66
156
  <script setup>
67
157
  import { computed } from 'vue'
68
158
  import { useSlideContext } from '@slidev/client'
69
- import ChapterItem from './ChapterItem.vue'
70
159
 
71
160
  // Slidevコンテキストからconfigsにアクセス
72
161
  const { $slidev } = useSlideContext()
@@ -76,7 +165,7 @@ const props = defineProps({
76
165
  nextChapter: {
77
166
  type: String,
78
167
  required: true,
79
- description: '次に始まる章のキー(例: "c2", "c3", "ap1")'
168
+ description: '次に始まる章のキー'
80
169
  },
81
170
  currentChapter: {
82
171
  type: String,
@@ -124,14 +213,14 @@ const isAppendixSection = computed(() => {
124
213
  return props.nextChapter.startsWith('ap')
125
214
  })
126
215
 
127
- // 章リストを取得する共通関数
128
- const getChapterList = (filterFn) => {
216
+ // 通常の章リスト(refと付録を除外)
217
+ const regularChapters = computed(() => {
129
218
  if (!chapters || typeof chapters !== 'object') {
130
219
  return []
131
220
  }
132
221
 
133
222
  return Object.keys(chapters)
134
- .filter(filterFn)
223
+ .filter(chapterKey => chapterKey !== 'ref' && !chapterKey.startsWith('ap'))
135
224
  .map(chapterKey => {
136
225
  const chapter = chapters[chapterKey]
137
226
  const sections = chapter?.sections || {}
@@ -142,32 +231,47 @@ const getChapterList = (filterFn) => {
142
231
  title: chapter?.title || `章 ${chapterKey}`,
143
232
  sections: sectionKeys,
144
233
  sectionData: sections,
145
- uniqueSections: getUniqueSections(chapterKey)
234
+ uniqueSections: getUniqueSections(chapterKey) // 重複除去済みセクション
146
235
  }
147
236
  })
148
- }
149
-
150
- // 通常の章リスト(refと付録を除外)
151
- const regularChapters = computed(() =>
152
- getChapterList(chapterKey => chapterKey !== 'ref' && !chapterKey.startsWith('ap'))
153
- )
237
+ })
154
238
 
155
239
  // 付録の章リスト
156
- const appendixChapters = computed(() =>
157
- getChapterList(chapterKey => chapterKey.startsWith('ap'))
158
- )
240
+ const appendixChapters = computed(() => {
241
+ if (!chapters || typeof chapters !== 'object') {
242
+ return []
243
+ }
244
+
245
+ return Object.keys(chapters)
246
+ .filter(chapterKey => chapterKey.startsWith('ap'))
247
+ .map(chapterKey => {
248
+ const chapter = chapters[chapterKey]
249
+ const sections = chapter?.sections || {}
250
+ const sectionKeys = Object.keys(sections)
251
+
252
+ return {
253
+ key: chapterKey,
254
+ title: chapter?.title || `付録 ${chapterKey}`,
255
+ sections: sectionKeys,
256
+ sectionData: sections,
257
+ uniqueSections: getUniqueSections(chapterKey) // 重複除去済みセクション
258
+ }
259
+ })
260
+ })
159
261
 
160
- // 表示する章リスト(条件に応じて切り替え)
161
- const displayChapters = computed(() =>
162
- isAppendixSection.value ? appendixChapters.value : regularChapters.value
163
- )
262
+ // セクションタイトルを取得
263
+ const getSectionTitle = (chapterKey, sectionKey) => {
264
+ const chapter = chapters[chapterKey]
265
+ const sectionData = chapter?.sections?.[sectionKey]
266
+ return sectionData?.title || `セクション ${sectionKey}`
267
+ }
164
268
 
165
269
  // 次の章かどうかを判定
166
270
  const isNextChapter = (chapterKey) => {
167
271
  return props.nextChapter === chapterKey
168
272
  }
169
273
 
170
- // サイズ設定
274
+ // サイズ設定 - 縦幅を大幅削減
171
275
  const sizeConfigs = {
172
276
  xs: {
173
277
  columns: 4,
@@ -248,11 +352,19 @@ const headerClasses = computed(() => `text-left ${currentConfig.value.headerPadd
248
352
  const headerTitleClasses = computed(() => currentConfig.value.headerTitle)
249
353
  const mainContentClasses = computed(() => `flex-1 ${currentConfig.value.mainPadding}`)
250
354
  const gridClasses = computed(() => `grid grid-cols-${currentConfig.value.columns} ${currentConfig.value.gridGap}`)
355
+ const chapterHeaderClasses = computed(() => currentConfig.value.chapterHeader)
356
+ const chapterNumberClasses = computed(() => currentConfig.value.chapterNumber)
357
+ const chapterTitleClasses = computed(() => currentConfig.value.chapterTitle)
358
+ const sectionListClasses = computed(() => currentConfig.value.sectionList)
359
+ const sectionTextClasses = computed(() => currentConfig.value.sectionText)
360
+ const appendixNumberClasses = computed(() => currentConfig.value.appendixNumber)
361
+ const nextBadgeClasses = computed(() => currentConfig.value.nextBadge)
251
362
  </script>
252
363
 
253
364
  <style scoped>
254
365
  /* このコンポーネント専用のスタイル */
255
366
  .table-of-contents-container {
367
+ /* ページ全体をカバーする背景 */
256
368
  position: absolute !important;
257
369
  top: 0 !important;
258
370
  left: 50% !important;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slidev-theme-gtlabo",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "description": "A Slidev theme for laboratory presentations with customizable components",
5
5
  "author": "mksmkss",
6
6
  "license": "MIT",
@@ -1,350 +0,0 @@
1
- <!-- components/TableOfContents.vue -->
2
- <template>
3
- <div class="table-of-contents-container flex flex-col justify-center bg-theme-color">
4
- <!-- ヘッダー -->
5
- <div
6
- v-if="isAppendixSection"
7
- :class="headerClasses"
8
- >
9
- <p :class="headerTitleClasses">
10
- 付録
11
- </p>
12
- </div>
13
-
14
- <!-- メインコンテンツ -->
15
- <div :class="mainContentClasses">
16
- <div class="max-w-full w-full">
17
- <!-- 通常の目次表示 -->
18
- <div
19
- v-if="!isAppendixSection"
20
- :class="gridClasses"
21
- >
22
- <div
23
- v-for="(chapter, index) in regularChapters"
24
- :key="chapter.key"
25
- class="flex flex-col"
26
- :class="{ 'relative': isNextChapter(chapter.key) }"
27
- >
28
- <!-- 次の章の強調表示 -->
29
- <div
30
- v-if="isNextChapter(chapter.key)"
31
- :class="highlightBorderClasses"
32
- />
33
- <div
34
- v-if="isNextChapter(chapter.key)"
35
- :class="nextBadgeClasses"
36
- >
37
- NEXT
38
- </div>
39
-
40
- <!-- 章番号とタイトル -->
41
- <div :class="chapterHeaderClasses">
42
- <div :class="chapterNumberClasses">
43
- {{ String(index + 1).padStart(2, '0') }}
44
- </div>
45
- <div class="flex-1 border-b border-white pb-2">
46
- <span :class="chapterTitleClasses">
47
- {{ chapter.title }}
48
- </span>
49
- </div>
50
- </div>
51
-
52
- <!-- セクション一覧(重複除去済み) -->
53
- <div :class="sectionListClasses">
54
- <div
55
- v-for="(sectionData, sectionIndex) in chapter.uniqueSections"
56
- :key="`${chapter.key}-${sectionIndex}`"
57
- :class="sectionItemClasses"
58
- >
59
- <span :class="sectionTextClasses">
60
- {{ sectionData.title }}
61
- </span>
62
- </div>
63
- </div>
64
- </div>
65
- </div>
66
-
67
- <!-- 付録の目次表示 -->
68
- <div
69
- v-else
70
- :class="gridClasses"
71
- >
72
- <div
73
- v-for="(chapter, index) in appendixChapters"
74
- :key="chapter.key"
75
- class="flex flex-col"
76
- :class="{ 'relative': isNextChapter(chapter.key) }"
77
- >
78
- <!-- 次の章の強調表示 -->
79
- <div
80
- v-if="isNextChapter(chapter.key)"
81
- :class="highlightBorderClasses"
82
- />
83
- <div
84
- v-if="isNextChapter(chapter.key)"
85
- :class="nextBadgeClasses"
86
- >
87
- NEXT
88
- </div>
89
-
90
- <!-- 付録番号とタイトル -->
91
- <div :class="chapterHeaderClasses">
92
- <div :class="appendixNumberClasses">
93
- A{{ index + 1 }}
94
- </div>
95
- <div class="flex-1 border-b border-white pb-2">
96
- <h2 :class="chapterTitleClasses">
97
- {{ chapter.title }}
98
- </h2>
99
- </div>
100
- </div>
101
-
102
- <!-- セクション一覧(重複除去済み) -->
103
- <div :class="sectionListClasses">
104
- <div
105
- v-for="(sectionData, sectionIndex) in chapter.uniqueSections"
106
- :key="`${chapter.key}-${sectionIndex}`"
107
- :class="sectionItemClasses"
108
- >
109
- <span :class="sectionTextClasses">
110
- {{ sectionData.title }}
111
- </span>
112
- </div>
113
- </div>
114
- </div>
115
- </div>
116
- </div>
117
- </div>
118
- </div>
119
- </template>
120
-
121
- <script setup>
122
- import { computed } from 'vue'
123
- import { useSlideContext } from '@slidev/client'
124
-
125
- // Slidevコンテキストからconfigsにアクセス
126
- const { $slidev } = useSlideContext()
127
- const chapters = $slidev.configs.chapters || {}
128
-
129
- const props = defineProps({
130
- nextChapter: {
131
- type: String,
132
- required: true,
133
- description: '次に始まる章のキー'
134
- },
135
- currentChapter: {
136
- type: String,
137
- required: false,
138
- description: '現在の章のキー(進捗表示用)'
139
- },
140
- size: {
141
- type: String,
142
- default: 'md',
143
- validator: (value) => ['xs', 'sm', 'md', 'lg', 'xl'].includes(value),
144
- description: '目次のサイズ(xs, sm, md, lg, xl)'
145
- }
146
- })
147
-
148
- // セクションの重複を除去する関数
149
- const getUniqueSections = (chapterKey) => {
150
- const chapter = chapters[chapterKey]
151
- if (!chapter?.sections) return []
152
-
153
- const sections = chapter.sections
154
- const sectionKeys = Object.keys(sections)
155
- const uniqueSections = []
156
- let previousTitle = null
157
-
158
- for (const sectionKey of sectionKeys) {
159
- const sectionData = sections[sectionKey]
160
- const currentTitle = sectionData?.title || `セクション ${sectionKey}`
161
-
162
- // 前のセクションと同じタイトルでない場合のみ追加
163
- if (currentTitle !== previousTitle) {
164
- uniqueSections.push({
165
- key: sectionKey,
166
- title: currentTitle,
167
- originalData: sectionData
168
- })
169
- previousTitle = currentTitle
170
- }
171
- }
172
-
173
- return uniqueSections
174
- }
175
-
176
- // 次の章が付録かどうかを判定
177
- const isAppendixSection = computed(() => {
178
- return props.nextChapter.startsWith('ap')
179
- })
180
-
181
- // 通常の章リスト(refと付録を除外)
182
- const regularChapters = computed(() => {
183
- if (!chapters || typeof chapters !== 'object') {
184
- return []
185
- }
186
-
187
- return Object.keys(chapters)
188
- .filter(chapterKey => chapterKey !== 'ref' && !chapterKey.startsWith('ap'))
189
- .map(chapterKey => {
190
- const chapter = chapters[chapterKey]
191
- const sections = chapter?.sections || {}
192
- const sectionKeys = Object.keys(sections)
193
-
194
- return {
195
- key: chapterKey,
196
- title: chapter?.title || `章 ${chapterKey}`,
197
- sections: sectionKeys,
198
- sectionData: sections,
199
- uniqueSections: getUniqueSections(chapterKey) // 重複除去済みセクション
200
- }
201
- })
202
- })
203
-
204
- // 付録の章リスト
205
- const appendixChapters = computed(() => {
206
- if (!chapters || typeof chapters !== 'object') {
207
- return []
208
- }
209
-
210
- return Object.keys(chapters)
211
- .filter(chapterKey => chapterKey.startsWith('ap'))
212
- .map(chapterKey => {
213
- const chapter = chapters[chapterKey]
214
- const sections = chapter?.sections || {}
215
- const sectionKeys = Object.keys(sections)
216
-
217
- return {
218
- key: chapterKey,
219
- title: chapter?.title || `付録 ${chapterKey}`,
220
- sections: sectionKeys,
221
- sectionData: sections,
222
- uniqueSections: getUniqueSections(chapterKey) // 重複除去済みセクション
223
- }
224
- })
225
- })
226
-
227
- // セクションタイトルを取得
228
- const getSectionTitle = (chapterKey, sectionKey) => {
229
- const chapter = chapters[chapterKey]
230
- const sectionData = chapter?.sections?.[sectionKey]
231
- return sectionData?.title || `セクション ${sectionKey}`
232
- }
233
-
234
- // 次の章かどうかを判定
235
- const isNextChapter = (chapterKey) => {
236
- return props.nextChapter === chapterKey
237
- }
238
-
239
- // サイズ設定に基づく動的スタイル
240
- const sizeConfigs = {
241
- xs: {
242
- columns: 4,
243
- headerPadding: 'pt-6 pb-3 px-4 ',
244
- headerTitle: 'text-2xl',
245
- mainPadding: 'px-4 py-4',
246
- gridGap: 'gap-x-4 gap-y-2',
247
- chapterNumber: 'text-2xl',
248
- chapterTitle: 'text-sm font-bold',
249
- chapterHeader: 'mb-1',
250
- sectionList: 'ml-8 space-y-0.5',
251
- sectionText: 'text-xs',
252
- appendixNumber: 'text-lg',
253
- nextBadge: 'px-1 py-0.5 text-xs'
254
- },
255
- sm: {
256
- columns: 3,
257
- headerPadding: 'pt-8 pb-4 px-6',
258
- headerTitle: 'text-3xl',
259
- mainPadding: 'px-6 py-6',
260
- gridGap: 'gap-x-6 gap-y-3',
261
- chapterNumber: 'text-3xl',
262
- chapterTitle: 'text-base',
263
- chapterHeader: 'mb-2',
264
- sectionList: 'ml-10 space-y-1',
265
- sectionText: 'text-sm',
266
- appendixNumber: 'text-2xl',
267
- nextBadge: 'px-2 py-1 text-xs'
268
- },
269
- md: {
270
- columns: 2,
271
- headerPadding: 'pt-14 pb-8 px-10',
272
- headerTitle: 'text-5xl',
273
- mainPadding: 'px-6 py-40',
274
- gridGap: 'gap-x-12 gap-y-2',
275
- chapterNumber: 'text-6xl',
276
- chapterTitle: 'text-2xl',
277
- chapterHeader: 'mb-4',
278
- sectionList: 'ml-20 space-y-2',
279
- sectionText: 'text-lg',
280
- appendixNumber: 'text-4xl',
281
- nextBadge: 'px-3 py-1 text-sm'
282
- },
283
- lg: {
284
- columns: 2,
285
- headerPadding: 'pt-16 pb-10 px-12',
286
- headerTitle: 'text-6xl',
287
- mainPadding: 'px-16 py-16',
288
- gridGap: 'gap-x-20 gap-y-10',
289
- chapterNumber: 'text-7xl',
290
- chapterTitle: 'text-3xl',
291
- chapterHeader: 'mb-6',
292
- sectionList: 'ml-24 space-y-3',
293
- sectionText: 'text-xl',
294
- appendixNumber: 'text-5xl',
295
- nextBadge: 'px-4 py-2 text-base'
296
- },
297
- xl: {
298
- columns: 1,
299
- headerPadding: 'pt-20 pb-12 px-16',
300
- headerTitle: 'text-8xl',
301
- mainPadding: 'px-20 py-20',
302
- gridGap: 'gap-x-24 gap-y-12',
303
- chapterNumber: 'text-9xl',
304
- chapterTitle: 'text-5xl',
305
- chapterHeader: 'mb-8',
306
- sectionList: 'ml-32 space-y-4',
307
- sectionText: 'text-3xl',
308
- appendixNumber: 'text-7xl',
309
- nextBadge: 'px-5 py-2 text-lg'
310
- }
311
- }
312
-
313
- const currentConfig = computed(() => sizeConfigs[props.size])
314
-
315
- // 動的クラス
316
- const headerClasses = computed(() => `text-left ${currentConfig.value.headerPadding}`)
317
- const headerTitleClasses = computed(() => `${currentConfig.value.headerTitle} font-bold text-white`)
318
- const mainContentClasses = computed(() => `flex-1 ${currentConfig.value.mainPadding}`)
319
- const gridClasses = computed(() => `grid grid-cols-${currentConfig.value.columns} ${currentConfig.value.gridGap}`)
320
- const chapterHeaderClasses = computed(() => `flex items-center ${currentConfig.value.chapterHeader} relative z-5`)
321
- const chapterNumberClasses = computed(() => `${currentConfig.value.chapterNumber} font-bold text-white mr-2`)
322
- const chapterTitleClasses = computed(() => `${currentConfig.value.chapterTitle} font-bold text-white`)
323
- const sectionListClasses = computed(() => currentConfig.value.sectionList)
324
- const sectionItemClasses = computed(() => 'flex items-start')
325
- const sectionTextClasses = computed(() => `text-white ${currentConfig.value.sectionText} leading-relaxed`)
326
- const appendixNumberClasses = computed(() => `${currentConfig.value.appendixNumber} font-bold text-white mr-6 pb-2`)
327
- const highlightBorderClasses = computed(() => 'absolute -inset-2 border-4 border-yellow-400 rounded-lg opacity-80')
328
- const nextBadgeClasses = computed(() => `absolute -top-2 -right-2 bg-yellow-400 text-black ${currentConfig.value.nextBadge} rounded-full font-bold z-10`)
329
- </script>
330
-
331
- <style>
332
- /* このコンポーネント専用のスタイル */
333
- .table-of-contents-container {
334
- /* ページ全体をカバーする背景 */
335
- position: absolute !important;
336
- top: 0 !important;
337
- left: 50% !important;
338
- transform: translateX(-50%) !important;
339
- width: 100% !important;
340
- height: 100% !important;
341
- margin: 0 !important;
342
- box-sizing: border-box !important;
343
- z-index: 0 !important;
344
- }
345
-
346
- /* 背景色を確実に適用 */
347
- .table-of-contents-container.bg-theme-color {
348
- background-color: rgba(2, 132, 199, 1) !important;
349
- }
350
- </style>