.article-page { &.hide-sidebar-sm .left-sidebar { display: none; @include respond(md) { display: inherit; } } .main-article { background: var(--card-background); border-radius: var(--card-border-radius); box-shadow: var(--shadow-l1); overflow: hidden; .article-header { .article-image { img { height: auto; width: 100%; max-height: 50vh; object-fit: cover; } } .article-details { padding: var(--card-padding); padding-bottom: 0; } } .article-content { margin: var(--card-padding) 0; color: var(--card-text-color-main); .footnotes { font-family: var(--base-font-family); } img { max-width: 100%; height: auto; } } .article-footer { margin: var(--card-padding); gap: var(--spacing-2xl); } } } .toc-nav { overflow-x: auto; max-height: 75vh; ol, ul { margin: 0; padding: 0; } ol { list-style-type: none; counter-reset: item; li a:first-of-type::before { counter-increment: item; content: counters(item, ".") ". "; font-weight: bold; margin-right: 5px; } } &>ul { padding: 0 1em; } li { margin: var(--spacing-md) 0 var(--spacing-md) var(--spacing-lg); padding: var(--spacing-xs); &>ol, &>ul { margin-top: var(--spacing-sm); padding-left: var(--spacing-sm); margin-bottom: calc(var(--spacing-xs) * -1); &>li:last-child { margin-bottom: 0; } } } li.active-class>a { border-left: var(--heading-border-size) solid var(--accent-color); font-weight: bold; } ul li.active-class>a { display: block; } @function repeat($str, $n) { $result: ""; @for $_ from 0 to $n { $result: $result + $str; } @return $result; } // Support up to 6 levels of indentation for lists in ToCs @for $i from 0 to 5 { &>ul #{repeat("> li > ul", $i)}>li.active-class>a { $n: 25 + $i * 35; margin-left: calc(-#{$n}px - 1em); padding-left: calc(#{$n}px + 1em - var(--heading-border-size)); } &>ol #{repeat("> li > ol", $i)}>li.active-class>a { $n: 9 + $i * 35; margin-left: calc(-#{$n}px - 1em); padding-left: calc(#{$n}px + 1em - var(--heading-border-size)); display: block; } } } .widget--toc, .article-toc { display: flex; flex-direction: column; color: var(--card-text-color-main); } .widget--toc { background-color: var(--card-background); border-radius: var(--card-border-radius); box-shadow: var(--shadow-l1); overflow: hidden; } .article-toc { padding: 0 var(--card-padding); margin-top: var(--spacing-lg); @include respond(lg) { display: none; } details { background-color: var(--card-background); border-radius: var(--card-border-radius); box-shadow: var(--shadow-l2); &[open] { .article-toc-title { svg { transform: rotate(90deg); } } } summary { list-style: none; padding: var(--spacing-md) var(--spacing-lg); cursor: pointer; &::-webkit-details-marker { display: none; } .article-toc-title { display: flex; align-items: center; gap: var(--spacing-sm); text-transform: uppercase; font-size: 1.4rem; font-weight: bold; color: var(--card-text-color-tertiary); svg { width: 20px; height: 20px; stroke-width: 1.33; transition: transform 0.3s ease; } } } } } .article-content { font-family: var(--article-font-family); font-size: var(--article-font-size); padding: 0 var(--card-padding); line-height: var(--article-line-height); &>p { margin: 1.5em 0; } h1, h2, h3, h4, h5, h6 { margin-inline-start: calc((var(--card-padding)) * -1); padding-inline-start: calc(var(--card-padding) - var(--heading-border-size)); border-inline-start: var(--heading-border-size) solid var(--accent-color); position: relative; a.header-anchor { transition: opacity 0.3s ease; opacity: 0; position: absolute; left: 0; width: var(--card-padding); text-align: center; color: var(--accent-color); &:before { content: "#"; } } &:hover, &:focus { a.header-anchor { opacity: 1; } } } figure { text-align: center; figcaption { font-size: 1.4rem; color: var(--card-text-color-secondary); } } blockquote { position: relative; margin: 1.5em 0; border-inline-start: var(--blockquote-border-size) solid var(--card-separator-color); padding: var(--spacing-md) calc(var(--card-padding) - var(--blockquote-border-size)); background-color: var(--blockquote-background-color); .cite { display: block; text-align: right; font-size: 0.75em; a { text-decoration: underline; } } } blockquote.alert { .alert-header { display: flex; align-items: center; gap: 0.5em; font-weight: bold; } .alert-body { > :last-child { margin-bottom: 0; } } $alert-types: note, tip, important, warning, caution; @each $type in $alert-types { &.alert-#{$type} { border-color: var(--alert-#{$type}-color); background-color: var(--alert-#{$type}-background); .alert-title { color: var(--alert-#{$type}-color); } } } } hr { width: 100px; margin: 40px auto; background: var(--card-text-color-tertiary); height: 2px; border: 0; opacity: 0.55; } code { color: var(--code-text-color); background-color: var(--code-background-color); padding: 2px 4px; border-radius: var(--tag-border-radius); font-family: var(--code-font-family); } a, code { word-break: break-word; } .gallery { position: relative; display: flex; flex-direction: row; justify-content: center; margin: 1.5em 0; gap: var(--spacing-sm); figure { margin: 0; } } pre { overflow-x: auto; display: block; background-color: var(--pre-background-color); color: var(--pre-text-color); font-family: var(--code-font-family); line-height: 1.428571429; word-break: break-all; padding: var(--card-padding); // keep Codeblocks LTR [dir="rtl"] & { direction: ltr; } code { color: unset; border: none; background: none; padding: 0; } } .highlight { background-color: var(--pre-background-color); padding: var(--card-padding); position: relative; pre { background-color: transparent; } &:hover { .copyCodeButton { opacity: 1; } } // keep Codeblocks LTR [dir="rtl"] & { direction: ltr; } pre { padding: 0; margin: 0; width: auto; } } .copyCodeButton { position: absolute; top: calc(var(--card-padding)); right: calc(var(--card-padding)); background: var(--card-background); border: none; box-shadow: var(--shadow-l2); border-radius: var(--tag-border-radius); padding: 8px 16px; color: var(--card-text-color-main); cursor: pointer; font-size: 14px; opacity: 0; transition: opacity 0.3s ease; } .table-wrapper { padding: 0 var(--card-padding); overflow-x: auto; display: block; } table { width: 100%; border-collapse: collapse; border-spacing: 0; margin-bottom: 1.5em; font-size: 0.96em; } th, td { text-align: left; padding: 4px 8px 4px 10px; border: 1px solid var(--table-border-color); } td { vertical-align: top; } tr:nth-child(even) { background-color: var(--tr-even-background-color); } .twitter-tweet { color: var(--card-text-color-main); } .video-wrapper { position: relative; width: 100%; height: 0; padding-bottom: 56.25%; overflow: hidden; &>iframe, &>video { position: absolute; width: 100%; height: 100%; left: 0; top: 0; border: 0; } } .gitlab-embed-snippets { margin: 0 !important; .file-holder.snippet-file-content { margin-block-end: 0 !important; margin-block-start: 0 !important; margin-left: calc((var(--card-padding)) * -1) !important; margin-right: calc((var(--card-padding)) * -1) !important; padding: 0 var(--card-padding) !important; } } /// Negative margins blockquote, figure, .highlight, pre, .gallery, .video-wrapper, .table-wrapper, .s_video_simple { margin-left: calc((var(--card-padding)) * -1); margin-right: calc((var(--card-padding)) * -1); width: calc(100% + var(--card-padding) * 2); } /// Make long KaTeX equations scrollable in the x-axis .katex-display>.katex { overflow-x: auto; overflow-y: hidden; } kbd { border: 1px solid var(--kbd-border-color); font-weight: bold; font-size: 0.9em; line-height: 1; padding: 2px 4px; border-radius: 4px; display: inline-block; } }