diff options
author | Alexis Hovorka <[email protected]> | 2024-08-17 19:32:06 -0600 |
---|---|---|
committer | Alexis Hovorka <[email protected]> | 2024-08-17 19:32:06 -0600 |
commit | d2a685e50d20101a42b7d9d08d1b90bb92defcd3 (patch) | |
tree | 36d844396b638488f989aab9f2cba73b208fc0b2 /static | |
parent | f5890b7e14fd5c7d4aa11f089bfaf851a94a85a0 (diff) |
[feat] Yet more tweaks
Diffstat (limited to 'static')
-rw-r--r-- | static/main.js | 2 | ||||
-rw-r--r-- | static/style.css | 279 |
2 files changed, 254 insertions, 27 deletions
diff --git a/static/main.js b/static/main.js index 0858183..258e260 100644 --- a/static/main.js +++ b/static/main.js @@ -17,7 +17,7 @@ document.addEventListener("DOMContentLoaded", () => { [...d[q]("pre.hljs code")].forEach(e => e.innerHTML = e.innerHTML.split("\n").slice(0,-1).map((l,i,a) => `<div class="code-line" data-line-number="${ - (i+1).toString().padStart(Math.ceil(Math.log10(a.length)), 0) + (i+(+(e.dataset.starting||1))).toString().padStart(+e.dataset.numLength||Math.ceil(Math.log10(a.length)), 0) }">${l}</div>`).join("\n")); // Disable Android Chrome "tap to search" when revealing spoiler text diff --git a/static/style.css b/static/style.css index a5c57d1..4c00c3a 100644 --- a/static/style.css +++ b/static/style.css @@ -6,20 +6,159 @@ line-height: 1.5rem; } -:root { --filter: invert(0) } +/*:root { --filter: invert(0) } html.invert { --filter: invert(1) } -/*@media (prefers-color-scheme: dark) { +@media (prefers-color-scheme: dark) { :root { --filter: invert(1) } html.invert { --filter: invert(0) } -}*/ +} html, pre.hljs, img:not(.emoji):not([alt^=Diagram]), #like-post.liked, #like-post:hover, #end, .emoji-container { filter: var(--filter) } +*/ + +html { + --page-bg: #fff; + --text-color: #000d; + --link-color: #1d73c9; + --icon-color: #bbb; + --icon-hover-color: var(--link-color); + --text-subtle-color: #999; + --redacted-bg: #444; + --code-bg: #f4f4f4; + --code-inline-bg: #eee; + --code-line-num: #0006; + --kbd-bg: #eee; + --kbd-border: #ccc; + --kbd-shadow: #ddd; + --divider-color: rgba(0,0,0,.2); + --end-marker-color: #ab4642; +} +html.invert { + --page-bg: #000; + --text-color: #fffd; + --link-color: #7ea2ce; + --icon-color: #444; + --text-subtle-color: #888; + --redacted-bg: #333; + --code-bg: #111; + --code-inline-bg: #282828; + --code-line-num: #585858; + --kbd-bg: #111; + --kbd-border: #444; + --kbd-shadow: #333; + --divider-color: rgba(255,255,255,.2); +} +@media (prefers-color-scheme: dark) { + html { + --page-bg: #000; + --text-color: #fffd; + --link-color: #7ea2ce; + --icon-color: #444; + --text-subtle-color: #888; + --redacted-bg: #333; + --code-bg: #111; + --code-inline-bg: #282828; + --code-line-num: #585858; + --kbd-bg: #111; + --kbd-border: #444; + --kbd-shadow: #333; + --divider-color: rgba(255,255,255,.2); + } + html.invert { + --page-bg: #fff; + --text-color: #000d; + --link-color: #1d73c9; + --icon-color: #bbb; + --text-subtle-color: #999; + --redacted-bg: #444; + --code-bg: #f4f4f4; + --code-inline-bg: #eee; + --code-line-num: #0006; + --kbd-bg: #eee; + --kbd-border: #ccc; + --kbd-shadow: #ddd; + --divider-color: rgba(0,0,0,.2); + } +} + +.hljs-emphasis{font-style:italic} + +html:not(.invert) { + /* Highlight.js - A11y Light */ + & .hljs{background:#f7f7f7;color:#545454} + & .hljs-comment,& .hljs-quote{color:#696969} + & .hljs-deletion,& .hljs-name,& .hljs-regexp,& .hljs-selector-class,& .hljs-selector-id,& .hljs-tag,& .hljs-template-variable,& .hljs-variable{color:#d91e18} + & .hljs-attribute,& .hljs-built_in,& .hljs-link,& .hljs-literal,& .hljs-meta,& .hljs-number,& .hljs-params,& .hljs-type{color:#aa5d00} + & .hljs-addition,& .hljs-bullet,& .hljs-string,& .hljs-symbol{color:green} + & .hljs-section,& .hljs-title{color:#007faa} + & .hljs-keyword,& .hljs-selector-tag{color:#7928a1} + & .hljs-strong{font-weight:700} +} + +@media screen and (-ms-high-contrast:active){.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-comment,.hljs-link,.hljs-literal,.hljs-meta,.hljs-number,.hljs-params,.hljs-quote,.hljs-string,.hljs-symbol,.hljs-type{color:highlight}.hljs-keyword,.hljs-selector-tag{font-weight:700}} + +html.invert { + /* Highlight.js - Base16 Default Dark */ + & .hljs{color:#d8d8d8;background:#111} + & .hljs ::selection,& .hljs::selection{background-color:#383838;color:#d8d8d8} + & .hljs-comment{color:#585858} + & .hljs-tag{color:#b8b8b8} + & .hljs-operator,& .hljs-punctuation,& .hljs-subst{color:#d8d8d8} + & .hljs-operator{opacity:.7} + & .hljs-bullet,& .hljs-deletion,& .hljs-name,& .hljs-selector-tag,& .hljs-template-variable,& .hljs-variable{color:#ab4642} + & .hljs-attr,& .hljs-link,& .hljs-literal,& .hljs-number,& .hljs-symbol,& .hljs-variable.constant_{color:#dc9656} + & .hljs-class .hljs-title,& .hljs-title,& .hljs-title.class_{color:#f7ca88} + & .hljs-strong{font-weight:700;color:#f7ca88} + & .hljs-addition,& .hljs-code,& .hljs-string,& .hljs-title.class_.inherited__{color:#a1b56c} + & .hljs-built_in,& .hljs-doctag,& .hljs-keyword.hljs-atrule,& .hljs-quote,& .hljs-regexp{color:#86c1b9} + & .hljs-attribute,& .hljs-function .hljs-title,& .hljs-section,& .hljs-title.function_,& .ruby .hljs-property{color:#7cafc2} + & .diff .hljs-meta,& .hljs-keyword,& .hljs-template-tag,& .hljs-type{color:#ba8baf} + & .hljs-emphasis{color:#ba8baf} + & .hljs-meta,& .hljs-meta .hljs-keyword,& .hljs-meta .hljs-string{color:#a16946} + & .hljs-meta .hljs-keyword,& .hljs-meta-keyword{font-weight:700} +} + +@media (prefers-color-scheme: dark) { + html:not(.invert) { + /* Highlight.js - Base16 Default Dark */ + & .hljs{color:#d8d8d8;background:#111} + & .hljs ::selection,& .hljs::selection{background-color:#383838;color:#d8d8d8} + & .hljs-comment{color:#585858} + & .hljs-tag{color:#b8b8b8} + & .hljs-operator,& .hljs-punctuation,& .hljs-subst{color:#d8d8d8} + & .hljs-operator{opacity:.7} + & .hljs-bullet,& .hljs-deletion,& .hljs-name,& .hljs-selector-tag,& .hljs-template-variable,& .hljs-variable{color:#ab4642} + & .hljs-attr,& .hljs-link,& .hljs-literal,& .hljs-number,& .hljs-symbol,& .hljs-variable.constant_{color:#dc9656} + & .hljs-class .hljs-title,& .hljs-title,& .hljs-title.class_{color:#f7ca88} + & .hljs-strong{font-weight:700;color:#f7ca88} + & .hljs-addition,& .hljs-code,& .hljs-string,& .hljs-title.class_.inherited__{color:#a1b56c} + & .hljs-built_in,& .hljs-doctag,& .hljs-keyword.hljs-atrule,& .hljs-quote,& .hljs-regexp{color:#86c1b9} + & .hljs-attribute,& .hljs-function .hljs-title,& .hljs-section,& .hljs-title.function_,& .ruby .hljs-property{color:#7cafc2} + & .diff .hljs-meta,& .hljs-keyword,& .hljs-template-tag,& .hljs-type{color:#ba8baf} + & .hljs-emphasis{color:#ba8baf} + & .hljs-meta,& .hljs-meta .hljs-keyword,& .hljs-meta .hljs-string{color:#a16946} + & .hljs-meta .hljs-keyword,& .hljs-meta-keyword{font-weight:700} + } + html.invert { + /* Highlight.js - A11y Light */ + & .hljs{background:#f7f7f7;color:#545454} + & .hljs-comment,& .hljs-quote{color:#696969} + & .hljs-deletion,& .hljs-name,& .hljs-regexp,& .hljs-selector-class,& .hljs-selector-id,& .hljs-tag,& .hljs-template-variable,& .hljs-variable{color:#d91e18} + & .hljs-attribute,& .hljs-built_in,& .hljs-link,& .hljs-literal,& .hljs-meta,& .hljs-number,& .hljs-params,& .hljs-type{color:#aa5d00} + & .hljs-addition,& .hljs-bullet,& .hljs-string,& .hljs-symbol{color:green} + & .hljs-section,& .hljs-title{color:#007faa} + & .hljs-keyword,& .hljs-selector-tag{color:#7928a1} + & .hljs-strong{font-weight:700} + } +} html { background: #fff; - color: #000; + background: var(--page-bg); + color: #000d; + color: var(--text-color); height: 100%; overflow-x: hidden; } @@ -40,10 +179,14 @@ html { height: 1rem; width: 1rem; background: #bbb; + background: var(--icon-color); border-radius: 1rem; cursor: pointer; } -#invert:hover { background: #1d73c9 } +#invert:hover { + background: #1d73c9; + background: var(--icon-hover-color); +} #invert::before { content: ""; display: block; @@ -63,6 +206,7 @@ html { right: 1.6rem; padding-left: .6rem; background: #fff; + background: var(--page-bg); } h1 { margin: .9rem 0 1rem !important; @@ -79,6 +223,7 @@ html { margin: -.6rem 0; vertical-align: -.05rem; background: #fff; + background: var(--page-bg); overflow: hidden; outline: 0; border: .6rem solid transparent; @@ -110,14 +255,19 @@ html { transform: translate(-50%,50%); border-radius: 100%; background: #bbb; + background: var(--icon-color); box-shadow: 0 0 0 .3rem #fff, 0 0 0 .6rem #bbb; + box-shadow: 0 0 0 .3rem var(--page-bg), 0 0 0 .6rem var(--icon-color); } #feed:hover::before { background: #1d73c9; + background: var(--icon-hover-color); box-shadow: 0 0 0 .3rem #fff, 0 0 0 .6rem #1d73c9; + box-shadow: 0 0 0 .3rem var(--page-bg), 0 0 0 .6rem var(--icon-hover-color); } #message-me::before { background: #bbb; + background: var(--icon-color); height: .75rem; width: 1rem; } @@ -125,11 +275,18 @@ html { height: 0; width: .1rem; border-top: .4rem solid #bbb; + border-top: .4rem solid var(--icon-color); border-right: .6rem solid transparent; bottom: 0; } -#message-me:hover::before { background: #1d73c9 } -#message-me:hover::after { border-top-color: #1d73c9 } +#message-me:hover::before { + background: #1d73c9; + background: var(--icon-hover-color); +} +#message-me:hover::after { + border-top-color: #1d73c9; + border-top-color: var(--icon-hover-color); +} body { position: relative; @@ -155,6 +312,7 @@ p.post-date { p.post-date * { font-size: 15px; color: #999; + color: var(--text-subtle-color); } [lang=jbo], [lang=jbo] * { @@ -187,25 +345,34 @@ summary::before { width: 0; border: .4rem solid transparent; border-left: .7rem solid #bbb; + border-left: .7rem solid var(--icon-color); border-right-width: 0; float: left; margin: .35rem 0 0 -1.2rem; } -summary:hover::before { border-left-color: #1d73c9; } +summary:hover::before { + border-left-color: #1d73c9; + border-left-color: var(--icon-hover-color); +} details[open] > summary::before { border: .4rem solid transparent; border-top: .7rem solid #bbb; + border-top: .7rem solid var(--icon-color); border-bottom-width: 0; margin: .4rem 0 0 -1.3rem; } -details[open] > summary:hover::before { border-top-color: #1d73c9; } +details[open] > summary:hover::before { + border-top-color: #1d73c9; + border-top-color: var(--icon-hover-color); +} blockquote { padding-left: 1.2rem; box-shadow: 2px 0 0 rgba(0,0,0,.2) inset; + box-shadow: 2px 0 0 var(--divider-color) inset; } ul ul, ul ol, ol ul, ol ol, li { @@ -213,6 +380,14 @@ ul ul, ul ol, ol ul, ol ol, li { padding: revert; } +li p:first-child { + margin-top: .4rem; +} + +li p:last-child { + margin-bottom: .4rem; +} + ol > li:first-child:nth-last-child(n+10), ol > li:first-child:nth-last-child(n+10) ~ li { list-style-type: decimal-leading-zero; @@ -221,6 +396,7 @@ ol > li:first-child:nth-last-child(n+10) ~ li { hr { border: 0; border-top: .5px solid rgba(0,0,0,.2); + border-top: .5px solid var(--divider-color); } img:not(.emoji) { @@ -246,10 +422,11 @@ img.hero { a { text-decoration: none; color: #1d73c9; + color: var(--link-color); } a:hover, a:hover *, ins * { text-decoration: underline } -a:visited { color: #955eba } -a:active { color: #ab4642 } +/*a:visited { color: #955eba } +a:active { color: #ab4642 }*/ .irc { padding-left: 1.8rem } .irc > p { text-indent: -1.8rem } @@ -261,9 +438,11 @@ a:active { color: #ab4642 } mark { color: transparent; background: #444; + background: var(--redacted-bg); } mark:hover { - color: #000; + color: #000d; + color: var(--text-color); background: transparent; } @@ -271,18 +450,25 @@ mark:not(:hover) code, mark:not(:hover) .emoji { opacity: 0 } code { - background: #e6e6e6; margin: 0 .2rem; - box-shadow: - .2rem .08rem #e6e6e6, - .2rem -.08rem #e6e6e6, - -.2rem .08rem #e6e6e6, - -.2rem -.08rem #e6e6e6; white-space: nowrap; + line-height: 1; } -/* Highlight.js - Base16 Default Dark */ -.hljs{color:#d8d8d8;background:#181818}.hljs ::selection,.hljs::selection{background-color:#383838;color:#d8d8d8}.hljs-comment{color:#585858}.hljs-tag{color:#b8b8b8}.hljs-operator,.hljs-punctuation,.hljs-subst{color:#d8d8d8}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-deletion,.hljs-name,.hljs-selector-tag,.hljs-template-variable,.hljs-variable{color:#ab4642}.hljs-attr,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol,.hljs-variable.constant_{color:#dc9656}.hljs-class .hljs-title,.hljs-title,.hljs-title.class_{color:#f7ca88}.hljs-strong{font-weight:700;color:#f7ca88}.hljs-addition,.hljs-code,.hljs-string,.hljs-title.class_.inherited__{color:#a1b56c}.hljs-built_in,.hljs-doctag,.hljs-keyword.hljs-atrule,.hljs-quote,.hljs-regexp{color:#86c1b9}.hljs-attribute,.hljs-function .hljs-title,.hljs-section,.hljs-title.function_,.ruby .hljs-property{color:#7cafc2}.diff .hljs-meta,.hljs-keyword,.hljs-template-tag,.hljs-type{color:#ba8baf}.hljs-emphasis{color:#ba8baf;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#a16946}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700} +p code { + background: #f4f4f4; + background: var(--code-inline-bg); + box-shadow: + .2rem .08rem #f4f4f4, + .2rem -.08rem #f4f4f4, + -.2rem .08rem #f4f4f4, + -.2rem -.08rem #f4f4f4; + box-shadow: + .2rem .08rem var(--code-inline-bg), + .2rem -.08rem var(--code-inline-bg), + -.2rem .08rem var(--code-inline-bg), + -.2rem -.08rem var(--code-inline-bg); +} p code, p code * { font-family: "Hack", monospace; @@ -306,9 +492,9 @@ pre code { box-shadow: none; } -pre.hljs:hover code { +/*pre.hljs:hover code { box-shadow: -.5px 0 #fff6; -} +}*/ pre .code-line { margin: 0; @@ -326,7 +512,8 @@ pre .code-line::before { } pre:hover .code-line::before { - color: #fff8; + color: #0006; + color: var(--code-line-num); } pre .code-line::after { @@ -336,7 +523,8 @@ pre .code-line::after { pre { margin: 1em -100%; /* old browsers fallback */ margin: 1rem calc(50% - 50vw); - background: #e6e6e6; + background: #f4f4f4; + background: var(--code-bg); overflow-x: auto; } @@ -346,17 +534,38 @@ pre.hljs { kbd { background: #eee; + background: var(--kbd-bg); margin: 0 .1rem; padding: .05rem .35rem; vertical-align: .07rem; font-family: "Hack", monospace; font-size: 15px; border: 1px solid #ccc; + border: 1px solid var(--kbd-border); border-radius: .3rem; box-shadow: 0 2px 0 #ddd; + box-shadow: 0 2px 0 var(--kbd-shadow); white-space: nowrap; } +.footnote-ref, .footnote-ref * { + margin: 0; + font-size: 12px; +} + +.footnote-ref { + display: inline-block; + margin-top: -.2rem; +} + +.post-list .footnote-ref { + display: none; +} + +.footnote-backref:not(:hover) { + opacity: .6; +} + #tags { word-spacing: .5rem; } .tag { white-space: nowrap; } @@ -364,6 +573,7 @@ nav { position: relative; margin-bottom: 0; border-top: .5px solid rgba(0,0,0,.2); + border-top: .5px solid var(--divider-color); padding-top: 1rem; } nav::after { @@ -374,6 +584,7 @@ nav::after { nav a:not(:hover) { color: #999; + color: var(--text-subtle-color); } #up, #back, #next, #prev, #first, #last { display: block } @@ -403,16 +614,24 @@ nav a:not(:hover) { #up::after { margin: .6rem 1.5rem .6rem .3rem; border-bottom: .7rem solid #bbb; + border-bottom: .7rem solid var(--icon-color); border-top-width: 0; } #back::after { border-right: .7rem solid #bbb; + border-right: .7rem solid var(--icon-color); border-left-width: 0; } -#up:hover::after { border-bottom-color: #1d73c9 } -#back:hover::after { border-right-color: #1d73c9 } +#up:hover::after { + border-bottom-color: #1d73c9; + border-bottom-color: var(--link-color); +} +#back:hover::after { + border-right-color: #1d73c9; + border-right-color: var(--link-color); +} #next, #last, #end { float: right; @@ -432,6 +651,7 @@ nav a:not(:hover) { margin-left: .5rem; border: .4rem solid transparent; border-left: .7rem solid #bbb; + border-left: .7rem solid var(--icon-color); border-right-width: 0; vertical-align: -.05rem; } @@ -445,6 +665,7 @@ nav a:not(:hover) { margin: 0 .1rem 0 .5rem; border: .4rem solid transparent; border-left: .6rem solid #bbb; + border-left: .6rem solid var(--icon-color); border-right-width: 0; vertical-align: -.05rem; } @@ -457,6 +678,7 @@ nav a:not(:hover) { height: .8rem; width: .15rem; background: #bbb; + background: var(--icon-color); } #last:hover::after { border-left-color: currentColor } #last:hover::before { background: currentColor } @@ -469,6 +691,7 @@ nav a:not(:hover) { margin: 0 .5rem 0 .1rem; border: .4rem solid transparent; border-right: .6rem solid #bbb; + border-right: .6rem solid var(--icon-color); border-left-width: 0; vertical-align: -.05rem; } @@ -481,6 +704,7 @@ nav a:not(:hover) { height: .8rem; width: .15rem; background: #bbb; + background: var(--icon-color); } #first:hover::before { border-right-color: currentColor } #first:hover::after { background: currentColor } @@ -493,6 +717,7 @@ nav a:not(:hover) { margin-right: .5rem; border: .4rem solid transparent; border-right: .7rem solid #bbb; + border-right: .7rem solid var(--icon-color); border-left-width: 0; vertical-align: -.05rem; } @@ -508,6 +733,7 @@ nav a:not(:hover) { width: .8rem; transform: rotate(45deg); box-shadow: 0 0 0 .24rem #ab4642 inset; + box-shadow: 0 0 0 .24rem var(--end-marker-color) inset; } #like-post { @@ -543,6 +769,7 @@ nav a:not(:hover) { height: .6rem; width: .6rem; background: #bbb; + background: var(--icon-color); } #like-post.liked span, #like-post.liked span::before, #like-post.liked span::after, #like-post:hover span, #like-post:hover span::before, #like-post:hover span::after { |