devon.lol/assets/css/theme.css
2022-11-29 20:00:06 -08:00

302 lines
5.7 KiB
CSS

@font-face {
font-family: "BitBold";
font-style: normal;
font-weight: normal;
src: local("BitBold"), url("../fonts/BitBold.woff") format("woff");
}
:root {
--accent: rgb(62, 249, 138);
--fancy-font-stack: BitBold, monospace;
}
.sr-only:not(:focus):not(:active) {
clip: rect(0 0 0 0);
clip-path: inset(50%);
height: 1px;
overflow: hidden;
position: absolute;
white-space: nowrap;
width: 1px;
}
html {
box-sizing: border-box;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body > * {
grid-column: unset;
}
body {
background-image: url("data:image/svg+xml,<svg id='patternId' width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='70' height='70' patternTransform='scale(4) rotate(0)'><rect x='0' y='0' width='100%' height='100%' fill='hsla(318, 45%, 29%, 1)'/><path d='M-4.8 4.44L4 16.59 16.14 7.8M32 30.54l-13.23 7.07 7.06 13.23M-9 38.04l-3.81 14.5 14.5 3.81M65.22 4.44L74 16.59 86.15 7.8M61 38.04l-3.81 14.5 14.5 3.81' stroke-linecap='square' stroke-width='1' stroke='hsla(258.5,59.4%,59.4%,1)' fill='none'/><path d='M59.71 62.88v3h3M4.84 25.54L2.87 27.8l2.26 1.97m7.65 16.4l-2.21-2.03-2.03 2.21m29.26 7.13l.56 2.95 2.95-.55' stroke-linecap='square' stroke-width='1' stroke='hsla(144, 94%, 61%, 1)' fill='none'/><path d='M58.98 27.57l-2.35-10.74-10.75 2.36M31.98-4.87l2.74 10.65 10.65-2.73M31.98 65.13l2.74 10.66 10.65-2.74' stroke-linecap='square' stroke-width='1' stroke='hsla(199, 98%, 48%, 1)' fill='none'/><path d='M8.42 62.57l6.4 2.82 2.82-6.41m33.13-15.24l-4.86-5.03-5.03 4.86m-14-19.64l4.84-5.06-5.06-4.84' stroke-linecap='square' stroke-width='1' stroke='hsla(326, 100%, 50%, 1)' fill='none'/></pattern></defs><rect width='800%' height='800%' transform='translate(0,0)' fill='url(%23a)'/></svg>");
background-attachment: fixed;
font-size: 1.35rem;
grid-template-columns: 1fr;
justify-items: start;
column-gap: 3rem;
}
body > nav,
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--fancy-font-stack);
}
img {
opacity: 1;
}
a,
a:visited {
text-decoration: none;
transition: 0.2s;
}
a:hover,
a:visited:hover {
text-shadow: 0 0 2px #fff, 0 0 8px var(--accent);
}
body > nav {
align-self: start;
grid-row: 2;
position: relative;
margin-bottom: 2rem;
overflow: auto;
}
body > nav ul {
list-style-type: none;
margin: 0;
padding: 0;
display: flex;
}
body > nav li {
font-size: 2.5rem;
margin: 0 1rem;
white-space: nowrap;
}
body > nav li:first-of-type {
margin: 0;
}
body > nav a {
transition: 0.2s;
}
body > nav a,
body > nav a:visited {
text-decoration: none;
color: var(--text);
text-shadow: 3px 3px 0 black;
}
body > nav a[disabled] {
cursor: no-drop;
}
body > nav a:hover:not([disabled]) {
color: #fff;
}
h1 {
font-size: 3.5rem;
z-index: 1;
position: relative;
margin-top: 0;
text-shadow: 0.1em 0 black;
}
h1 + article {
margin-top: -1.9rem;
}
.logo {
max-width: 100%;
margin: 2rem 1rem 3rem 2rem;
}
.logo img {
width: 25rem;
max-width: 100%;
}
body > .logo {
grid-row: 1;
}
article {
border-radius: 0;
}
body > article {
grid-row: 4;
justify-self: stretch;
}
body > article,
body > h1,
body > nav,
body > .logo {
grid-column: 1;
}
body > h1 {
grid-row: 3;
}
body > h1 {
margin: 1rem;
}
body > nav {
padding-left: 1rem;
width: 100%;
}
body > footer {
align-self: end;
grid-row: 5;
border: none;
color: var(--text);
margin-top: 2rem;
}
footer img {
width: 5rem;
}
@media screen and (min-width: 50rem) {
body > h1 {
margin-left: 2rem;
}
body > nav {
padding-left: 2rem;
}
}
@media screen and (min-width: 67rem) {
body {
grid-template-columns: minmax(45rem, 70rem) minmax(18rem, 1fr);
}
body > nav ul {
display: block;
}
body > nav li {
margin: 0;
}
body > nav {
grid-column: 2;
grid-row: 3;
width: auto;
overflow: unset;
position: sticky;
top: 0;
}
body > .logo {
grid-row: 1;
}
body > h1 {
grid-row: 2;
}
body > article {
grid-row: 3 / 5;
margin-bottom: 3rem;
}
body > footer {
align-self: end;
grid-column: 2;
grid-row: 4;
margin-bottom: 3rem;
}
body > nav a:hover:not([disabled]) {
text-shadow: 0 0 5px var(--accent), 0 0 25px var(--accent),
0 0 50px var(--accent), 0 0 100px var(--accent);
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
display: flex;
align-items: baseline;
margin-bottom: 0;
}
h1:hover .anchor,
h2:hover .anchor,
h3:hover .anchor,
h4:hover .anchor,
h5:hover .anchor,
h6:hover .anchor {
display: block;
}
.anchor {
display: none;
font-size: 0.6em;
opacity: 0.6;
color: var(--text);
order: 2;
text-decoration: none;
margin-left: 0.25em;
}
p:first-of-type {
margin-top: 0;
}
.glow {
border: none;
box-shadow: 0 0 5px #fff, 0 0 20px 10px var(--accent);
}
.bg {
position: relative;
padding: 1rem;
}
/* I'm using the Simple.css lightweight CSS framework. This allows me to use
the main background color from that framework (the CSS variable `--bg` and
use it only behind the article. */
.bg::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: var(--bg);
opacity: 0.85;
z-index: -1;
}
@media screen and (min-width: 50rem) {
.bg {
padding: 2rem;
}
}
.post-list {
list-style-type: none;
margin: 4rem 0 0;
padding: 0;
}
.post-list li:not(:last-of-type) {
margin-bottom: 4rem;
}
.post-list h2 {
margin-bottom: 0.25rem;
}
.post-list small {
display: block;
opacity: 0.8;
margin-bottom: 0.75rem;
}
.pagination ol {
padding: 0;
width: 100%;
display: grid;
list-style-type: none;
grid-template-columns: 1fr 1fr;
margin: 4rem 0 0 0;
}
.pagination .newer-item {
grid-column: 1;
justify-self: start;
}
.pagination .older-item {
grid-column: 2;
justify-self: end;
}