diff options
| author | Eltrac <hi@guhub.cn> | 2025-05-16 15:03:14 +0800 |
|---|---|---|
| committer | Eltrac <hi@guhub.cn> | 2025-05-16 15:03:14 +0800 |
| commit | 4b4629edb733d5ebd6485755fd2f63b0457f62c8 (patch) | |
| tree | b772561bab2cd21aa6a5acaea8af65999b83f78e /assets/css/components/_content.scss | |
| parent | 2e1c4f08ac54232787d15d0175f0e99e2a701f78 (diff) | |
perf: replace tocbot with statically generated toc
Generate TOC with Hugo's built-in {{ .TableOfContents }} and add minimal script to implement collapsible list and active styles.
Encapsulate TOC as a component where all JavaSript and CSS is in one place with HTML.
Configure markup.
Diffstat (limited to 'assets/css/components/_content.scss')
| -rw-r--r-- | assets/css/components/_content.scss | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/assets/css/components/_content.scss b/assets/css/components/_content.scss deleted file mode 100644 index 6c5815cb..00000000 --- a/assets/css/components/_content.scss +++ /dev/null @@ -1,89 +0,0 @@ -/* toc */ - -#toc-container { - position: absolute; - bottom: 0; - right: calc(50% + var(--page-width) / 2); - left: auto; - height: 100%; - top: 12rem; -} - -@media screen and (max-width: 1200px) { - #toc-container { - display: none - } -} - -#toc { - /* position */ - position: sticky; - top: 3rem; - /* styling */ - font-size: 1rem; - padding: 0 2rem; -} - -@media screen and (max-width: 1700px) { - #toc { - font-size: 0.9rem; - } -} - -@media screen and (max-width: 1500px) { - #toc { - font-size: 0.825rem; - } -} - -#toc ul, #toc ol { - margin-block-start: 0; - margin-block-end: 0; - padding-inline-start: 1rem; -} - -#toc li { - list-style: none; -} - -#toc li > a { - color: var(--secondary-text-color); - text-decoration: none; - transition: color .3s; - display: inline-flex; - align-items: center; - gap: .5rem; -} - -#toc li > a::before { - content: ''; - display: inline-block; - width: 1rem; - height: .3rem; - background-color: var(--block-background-color); - border-radius: .2rem; - transition: background .3s; -} - -#toc li a:hover, -#toc li.is-active-li > a { - color: var(--text-color); -} - -#toc li.is-active-li > a::before { - background-color: var(--secondary-text-color); -} - -#toc .toc-list { - overflow: hidden; - position: relative; -} - -#toc .toc-list .toc-list { - max-height: 25rem; - overflow-y: auto -} - -#toc .toc-list.is-collapsed { - max-height: 0 -} |
