summaryrefslogtreecommitdiff
path: root/assets/css/main.css
diff options
context:
space:
mode:
Diffstat (limited to 'assets/css/main.css')
-rw-r--r--assets/css/main.css377
1 files changed, 85 insertions, 292 deletions
diff --git a/assets/css/main.css b/assets/css/main.css
index 32ea47d..504fd15 100644
--- a/assets/css/main.css
+++ b/assets/css/main.css
@@ -32,6 +32,7 @@
--pink-bright: oklch(90% 0.06662 9.2146);
--border-radius: 5px;
+ --border-radius-big: calc(var(--border-radius) * 4);
--border-width: 1px;
--padding: 5px;
--padding-big: 10px;
@@ -40,38 +41,32 @@
}
body {
- font-family: "Aporetic", "Open Sans", sans-serif;
- background-color: var(--bg);
+ font-family: "Aporetic", "Aporetic Fallback";
+ background-color: var(--bg-lowest);
background-repeat: repeat;
- color: var(--fg);
+ color: var(--bg);
display: flex;
- gap: var(--padding-big);
min-height: 100vh;
- padding: var(--padding-big);
+ padding: calc(var(--padding-big) * 2);
+ padding-bottom: 0;
box-sizing: border-box;
position: relative;
-}
-
-#deco {
- overflow: hidden;
- position: fixed;
- width: 100%;
- height: 100%;
- left: 0;
- top: 0;
- z-index: -1;
+ scroll-behavior: smooth;
+ flex-direction: column;
}
#triangles {
content: "";
- width: 200%;
- height: 200%;
- background-image: url("/assets/triangle.svg");
- position: absolute;
- transform: translate(-50%, -50%) rotate(22.5deg);
+ /* cos(22.5deg) sin(22.5deg) */
+ width: calc(100vw * 0.92387953 + 100vh * 0.38268343);
+ height: calc(100vh * 0.92387953 + 100vw * 0.38268343);
+ position: fixed;
left: 50%;
top: 50%;
- z-index: -2;
+ z-index: 2;
+ background-image: url("/assets/triangle.svg");
+ opacity: 0.075;
+ transform: translate(-50%, -50%) rotate(22.5deg);
animation: scroll 16s linear infinite;
}
@@ -87,323 +82,121 @@ body {
}
}
-#rainbow {
- --bar-size: 0.3em;
- position: absolute;
- z-index: -1;
- bottom: 0;
- right: 0;
- aspect-ratio: 1 / 1;
- height: calc(var(--bar-size) * 14); /* magic number */
- background-image: linear-gradient(
- -45deg,
- transparent,
- transparent var(--bar-size),
- var(--blue) var(--bar-size),
- var(--blue) calc(var(--bar-size) * 2),
- transparent calc(var(--bar-size) * 2),
- transparent calc(var(--bar-size) * 3),
- var(--green) calc(var(--bar-size) * 3),
- var(--green) calc(var(--bar-size) * 4),
- transparent calc(var(--bar-size) * 4),
- transparent calc(var(--bar-size) * 5),
- var(--yellow) calc(var(--bar-size) * 5),
- var(--yellow) calc(var(--bar-size) * 6),
- transparent calc(var(--bar-size) * 6),
- transparent calc(var(--bar-size) * 7),
- var(--orange) calc(var(--bar-size) * 7),
- var(--orange) calc(var(--bar-size) * 8),
- transparent calc(var(--bar-size) * 8),
- transparent calc(var(--bar-size) * 9),
- var(--red) calc(var(--bar-size) * 9),
- var(--red) calc(var(--bar-size) * 10),
- transparent calc(var(--bar-size) * 10)
- );
-}
-
-/*
- * failsafe for when the viewport is too small and the rainbow overlaps the text
- */
-main > div,
-footer,
-nav > ul {
- background-color: var(--bg);
- box-shadow: var(--bg) 0 0 32px 8px;
- border-radius: var(--border-radius);
-}
-
-#upper {
- display: flex;
- flex-direction: column;
- flex-grow: 1;
-}
-
-#upper > div {
- flex-grow: 1;
- display: flex;
- flex-direction: column;
- gap: var(--padding-big);
- align-items: center;
-}
-
.subtle {
color: var(--fg-low);
}
main {
flex-grow: 1;
- width: 80vw;
line-height: 1.4;
+ padding: calc(var(--padding-big) * 2);
+ display: flex;
+ justify-content: center;
box-sizing: border-box;
+ background-color: var(--yellow);
+ border-radius: var(--border-radius-big);
+ overflow: hidden;
+ text-wrap: pretty;
}
-nav {
- z-index: 999;
-}
-
-nav > ul > li {
- display: inline;
+main > div {
+ max-width: 70%;
+ z-index: 3;
+ position: relative;
}
-main,
nav {
- padding: var(--padding-big);
-}
-
-nav li:not(:last-of-type)::after,
-footer > div > span:not(:last-of-type)::after {
- content: "";
- border-left: calc(var(--border-width) * 1) solid var(--border);
- margin-left: var(--padding);
- margin-right: var(--padding);
- display: inline-block;
- vertical-align: baseline;
- height: 1cap;
-}
-
-footer > div {
- line-height: 1.5;
+ padding-bottom: 0;
+ position: relative;
}
-footer {
- text-align: center;
- padding: var(--padding);
- font-size: 0.8em;
+nav > ul {
display: flex;
- flex-direction: column;
- gap: var(--padding);
+ gap: calc(var(--padding) + var(--border-radius) * 2);
+ padding-left: calc(var(--border-radius-big) + var(--padding-big));
}
-a,
-a:link {
- color: var(--yellow);
+nav .tab {
+ --color: var(--bg);
+ display: block;
+ color: var(--fg);
+ border-radius: var(--border-radius) var(--border-radius) 0 0;
+ background-color: var(--color);
+ position: relative;
}
-a:not(.volatile):visited {
- color: var(--pink);
+nav .tab:not(.active) {
+ z-index: 3
}
-a:focus,
-a:hover {
- color: var(--yellow-bright);
+nav .tab:hover {
+ --color: var(--bg-high);
}
-a:active {
- color: var(--yellow);
+nav .tab.active {
+ --color: var(--yellow);
+ color: var(--bg);
}
-.anchor {
- order: -1;
+nav .tab > a {
+ padding: var(--padding-big);
+ display: block;
+ color: inherit;
text-decoration: none;
+ z-index: 3;
+ position: relative;
}
-a.anchor:link, a.anchor:visited {
- color: var(--fg-low);
-}
-
-a.anchor:focus,
-a.anchor:hover {
- color: var(--yellow-bright);
-}
-
-a.anchor:active {
- color: var(--yellow);
+nav .tab > a:focus-visible {
+ border-radius: var(--border-radius) var(--border-radius) 0 0;
+ outline: var(--blue) solid calc(var(--border-radius) + 1px);
+ outline-offset: 0;
}
-.anchor::after {
- content: "#";
+footer {
+ text-align: center;
+ color: var(--fg);
+ border-radius: var(--border-radius-big) var(--border-radius-big) 0 0;
+ padding: var(--padding-big);
font-size: 0.8em;
+ position: relative;
+ background-color: var(--bg-lowest);
+ z-index: 3;
}
-h1, h2 {
- line-height: 1;
- display: flex;
- align-items: center;
- gap: var(--padding-big);
-}
-
-.anchor::before {
- content: "";
- height: var(--border-width);
- background-color: var(--border);
-}
-
-h1::after, h2::after {
- content: "";
- height: var(--border-width);
- background-color: var(--border);
- flex-grow: 1;
-}
-
-h1 {
- font-size: 1.5em;
-}
-
-h2 {
- font-size: 1.25em;
-}
-
-main li {
- margin-left: var(--padding-big);
- list-style-type: "- ";
- list-style-position: inside;
-}
-
-main li::marker {
- color: var(--border);
-}
-
-main ol,
-main ul {
- padding-top: var(--padding);
- gap: var(--padding);
+footer > div {
display: flex;
flex-direction: column;
+ gap: var(--padding);
}
-p,
-pre,
-h1, h2
-{
- margin-top: 0.8em;
-}
-
-main > :last-child {
- margin-bottom: 0;
-}
-
-strong {
- font-weight: bold;
-}
-
-code {
- border-radius: var(--border-radius);
- padding-inline: calc(var(--padding) / 2);
- font-family: "Aporetic Mono", monospace;
- border: var(--border-width) solid var(--border);
- overflow-wrap: anywhere;
-}
-
-pre {
- overflow: hidden;
+footer > div > div {
+ line-height: 1.5;
}
-pre > code {
- display: block;
- padding: calc(var(--padding) * 2);
- position: relative;
- line-height: 1.3;
- overflow-wrap: break-word;
- background: transparent;
- overflow-x: scroll;
+footer > div > div > span:not(:last-of-type)::after {
+ content: "";
+ border-left: calc(var(--border-width) * 1) solid var(--border);
+ margin-left: var(--padding);
+ margin-right: var(--padding);
+ display: inline-block;
+ vertical-align: baseline;
+ height: 1cap;
}
-pre > code[data-lang]::after {
- content: attr(data-lang);
- position: absolute;
- top: 0;
- right: 0;
- padding: var(--padding);
- border-radius: 0 var(--border-radius);
- border-bottom: var(--border-width) solid var(--border);
- border-left: var(--border-width) solid var(--border);
- background-color: var(--bg-high);
- transition: transform 0.2s var(--easing);
+footer a {
+ color: var(--fg);
}
-pre > code[data-lang]:hover::after {
- transform: translateX(100%);
+footer a:hover,
+footer a:focus {
+ color: var(--yellow);
}
-@media (max-width: 130ch) {
- aside {
- padding: var(--padding-big);
- font-size: 0.9em;
- box-sizing: border-box;
- border: var(--border-width) solid var(--border);
- border-radius: var(--border-radius);
- background-color: var(--bg-high);
- position: relative;
- margin-bottom: var(--padding-big);
- margin-top: calc(var(--padding-big) + var(--arrow-size) / 2);
- }
-
- aside::after,
- aside::before {
- content: "";
- border-right: var(--arrow-size) solid transparent;
- border-left: var(--arrow-size) solid transparent;
- position: absolute;
- width: 0;
- height: 0;
- left: 50%;
- transform: translateX(-50%);
- }
-
- aside::before {
- border-bottom: var(--arrow-size) solid var(--border);
- top: calc(var(--arrow-size) * -1);
- }
-
- aside::after {
- border-bottom: var(--arrow-size) solid var(--bg-high);
- top: calc(var(--arrow-size) * -1 + var(--border-width));
- }
+main a {
+ color: inherit;
}
-@media (min-width: 130ch) {
- aside {
- position: absolute;
- right: var(--padding-big);
- max-width: calc(10vw - var(--padding-big));
- padding: var(--padding-big);
- font-size: 0.9em;
- box-sizing: border-box;
- border: var(--border-width) solid var(--border);
- border-radius: var(--border-radius);
- background-color: var(--bg-high);
- transform: translateY(calc(-50% - 1lh));
- }
-
- aside::after,
- aside::before {
- content: "";
- border-top: var(--arrow-size) solid transparent;
- border-bottom: var(--arrow-size) solid transparent;
- position: absolute;
- width: 0;
- height: 0;
- top: 50%;
- transform: translateY(-50%);
- }
-
- aside::before {
- border-right: var(--arrow-size) solid var(--border);
- left: calc(var(--arrow-size) * -1);
- }
-
- aside::after {
- border-right: var(--arrow-size) solid var(--bg-high);
- left: calc(var(--arrow-size) * -1 + var(--border-width));
- }
+.wavy {
+ font-size: 3em;
}