truckin along, we got a postlist now
This commit is contained in:
126
css/highlighting.css
Normal file
126
css/highlighting.css
Normal file
@ -0,0 +1,126 @@
|
||||
/* Adapted from PrismJS 1.30.0 Tomorrow Night theme
|
||||
https://prismjs.com/download
|
||||
*/
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
font-family: var(--font-family-code);
|
||||
background-color: var(--color-bg-alt);
|
||||
font-size: .9rem;
|
||||
text-shadow: 0 1px var(--color-shadow);
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
tab-size: 4;
|
||||
-webkit-hyphens: none;
|
||||
-moz-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
|
||||
pre,
|
||||
pre[class*=language-] {
|
||||
margin: 1rem 0;
|
||||
padding: 1rem;
|
||||
line-height: 1.5;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
overflow-wrap: break-word;
|
||||
border-radius: .5rem;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
:not(pre)>code,
|
||||
:not(pre)>code[class*=language-] {
|
||||
padding: .2rem;
|
||||
border-radius: .25rem;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
/* Selected text */
|
||||
code ::-moz-selection,
|
||||
code::-moz-selection,
|
||||
pre ::-moz-selection,
|
||||
pre::-moz-selection,
|
||||
code[class*=language-] ::-moz-selection,
|
||||
code[class*=language-]::-moz-selection,
|
||||
pre[class*=language-] ::-moz-selection,
|
||||
pre[class*=language-]::-moz-selection,
|
||||
code ::selection,
|
||||
code::selection,
|
||||
pre ::selection,
|
||||
pre::selection,
|
||||
code[class*=language-] ::selection,
|
||||
code[class*=language-]::selection,
|
||||
pre[class*=language-] ::selection,
|
||||
pre[class*=language-]::selection {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-bg);
|
||||
}
|
||||
|
||||
/* Syntax highlighting */
|
||||
.token.namespace {
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.token.bold,
|
||||
.token.important {
|
||||
font-weight:700
|
||||
}
|
||||
|
||||
.token.italic {
|
||||
font-style:italic
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation {
|
||||
color: var(--color-grey);
|
||||
}
|
||||
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag {
|
||||
color: var(--color-red);
|
||||
}
|
||||
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number {
|
||||
color: var(--color-orange);
|
||||
}
|
||||
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol {
|
||||
color: var(--color-yellow);
|
||||
}
|
||||
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted {
|
||||
color: var(--color-green);
|
||||
}
|
||||
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name {
|
||||
color:var(--color-blue);
|
||||
}
|
||||
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: var(--color-purple);
|
||||
}
|
||||
35
css/main.css
35
css/main.css
@ -69,6 +69,7 @@ body {
|
||||
|
||||
main {
|
||||
width: 60vw;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
scroll-margin-top: var(--header-offset);
|
||||
}
|
||||
@ -125,14 +126,12 @@ b {
|
||||
/* Links */
|
||||
a {
|
||||
color: var(--color-font);
|
||||
border-radius: 1rem;
|
||||
border-radius: .25rem;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: solid;
|
||||
text-decoration-thickness: .2em;
|
||||
text-decoration-color: var(--color-teal);
|
||||
transition: text-decoration-thickness .5s;
|
||||
padding: 0 .1rem; /* These stop the focus outline from covering text */
|
||||
margin: 0 .1rem;
|
||||
}
|
||||
|
||||
a:focus-visible {
|
||||
@ -212,36 +211,6 @@ th:first-child { border-top-left-radius: .25rem; }
|
||||
th:last-child { border-top-right-radius: .25rem; }
|
||||
td:not(:first-child) { border-left: thin solid var(--color-pink); }
|
||||
|
||||
/* Code */
|
||||
/* Syntax highlighting in highlighting.css */
|
||||
code,
|
||||
pre {
|
||||
font-family: var(--font-family-code);
|
||||
background-color: var(--color-bg-alt);
|
||||
font-size: .9rem;
|
||||
}
|
||||
|
||||
code {
|
||||
padding: .2rem;
|
||||
border-radius: .25rem;
|
||||
}
|
||||
|
||||
pre {
|
||||
display: block;
|
||||
margin: 1rem 0;
|
||||
padding: 1rem;
|
||||
line-height: 1.5;
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
overflow-wrap: break-word;
|
||||
tab-size: 4;
|
||||
border-radius: .5rem;
|
||||
}
|
||||
|
||||
pre code {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Times */
|
||||
time {
|
||||
color: var(--color-grey);
|
||||
|
||||
@ -5,6 +5,7 @@ header {
|
||||
background-color: var(--color-bg);
|
||||
box-shadow: 0 .25rem .15rem var(--color-shadow);
|
||||
padding: .75rem 0;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Header links */
|
||||
|
||||
168
css/postlist.css
Normal file
168
css/postlist.css
Normal file
@ -0,0 +1,168 @@
|
||||
#postlist {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.post {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Odd-numbered post layout/coloration */
|
||||
.post:nth-child(odd) .postlink {
|
||||
grid-template-areas:
|
||||
'img h2'
|
||||
'img tags'
|
||||
'img .';
|
||||
grid-template-columns: 45% auto;
|
||||
--color-primary: var(--color-teal);
|
||||
--color-accent: var(--color-pink);
|
||||
}
|
||||
|
||||
/* Even-numbered post layout/coloration */
|
||||
.post:nth-child(even) .postlink {
|
||||
grid-template-areas:
|
||||
'h2 img'
|
||||
'tags img'
|
||||
'. img';
|
||||
grid-template-columns: auto 45%;
|
||||
--color-primary: var(--color-pink);
|
||||
--color-accent: var(--color-teal);
|
||||
}
|
||||
|
||||
/* Layout for all posts on mobile */
|
||||
@media (max-width: 650px) {
|
||||
.post:nth-child(n) .postlink {
|
||||
grid-template-areas:
|
||||
'img'
|
||||
'h2'
|
||||
'tags';
|
||||
grid-template-columns: auto;
|
||||
}
|
||||
}
|
||||
|
||||
/* Link */
|
||||
.postlink {
|
||||
display: grid;
|
||||
border: .25rem solid;
|
||||
border-radius: 1.25rem;
|
||||
box-shadow: .35rem .35rem var(--color-shadow);
|
||||
margin: 2rem 0;
|
||||
text-decoration: none;
|
||||
border-color: var(--color-primary);
|
||||
/* click animation handline */
|
||||
position: relative;
|
||||
top: 0;
|
||||
left: 0;
|
||||
transition: top .05s ease-in, left .05s ease-in;
|
||||
}
|
||||
|
||||
.postlink:focus-visible {
|
||||
background-color: var(--color-primary);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
.postlink:hover {
|
||||
background-color: var(--color-primary);
|
||||
}
|
||||
}
|
||||
|
||||
/* Forced colors */
|
||||
@media (forced-colors: active) {
|
||||
.postlink:focus-visible {
|
||||
outline-offset: .25rem;
|
||||
outline: .25rem solid;
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
.postlink:hover {
|
||||
outline-offset: .25rem;
|
||||
outline: .25rem solid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Click animation */
|
||||
.postlink:active {
|
||||
box-shadow: none;
|
||||
top: .2rem;
|
||||
left: .2rem;
|
||||
box-shadow: .15rem .15rem var(--color-shadow);
|
||||
}
|
||||
|
||||
/* Post elements */
|
||||
.post h2,
|
||||
.post img,
|
||||
.post ul,
|
||||
.post li {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* h2 */
|
||||
.post h2 {
|
||||
grid-area: h2;
|
||||
padding: .25rem .5rem;
|
||||
text-transform: uppercase;
|
||||
font-size: 1.5rem;
|
||||
color: var(--color-primary);
|
||||
border-radius: 1rem 1rem 0 0;
|
||||
border-bottom: .25rem solid var(--color-accent);
|
||||
}
|
||||
|
||||
.post:nth-child(even) h2 {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.postlink:focus-visible h2 {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-bg);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
.postlink:hover h2 {
|
||||
color: var(--color-bg);
|
||||
border-color: var(--color-bg);
|
||||
}
|
||||
}
|
||||
|
||||
/* Image */
|
||||
.post img {
|
||||
grid-area: img;
|
||||
}
|
||||
|
||||
/* Tags */
|
||||
.posttags {
|
||||
grid-area: tags;
|
||||
list-style: none;
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
gap: .5rem;
|
||||
padding: .5rem;
|
||||
}
|
||||
|
||||
.post:nth-child(odd) .posttags {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.post:nth-child(odd) .posttags {
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.posttags li {
|
||||
background-color: var(--color-primary);
|
||||
color: var(--color-bg);
|
||||
padding: 0 .5rem;
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
.postlink:focus-visible .posttags li {
|
||||
background-color: var(--color-bg);
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
@media (any-hover: hover) {
|
||||
.postlink:hover .posttags li {
|
||||
background-color: var(--color-bg);
|
||||
color: var(--color-primary);
|
||||
}
|
||||
}
|
||||
85
css/print.css
Normal file
85
css/print.css
Normal file
@ -0,0 +1,85 @@
|
||||
@media print {
|
||||
/* Nav elements */
|
||||
header,
|
||||
footer,
|
||||
nav {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Base */
|
||||
body {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
main {
|
||||
width: 95vw;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4,h5,h6 {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/* Links */
|
||||
/* Hover is not really necessary, but it's annoying when testing otherwise */
|
||||
a,
|
||||
a:hover {
|
||||
text-decoration-style: dotted;
|
||||
text-decoration-thickness: .1rem;
|
||||
text-decoration-color: #000;
|
||||
}
|
||||
|
||||
a::after{
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
|
||||
/* Code */
|
||||
code,
|
||||
pre,
|
||||
code[class*=language-],
|
||||
pre[class*=language-] {
|
||||
text-shadow: none;
|
||||
background-color: var(--color-light);
|
||||
color: #000 !important;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.token.block-comment,
|
||||
.token.cdata,
|
||||
.token.comment,
|
||||
.token.doctype,
|
||||
.token.prolog,
|
||||
.token.punctuation,
|
||||
.token.attr-name,
|
||||
.token.deleted,
|
||||
.token.namespace,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.function,
|
||||
.token.number,
|
||||
.token.class-name,
|
||||
.token.constant,
|
||||
.token.property,
|
||||
.token.symbol,
|
||||
.token.attr-value,
|
||||
.token.char,
|
||||
.token.regex,
|
||||
.token.string,
|
||||
.token.variable,
|
||||
.token.inserted,
|
||||
.token.entity,
|
||||
.token.operator,
|
||||
.token.url,
|
||||
.token.function-name,
|
||||
.token.atrule,
|
||||
.token.builtin,
|
||||
.token.important,
|
||||
.token.keyword,
|
||||
.token.selector {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user