summaryrefslogtreecommitdiff
path: root/src/assets/css/default.scss
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/css/default.scss')
-rw-r--r--src/assets/css/default.scss276
1 files changed, 276 insertions, 0 deletions
diff --git a/src/assets/css/default.scss b/src/assets/css/default.scss
new file mode 100644
index 0000000..8509dfb
--- /dev/null
+++ b/src/assets/css/default.scss
@@ -0,0 +1,276 @@
+// VARIABLES AND IMPORTS
+// ---------------------------------------------------------------------------
+
+$clr-bg: oklch(22.49% 0.008 297.21);
+$clr-fg: oklch(98.51% 0 0);
+$clr-primary: oklch(82.67% 0.096 307.5);
+$clr-secondary: oklch(from $clr-primary l c 240); // hue-shifted copy
+
+$gap: 1rem;
+$max-width: 50rem;
+$mobile: 980px;
+
+@import "syntax";
+
+// MIXINS
+// ---------------------------------------------------------------------------
+
+@mixin phone-only {
+ @media (max-width: $mobile) {
+ @content;
+ }
+}
+
+@mixin std-block {
+ display: block;
+ margin: 0;
+}
+
+// GLOBAL RESET & TYPOGRAPHY
+// ---------------------------------------------------------------------------
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box;
+}
+
+* {
+ padding: 0;
+ margin: 0;
+ transition: 0.1s ease-in-out;
+ font-family: "Atkinson Hyperlegible Next", sans-serif;
+ font-optical-sizing: auto;
+ text-transform: lowercase;
+}
+
+html {
+ font-size: 16px;
+}
+
+// 1rem base
+
+body {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: $gap;
+ padding: 5rem $gap $gap;
+ overflow-x: hidden;
+ color: $clr-fg;
+ background-color: black;
+ background:
+ url("/assets/images/noise.png"),
+ radial-gradient(circle at center, $clr-bg, transparent),
+ radial-gradient(circle at bottom left, #27577d, transparent),
+ radial-gradient(circle at top right, #952ea4 0%, transparent),
+ radial-gradient(circle at center right, #6949a5 0%, transparent),
+ radial-gradient(circle at top center, #336ba0 0%, transparent);
+ background-attachment: fixed;
+}
+
+// LAYOUT WRAPPER
+// ---------------------------------------------------------------------------
+
+body > * {
+ // every top-level section
+ display: flex;
+ flex-direction: column;
+ gap: $gap;
+ width: 100%;
+ max-width: $max-width;
+ padding: 1.5rem 2.5rem;
+ background: $clr-bg;
+ outline: 0.2rem solid $clr-bg;
+ outline-offset: 0.2rem;
+}
+
+@include phone-only {
+ body {
+ padding: 0;
+ gap: 0.2rem;
+ }
+
+ body > * {
+ outline: 0;
+ }
+}
+
+// NAVIGATION
+// ---------------------------------------------------------------------------
+
+nav {
+ position: fixed;
+ transform: translateX(28rem);
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: $gap;
+ padding: 1rem 2rem;
+ width: 0rem;
+
+ svg {
+ width: 2rem;
+ height: 2rem;
+ fill: $clr-fg;
+ }
+
+ a {
+ writing-mode: vertical-rl;
+ text-orientation: sideways;
+ text-decoration: none;
+ color: $clr-fg;
+ }
+
+ hr {
+ width: 100%;
+ }
+}
+
+@include phone-only {
+ nav {
+ position: static;
+ transform: none;
+ flex-direction: row;
+ justify-content: space-between;
+ width: 100%;
+
+ a {
+ writing-mode: horizontal-tb;
+ }
+
+ hr {
+ display: none;
+ }
+ }
+}
+
+// TYPOGRAPHIC ELEMENTS
+// ---------------------------------------------------------------------------
+
+p,
+ul,
+span {
+ font-size: 1.2rem;
+ text-align: justify;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ @include std-block;
+ padding-top: 0.5rem;
+ font-size: 1.75rem;
+}
+
+// auto-generate heading prefixes
+@for $i from 1 through 6 {
+ h#{$i}::before {
+ $hashes: "";
+
+ @for $_ from 1 through $i {
+ $hashes: $hashes + "#";
+ }
+
+ content: "#{$hashes} ";
+ color: oklch(82.67% 0.087 #{280 + ($i - 1) * 40});
+ }
+}
+
+// LISTS
+// ---------------------------------------------------------------------------
+
+ul {
+ display: flex;
+ flex-direction: column;
+ gap: 0.5rem;
+ list-style: none;
+
+ li::before {
+ content: "~";
+ padding: 0 0.25rem 0 0.5rem;
+ color: oklch(82.67% 0.087 180);
+ }
+}
+
+// rainbow list items
+@for $i from 1 through 15 {
+ ul li:nth-child(n + #{$i})::before {
+ color: oklch(82.67% 0.087 #{100 + ($i - 1) * 80});
+ }
+}
+
+// LINKS & MISC
+// ---------------------------------------------------------------------------
+
+a {
+ color: $clr-primary;
+
+ &:hover {
+ filter: brightness(0.75);
+ }
+}
+
+hr {
+ $c: oklch(from $clr-fg 0.45 c h);
+ background: $c;
+ border-color: $c;
+}
+
+img {
+ user-select: none;
+}
+
+address {
+ opacity: 0.5;
+ text-align: right;
+ margin-top: -2.1lh;
+ margin-bottom: 0.5rem;
+}
+
+footer {
+ gap: 0;
+
+ > * {
+ text-align: center;
+ font-size: 1rem;
+ opacity: 0.5;
+ }
+}
+
+// CODE BLOCKS
+// ---------------------------------------------------------------------------
+
+div.sourceCode {
+ padding: 0.2rem;
+ overflow: hidden;
+ font-family: "Atkinson Hyperlegible Mono", monospace;
+ background-color: black;
+ background:
+ url("/images/noise.png"),
+ radial-gradient(circle at center, $clr-bg, transparent),
+ radial-gradient(circle at bottom left, #27577d, transparent),
+ radial-gradient(circle at top right, #952ea4 0%, transparent),
+ radial-gradient(circle at center right, #6949a5 0%, transparent),
+ radial-gradient(circle at top center, #336ba0 0%, transparent);
+ background-attachment: scroll;
+
+ outline: 0.2rem solid $clr-bg;
+ outline-offset: 0.2rem;
+
+ > * {
+ background: $clr-bg;
+ background-attachment: fixed;
+ padding: 1.2rem;
+ overflow: auto;
+ }
+
+ * {
+ font-family: "Atkinson Hyperlegible Mono", monospace;
+ text-transform: none;
+ font-size: 1.05rem;
+ }
+}