Spaces:
Sleeping
Sleeping
| /* === TOC 區塊:捲動與底部空白 === */ | |
| :root { | |
| --toc-bottom-gap: 10px; | |
| } | |
| /* TOC 欄:sticky 定位,高度跟隨視窗 */ | |
| .toc-col-wrapper { | |
| /* 桌機:顯示 */ | |
| display: block; | |
| } | |
| /* 內層容器:只負責間距,overflow 由外層 sticky 容器管理 */ | |
| .toc-scroll { | |
| padding-right: 4px; | |
| padding-bottom: var(--toc-bottom-gap); | |
| } | |
| /* 再塞一塊看不見的空白,讓最後一個項目可以捲到按鈕上方 */ | |
| .toc-scroll::after { | |
| content: ""; | |
| display: block; | |
| height: var(--toc-bottom-gap); | |
| } | |
| /* === TOC 連結 / 按鈕 顏色設定 === */ | |
| /* 淺色主題 */ | |
| .toc-container .toc-link, | |
| .toc-container .toc-link:link, | |
| .toc-container .toc-link:visited, | |
| .toc-container .toc-link:active, | |
| .toc-container .toc-button { | |
| color: #228be6 ; | |
| text-decoration: none ; | |
| } | |
| /* 淺色主題 hover / active */ | |
| .toc-container .toc-link:hover, | |
| .toc-container .toc-button:hover, | |
| .toc-container .toc-button:active, | |
| .toc-container .toc-button:focus, | |
| .toc-container .toc-button[data-active="true"] { | |
| color: #228be6 ; | |
| background-color: transparent ; | |
| box-shadow: none ; | |
| } | |
| /* 深色主題 */ | |
| [data-mantine-color-scheme="dark"] .toc-container .toc-link, | |
| [data-mantine-color-scheme="dark"] .toc-container .toc-link:link, | |
| [data-mantine-color-scheme="dark"] .toc-container .toc-link:visited, | |
| [data-mantine-color-scheme="dark"] .toc-container .toc-link:active, | |
| [data-mantine-color-scheme="dark"] .toc-container .toc-button { | |
| color: #b197fc ; | |
| } | |
| [data-mantine-color-scheme="dark"] .toc-container .toc-link:hover, | |
| [data-mantine-color-scheme="dark"] .toc-container .toc-button:hover, | |
| [data-mantine-color-scheme="dark"] .toc-container .toc-button:active, | |
| [data-mantine-color-scheme="dark"] .toc-container .toc-button:focus, | |
| [data-mantine-color-scheme="dark"] .toc-container .toc-button[data-active="true"] { | |
| color: #b197fc ; | |
| background-color: transparent ; | |
| box-shadow: none ; | |
| } | |
| /* TOC 內所有超連結都不要底線 */ | |
| .toc-scroll a, | |
| .toc-scroll a:link, | |
| .toc-scroll a:visited, | |
| .toc-scroll a:hover, | |
| .toc-scroll a:active { | |
| text-decoration: none ; | |
| } | |
| /* 目前閱讀的段落在 TOC 上高亮 */ | |
| .toc-item.toc-active .mantine-Button-root { | |
| font-weight: 600; | |
| border-left: 3px solid var(--mantine-color-teal-6); | |
| padding-left: 10px; | |
| background-color: rgba(56, 178, 172, 0.08); | |
| } | |
| /* 讓目錄按鈕的文字可以換行 */ | |
| .toc-button { | |
| white-space: normal; | |
| height: auto; | |
| line-height: 1.4; | |
| } | |
| .toc-button .mantine-Button-label { | |
| white-space: normal; | |
| text-align: left; | |
| overflow: visible; | |
| text-overflow: clip; | |
| } | |
| /* =================================================================== | |
| 響應式:小螢幕隱藏 TOC | |
| =================================================================== */ | |
| /* < 768px:隱藏 TOC,主內容全寬 */ | |
| @media (max-width: 768px) { | |
| .toc-col-wrapper { | |
| display: none ; | |
| } | |
| } | |
| /* 768px ~ 992px:顯示但縮小 */ | |
| @media (min-width: 769px) and (max-width: 992px) { | |
| .toc-scroll { | |
| max-height: calc(100vh - 140px); | |
| } | |
| } | |
| /* =================================================================== | |
| 視窗過小(縮放超過 125%)時也隱藏 TOC | |
| 依據實際視窗寬度,非 CSS zoom | |
| =================================================================== */ | |
| @media (max-width: 900px) { | |
| .toc-col-wrapper { | |
| display: none ; | |
| } | |
| } | |