neotoc
Version:
Neotoc is a smoothly animated, foldable table of contents generator.
1 lines • 10.3 kB
Source Map (JSON)
{"version":3,"mappings":"AAmBA,iWAiCA,gEAIE,oEAIA,sDAKA,wDAGA,8DAGA,+DAOF,4NAWA,uGAIE,8FAKA,gDAMF,2CAEE,mDAMF,iEAIA,kMAYA,2HAQA,sEAGE,oFAGE,8CAMJ,yIAKA,qEAGA,uEAIA,qFAIA,wGAIA,sIAAA,uIAAA,uIAAA,uIAAA,uIAaA,wEAIA,wDAIA,qDAKA,iCAIA,kOASE,yBAKF,8CAIA,gDAIA,iJAMA,yDAKA,6CAIA,8CAIA,8CAIA,+CAIA,gDAMA,+KAUA,oFAQA,yDAMA,0IAQE,0DAOF,2EAIA,6EAIA,qHAQA,oMASA,6LAWA,mOAWA,6DAIA,mEAIA,+GAQA,0IAWA,uFAKA,uFAMA,mEAKA,0FAKA,6FAIA,gHAMA,8IAAA,+IAAA,+IAAA,+IAAA,+IAaA,gFAMA,wBAIA","sources":["../src/styles/base-plain.css"],"sourcesContent":["/* On this Stylesheet :)\n ===================\n - DEFAULT THEME SETTINGS\n - NEOTOC STYLE\n - FOUNDATION\n - HEADER\n - LIGHT BAR\n - TOP AND BOTTOM SHADOWS\n - ACCESSIBILITY\n - UTILITY CLASSES\n - UNUSED CLASSES\n\n Syntax of heading comments:\n - They are capitalized.\n - No extra asterisks denote top level heading comments. Additional asterisks denote nesting levels.\n*/\n\n/* DEFAULT THEME SETTINGS */\n/** COLORS **/\n.nt-widget {\n --light-bar: currentColor;\n --light-opacity: 0.1;\n /* See https://neotoc.vercel.app/docs#colors to learn about other color variables */\n}\n\n/** SIZES AND DURATION **/\n.nt-widget {\n --body-height: 400px;\n --relative-font-size: 100; /* do not use percentage sign */\n --toggle-fold-btn-width: 1.7em; /* should in em unit */\n --indent-line-gap: 0px; /* should be in px unit */\n --indent-line-width: 1px;\n --anchor-padding-block: 0.4em;\n --anchor-padding-inline: 0.3em;\n --anchor-border-radius: 0px;\n --padding-left: 1rem;\n --light-bar-width: 4px;\n /* `--light-bar-tip-radius` is not used in base-plain */\n --light-spread-length: 100vw;\n --folding-duration: 0.3s;\n}\n\n/* NEOTOC STYLE */\n/*\n Following are my recommended styles for Neotoc.\n Not using or changing some of them will break the design,\n while others are just stylistic preferences. Feel free\n to make changes for advanced customization.\n*/\n\n/** FOUNDATION **/\n\n.nt-widget {\n background: var(--bg);\n font-size: 0.96em;\n line-height: 1.5;\n * {\n box-sizing: border-box;\n transition: background-color 0.15s;\n }\n ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n }\n li {\n border-radius: var(--anchor-border-radius);\n }\n li li {\n font-size: calc(var(--relative-font-size) * 1%);\n }\n svg {\n display: inline;\n vertical-align: middle;\n width: 100%;\n }\n}\n\n.nt-body {\n padding-left: var(--padding-left);\n padding-block: 0.5rem;\n padding-right: 0.5rem;\n max-height: var(--body-height);\n transition: max-height 0.15s;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n}\n\n.nt-foldable {\n display: grid;\n transition: grid-template-rows var(--folding-duration);\n grid-template-rows: 1fr;\n ul {\n transition:\n opacity var(--folding-duration),\n visibility var(--folding-duration);\n }\n > ul {\n overflow: clip;\n grid-row: 1 / span 2;\n }\n}\n\n.nt-foldable-folded {\n grid-template-rows: 0fr;\n ul {\n visibility: hidden;\n opacity: 0;\n }\n}\n\n.nt-non-foldable:has(> .nt-fold-indicator-line) {\n position: relative;\n}\n\n.nt-fold-indicator-line {\n margin: 0;\n width: 100%;\n border: none;\n border-top: 1px solid var(--fold-indicator-line);\n position: absolute;\n bottom: 0px;\n z-index: 2;\n transition: opacity var(--folding-duration);\n opacity: 0;\n}\n\n.nt-toggle-fold-btn,\n.nt-unfoldable-icon {\n color: var(--fg);\n grid-column: -3;\n padding-block: var(--anchor-padding-block);\n z-index: 1; /* to keep them above anchor and below the light bar's light */\n}\n\n.nt-toggle-fold-btn {\n padding-inline: 1px;\n cursor: pointer;\n svg {\n transition: transform var(--folding-duration);\n font-size: 0.8em;\n path {\n stroke-width: 2px;\n }\n }\n}\n\n.nt-toggle-fold-btn:first-child {\n border-top-left-radius: var(--anchor-border-radius);\n border-bottom-left-radius: var(--anchor-border-radius);\n}\n\n.nt-toggle-fold-btn:hover {\n background: var(--bg-toggle-fold-btn-hover);\n}\n.nt-toggle-fold-btn:active {\n background: var(--bg-toggle-fold-btn-active);\n}\n\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn:hover) {\n background: var(--bg-sub-anchors);\n}\n\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn:hover) > .nt-foldable .nt-a {\n background: var(--bg-sub-anchors);\n}\n\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn.nt-level-1:hover)\n .nt-indent-block:nth-child(1),\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn.nt-level-2:hover)\n .nt-indent-block:nth-child(2),\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn.nt-level-3:hover)\n .nt-indent-block:nth-child(3),\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn.nt-level-4:hover)\n .nt-indent-block:nth-child(4),\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn.nt-level-5:hover)\n .nt-indent-block:nth-child(5) {\n border-color: var(--indent-line-highlight);\n}\n\n.nt-toggle-fold-btn:hover + .nt-a {\n background-color: var(--bg-anchor-hover);\n}\n\n.nt-toggle-fold-btn-folded svg {\n transform: rotate(-90deg);\n}\n\n.nt-non-foldable {\n display: grid;\n grid-template-rows: 1fr;\n}\n\n.nt-non-foldable > * {\n grid-row: 1 / -1;\n}\n\n.nt-a {\n background: var(--bg);\n color: var(--fg);\n text-decoration: none;\n padding-block: var(--anchor-padding-block);\n padding-right: var(--anchor-padding-inline);\n border-radius: var(--anchor-border-radius);\n align-self: center;\n grid-column: 1 / -1;\n code {\n font-size: 1em;\n }\n}\n\n.nt-a:hover {\n background: var(--bg-anchor-hover);\n}\n\n.nt-a:active {\n background: var(--bg-anchor-active);\n}\n\n.nt-indent-block {\n transition: border-right calc(var(--folding-duration) / 2);\n border-right: var(--indent-line-width) solid var(--indent-line);\n z-index: 1;\n}\n\n.nt-indent-block,\n.nt-unfoldable-icon {\n pointer-events: none;\n}\n\n.nt-indent-block:first-child {\n grid-column: 1 / 2;\n}\n\n.nt-indent-block:nth-child(2) {\n grid-column: 2 / 4;\n}\n\n.nt-indent-block:nth-child(3) {\n grid-column: 4 / 7;\n}\n\n.nt-indent-block:nth-child(4) {\n grid-column: 7 / 10;\n}\n\n.nt-indent-block:nth-child(5) {\n grid-column: 10 / 13;\n}\n\n/** HEADER **/\n\n.nt-header {\n display: flex;\n padding-right: 0.5rem;\n padding-left: var(--padding-left);\n justify-content: space-between;\n gap: 8px;\n align-items: flex-end;\n padding-block: 0.5rem;\n}\n\n.nt-title {\n color: var(--fg);\n font-size: 1.1em;\n font-weight: 600;\n margin: 0;\n flex-shrink: 1000;\n}\n\n.nt-btn-group {\n display: flex;\n flex-shrink: 1;\n overflow: hidden; /* easy fix for perfect rounded corner */\n}\n\n.nt-header-btn {\n font: inherit; /* for consistent button size across all browsers */\n color: var(--fg);\n background: var(--bg-header-btn);\n box-sizing: content-box;\n padding: 5px;\n border: none;\n cursor: pointer;\n svg {\n height: 1.4em;\n width: 1.4em;\n display: block;\n }\n}\n\n.nt-header-btn:not([disabled]):hover {\n background: var(--bg-header-btn-hover);\n}\n\n.nt-header-btn:not([disabled]):active {\n background: var(--bg-header-btn-active);\n}\n\n.nt-header-btn[disabled] {\n color: var(--fg-header-btn-disabled);\n background: var(--bg-header-btn-disabled);\n cursor: default;\n}\n\n/** LIGHT BAR **/\n\n.nt-light-bar {\n --terminal-side-length: var(--light-bar-width);\n background: var(--light-bar);\n width: var(--light-bar-width);\n height: 0;\n left: calc(var(--padding-left) / 2 - var(--light-bar-width) / 2);\n z-index: 1;\n}\n\n.nt-light {\n background: var(--light-bar);\n width: var(--light-spread-length);\n height: 100%;\n opacity: var(--light-opacity);\n pointer-events: none;\n position: absolute;\n z-index: -1;\n left: var(--light-bar-width);\n}\n\n.nt-light-bar-top,\n.nt-light-bar-bottom {\n background: var(--light-bar);\n width: var(--terminal-side-length);\n height: var(--terminal-side-length);\n position: absolute;\n left: calc(\n (var(--terminal-side-length) / 2 * -1) + var(--light-bar-width) / 2\n );\n}\n\n.nt-light-bar-top {\n top: calc(var(--terminal-side-length) / 2 * -1);\n}\n\n.nt-light-bar-bottom {\n bottom: calc(var(--terminal-side-length) / 2 * -1);\n}\n\n.nt-light-bar-top.nt-on-fold,\n.nt-light-bar-bottom.nt-on-fold {\n background: var(--light-bar-tip-on-fold);\n z-index: 1;\n}\n\n/** TOP AND BOTTOM SHADOWS **/\n\n.nt-top-gradient,\n.nt-bottom-gradient {\n width: 100%;\n height: 30px;\n transition: opacity 300ms;\n pointer-events: none;\n position: absolute;\n left: 0;\n z-index: 5;\n}\n\n.nt-top-gradient {\n opacity: 0;\n background: linear-gradient(to bottom, var(--bg), transparent);\n}\n\n.nt-bottom-gradient {\n opacity: 1;\n background: linear-gradient(to top, var(--bg), transparent);\n}\n\n/** ACCESSIBILITY **/\n.nt-a:focus-visible {\n outline: none;\n background: var(--bg-anchor-hover);\n}\n\n.nt-toggle-fold-btn:focus-visible {\n outline: none;\n background: var(--bg-toggle-fold-btn-hover);\n}\n\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn:focus-visible) {\n background: var(--bg-sub-anchors);\n}\n\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn:focus-visible)\n > .nt-foldable\n .nt-a {\n background: var(--bg-sub-anchors);\n}\n\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn.nt-level-1:focus-visible)\n .nt-indent-block:nth-child(1),\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn.nt-level-2:focus-visible)\n .nt-indent-block:nth-child(2),\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn.nt-level-3:focus-visible)\n .nt-indent-block:nth-child(3),\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn.nt-level-4:focus-visible)\n .nt-indent-block:nth-child(4),\nli:has(> .nt-non-foldable > .nt-toggle-fold-btn.nt-level-5:focus-visible)\n .nt-indent-block:nth-child(5) {\n border-color: var(--indent-line-highlight);\n}\n\n.nt-toggle-fold-btn:focus-visible + .nt-a {\n background-color: var(--bg-anchor-hover);\n}\n\n/** UTILITY CLASSES **/\n\n.nt-opacity-1 {\n opacity: 1;\n}\n\n.nt-ellipsis {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n/** UNUSED CLASSES **/\n\n/* Use the following classes to see if you like the result */\n\n/*\n- nt-enlightend-a: This class is dynamically only added to anchors in the TOC that refers to sections currently in view.\n*/\n"],"names":[]}