// This is copied from https://stackoverflow.com/a/19721069. $tooltip-size: 5em; $line-height: 1.45; :root { --accented-border-style: var(--content-color) solid .1vw; --content-color: var(--base05); --body-family: "Source Serif Pro", "IBM Plex Serif", "Noto Serif", serif; --header-family: "Source Sans Pro", "IBM Plex Sans", "Noto Sans", sans-serif; --mono-family: "Source Code Pro", "IBM Plex Mono", "Noto Mono", monospace; color: var(--base05); } // Hugo-specific blocks. #TableOfContents { > ul { margin-bottom: unset; } } // Base styles. code { background: var(--base01); } hr { border-color: var(--content-color); } pre { background: var(--base00); } main > article { line-height: $line-height; } // Layouts .site__title { --size: 2rem; margin-bottom: unset; font-size: var(--size); line-height: unset; } .site__socials { margin-top: 1em; } .site__social-icon svg { fill: currentColor; } article.post { padding: 0.5em; background: var(--base01); } .post__meta--single { p > span:first-child { white-space: nowrap; } &:empty { display: none; } } // Asciidoctor roles (e.g., [.text-center]) on a block. .text-center { text-align: center; } .line-through { text-decoration: line-through; } // Custom layouts #logo { display: flex; align-items: center; justify-content: center; height: $tooltip-size; width: $tooltip-size; svg { --size: 4em; height: var(--size); width: var(--size); fill: var(--base0C); position: relative; animation: rainbow 3s infinite, pulse 2s alternate infinite, bounce 0.6s ease-in-out alternate infinite; } } @keyframes bounce { $baseSize: 3em; $baseRotation: 20deg; from { transform: rotate($baseRotation) translateX($baseSize) translateY(-#{$baseSize / 5}); } to { transform: rotate(-$baseRotation) translateX(-$baseSize) translateY(-#{$baseSize / 5}); } } @keyframes pulse { from { width: #{$tooltip-size / 2}; } to { width: #{$tooltip-size}; } } @keyframes rainbow { $colorOrder: "07" "08" "09" "0A" "0B" "0C" "0D" "0E" "0F"; $divide: floor(100 / length($colorOrder)); @for $i from 1 to length($colorOrder) { #{$i * $divide}% { fill: var(--base#{nth($colorOrder, $i)}); } } } [data-tooltip] { &::before { --scale: 0; background: var(--base01); content: attr(data-tooltip); font-size: 0.8em; padding: 0.5em; position: absolute; transform: translateY(var(--translate-y, -#{round($tooltip-size / 2)})) scale(var(--scale)); transform-origin: bottom center; width: max-content; max-width: 100%; } &:hover::before { --scale: 1; } } // Prism CSS code[class*="language-"], pre[class*="language-"] { color: var(--base05); } // Asciidoctor-specific styles sup.footnote { vertical-align: baseline; position: relative; top: 0; left: 0; font-size: 1rem; } .anchor { border-bottom: unset; &:hover { border-bottom: unset; } &::before { content: "ยง"; display: inline-block; margin-right: 0.25em; } } .conum { color: var(--base05) !important; background-color: var(--base02); user-select: none; } .quoteblock { blockquote { border: var(--accented-border-style); margin: auto; padding: 1em 0.5em; } } @keyframes target-fade { 0% { background: var(--base0D); color: unset; } 100% { background-color: transparent; } } #footnotes > *:not(hr) { line-height: $line-height; margin: 1em; } [class$="block"], :is(.admonitionblock) { margin: var(--vertical-rhythm) 0; } *:not(.listingblock, .openblock) { > .attribution, > .title { background: var(--content-color); color: var(--base00); font-size: 0.9em; padding: 0.5em; &::selection { background: var(--base07); } } > .content { border: var(--accented-border-style); padding: 0.5em; } } .listingblock { position: relative; > *.title { background: var(--content-color); color: var(--base00); font-size: 0.9em; padding: 0.5em; code { background: unset; } &::selection { background: var(--base07); } } pre { margin: 0; } > .listingblock__btn-row { $gap: 0.3em; display: flex; gap: $gap; flex-flow: row; justify-content: center; align-items: center; position: absolute; top: 0; right: 0; > button { background: var(--base02); padding: $gap; &:hover { background: var(--base06); color: var(--base00); } &:active { background: var(--accent-color); color: var(--base06); } } } &:fullscreen { pre, code { max-height: 100vh; height: 100vh; margin: 0; overflow: auto; } > .listingblock__btn-row { top: 0; } } } .admonitionblock { .icon { background: var(--content-color); vertical-align: middle; width: 12%; > .title { display: flex; justify-content: center; } } .content { background: var(--base01); border: unset; } } .content > .paragraph:first-child > p:first-child { margin-top: unset; } .imageblock { > .content { display: flex; justify-content: center; } > .title { text-align: center; } } p { margin-bottom: unset; } .sidebarblock { > .content { background: var(--base01); border: unset; padding: var(--vertical-rhythm); > .title { background: unset; color: unset; font-family: var(--header-family); font-size: 1em; font-weight: bold; padding: unset; } } } @media all and (max-width: 860px) { .imageblock { > .content { width: 100% !important; } } }