site!(design): do it better

This redesign isn't final, but it is much more clean and responsive.
This commit is contained in:
nopeitsnothing
2026-06-27 17:15:40 -04:00
parent 04f5036f3e
commit 8b4542f4d9
46 changed files with 15847 additions and 83925 deletions
+81 -307
View File
@@ -1,133 +1,44 @@
:root {
--crt-amber: #e7d9a3;
--crt-blue: #00d9ff;
--crt-green: #00f080;
--crt-red: #ff4c4c;
--phosphor-dim: #1a3a1a;
--status-success: #4ade80;
--status-warning: #fbbf24;
--status-error: #ef4444;
--status-info: #60a5fa;
--terminal-green-glow: rgba(0, 255, 0, 0.15);
--terminal-line-color: rgba(0, 255, 0, 0.3);
--terminal-border-faint: rgba(0, 255, 0, 0.08);
--md-default-bg-color: rgba(0, 255, 0, 0.08);
}
body::before {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
pointer-events: none;
z-index: 9999;
background: linear-gradient(
rgba(18, 32, 12, 0) 50%,
rgba(0, 20, 0, 0.1) 50%
),
linear-gradient(
90deg,
rgba(12, 36, 18, 0) 50%,
rgba(0, 16, 0, 0.08) 50%
);
background-size: 100% 4px, 6px 100%;
animation: scanline 4ms linear infinite;
}
@keyframes scanline {
0% { background-position: 0 0, 0 0; }
100% { background-position: 0 4px, 6px 100%; }
}
body::after {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
pointer-events: none;
z-index: 9998;
background: radial-gradient(
ellipse at center,
transparent 50%,
rgba(0, 0, 0, 0.3) 100%
);
}
@keyframes cursorBlink {
0%, 49% { opacity: 1; }
50%, 100% { opacity: 0; }
}
.md-header__topic::before,
body > *:first-child::before {
.md-header__topic::before {
content: "λ ";
animation: cursorBlink 1s step-end infinite;
color: var(--crt-amber);
font-family: var(--code-font);
margin-right: 0.25em;
animation: cursorBlink 1s step-end infinite;
}
.terminal-window {
background: linear-gradient(180deg,
var(--bg-primary) 0%,
var(--bg-card) 100%
);
border: 2px solid var(--border-color);
border-radius: 8px;
padding: 1.5em;
position: relative;
box-shadow: 0 8px 32px rgba(0, 255, 0, 0.1);
@keyframes terminalLoad {
from { opacity: 0; transform: translateY(25px); }
to { opacity: 1; transform: translateY(0); }
}
.terminal-window::before {
content: "";
position: absolute;
top: -2px;
left: -2px;
right: -2px;
height: 3px;
background: linear-gradient(90deg,
transparent,
var(--accent-green),
transparent
);
opacity: 0.5;
.md-typeset h1 {
animation: terminalLoad 200ms ease-out forwards;
}
strong {
text-shadow: 0 0 1px var(--border-color);
h1, h2, h3, h4, h5, h6 {
color: var(--crt-amber);
font-family: var(--font-main);
font-weight: bold;
}
h1, h2 {
color: var(--crt-amber);
font-family: var(--code-font);
font-weight: bold;
margin-right: 0.02em;}
h3, h4, h5, h6 {
color: var(--crt-amber);
font-family: var(--code-font);
font-weight: bold;
margin-right: 0.02em;
}
p strong,
strong {
strong,
p strong {
text-shadow: 0 0 1px var(--border-color);
}
pre {
background: linear-gradient(180deg,
var(--bg-color) 0%,
#0d150d 100%
);
border-left: 3px solid var(--accent-green);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
background: rgba(30, 10, 40, 0.85);
border-left: 3px solid rgba(125, 70, 152, 0.55);
box-shadow: inset 0 0 0 1px rgba(125, 70, 152, 0.12);
}
pre[role="presentation"] [data-line] {
@@ -139,22 +50,12 @@ pre[role="presentation"] [data-line] {
padding-right: 1em;
}
pre code .token-keyword {
color: var(--crt-blue);
font-weight: bold;
}
pre code .token-keyword { color: var(--crt-blue); font-weight: bold; }
pre code .token-string { color: var(--status-success); }
pre code .token-comment { color: var(--text-muted); font-style: italic; }
pre code .token-string {
color: var(--status-success);
}
pre code .token-comment {
color: var(--text-muted);
font-style: italic;
}
.kbd,
kbd,
.kbd,
[data-type="kbd"] {
background: var(--bg-secondary);
border: 1px solid var(--border-color);
@@ -164,58 +65,19 @@ kbd,
font-family: var(--code-font);
font-size: 0.85em;
color: var(--accent-green);
text-shadow: 0 1px 2px rgba(0, 255, 0, 0.1);
text-shadow: 0 1px 2px rgba(0, 255, 0, 0.10);
transition: all 0.1s ease;
}
kbd:hover {
border-color: var(--accent-green);
box-shadow: 0 2px 8px rgba(0, 255, 0, 0.2);
box-shadow: 0 2px 8px rgba(0, 255, 0, 0.20);
transform: translateY(-1px);
}
.status-indicator {
display: inline-flex;
align-items: center;
gap: 0.5em;
font-family: var(--code-font);
font-size: 0.85em;
text-transform: uppercase;
letter-spacing: 0.1em;
padding: 0.25em 0.5em;
border-radius: 4px;
}
.status-success {
color: var(--status-success);
background: rgba(74, 222, 128, 0.1);
border: 1px solid rgba(74, 222, 128, 0.3);
}
.status-warning {
color: var(--status-warning);
background: rgba(251, 191, 36, 0.1);
border: 1px solid rgba(251, 191, 36, 0.3);
}
.status-error {
color: var(--status-error);
background: rgba(239, 68, 68, 0.1);
border: 1px solid rgba(239, 68, 68, 0.3);
}
.status-info {
color: var(--status-info);
background: rgba(96, 165, 250, 0.1);
border: 1px solid rgba(96, 165, 250, 0.3);
}
.admonition {
border-left: 4px solid var(--accent-green);
background: linear-gradient(180deg,
transparent 0%,
rgba(0, 255, 0, 0.03) 100%
);
background: linear-gradient(180deg, transparent 0%, rgba(0, 255, 0, 0.03) 100%);
}
.admonition-title {
@@ -242,11 +104,8 @@ kbd:hover {
}
.md-typeset__table th {
background: linear-gradient(180deg,
var(--bg-secondary) 0%,
var(--bg-card) 100%
);
border-bottom: 2px solid var(--accent-green);
background: var(--bg-secondary);
border-bottom: 2px solid var(--crt-amber);
font-weight: 700;
letter-spacing: 0.05em;
}
@@ -255,14 +114,11 @@ kbd:hover {
background-color: var(--bg-primary);
}
blockquote, .admonition-blockquote {
blockquote {
border-left: 3px solid var(--accent-green);
margin: 1.5em 0;
padding-left: 1.5em;
background: linear-gradient(90deg,
rgba(0, 255, 0, 0.05) 0%,
transparent 100%
);
background: linear-gradient(90deg, rgba(0, 255, 0, 0.05) 0%, transparent 100%);
}
blockquote p:first-of-type::before {
@@ -271,23 +127,56 @@ blockquote p:first-of-type::before {
font-family: var(--code-font);
}
.md-typeset a::after,
a:not(.btn)::after {
content: "";
position: absolute;
bottom: -3px;
left: 0;
width: 0;
height: 1px;
background: var(--bg-card);
transition: width 0.2s ease;
.md-typeset mark,
.highlight-mark {
background-color: rgba(255, 235, 0, 0.30);
color: inherit;
padding: 0.1em;
border-radius: 2px;
}
.md-typeset a:hover::after,
a:not(.btn):hover::after {
width: 100%;
.status-indicator {
display: inline-flex;
align-items: center;
gap: 0.5em;
font-family: var(--code-font);
font-size: 0.85em;
text-transform: uppercase;
letter-spacing: 0.1em;
padding: 0.25em 0.5em;
border-radius: 4px;
}
.status-success { color: var(--status-success); background: rgba(74, 222, 128, 0.10); border: 1px solid rgba(74, 222, 128, 0.30); }
.status-warning { color: var(--status-warning); background: rgba(251, 191, 36, 0.10); border: 1px solid rgba(251, 191, 36, 0.30); }
.status-error { color: var(--status-error); background: rgba(239, 68, 68, 0.10); border: 1px solid rgba(239, 68, 68, 0.30); }
.status-info { color: var(--status-info); background: rgba(96, 165, 250, 0.10); border: 1px solid rgba(96, 165, 250, 0.30); }
.terminal-window {
background: linear-gradient(180deg, var(--bg-primary) 0%, var(--bg-card) 100%);
border: 2px solid var(--border-color);
border-radius: 8px;
padding: 1.5em;
position: relative;
box-shadow: 0 8px 32px rgba(0, 255, 0, 0.10);
}
.terminal-window::before {
content: "";
position: absolute;
top: -2px;
left: -2px;
right: -2px;
height: 3px;
background: linear-gradient(90deg, transparent, var(--accent-green), transparent);
opacity: 0.5;
}
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg-primary); }
::-webkit-scrollbar-thumb { background: var(--terminal-green-glow); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent-green-dim); }
.btn {
font-family: var(--code-font);
text-transform: uppercase;
@@ -296,43 +185,10 @@ a:not(.btn):hover::after {
transition: all 0.2s ease;
}
.md-typeset .admonition-title,
div.admonition > div:first-of-type::before {
font-family: var(--code-font);
text-transform: uppercase;
letter-spacing: 0.1em;
}
.md-typeset mark,
.highlight-mark {
background-color: rgba(255, 235, 0, 0.3);
color: inherit;
padding: 0.1em;
border-radius: 2px;
}
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: var(--bg-primary);
}
::-webkit-scrollbar-thumb {
background: var(--terminal-green-glow);
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--accent-green-dim);
}
@media (max-width: 768px) {
body::before {
[data-md-color-scheme="slate"] body::before {
background-size: 100% 2px, 3px 100%;
animation-duration: 6s;
animation-duration: 6ms;
}
}
@@ -341,93 +197,11 @@ div.admonition > div:first-of-type::before {
--accent-green: #fff;
--bg-primary: #000;
}
}
body::before {
background-size: 100% 3px, 4px 100%;
@media (prefers-reduced-motion: reduce) {
.md-header__topic::before,
.md-typeset h1 {
animation: none;
}
}
@keyframes terminalLoad {
0% { opacity: 0; transform: translateY(25px); }
100% { opacity: 1; transform: translateY(0); }
}
.md-typeset h1,
.md-content {
animation: terminalLoad 200ms ease-out forwards;
}
body::after {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
pointer-events: none;
z-index: 9997;
background: radial-gradient(
circle at center,
rgba(0, 255, 0, 0.03) 0%,
transparent 60%
);
animation: phosphorDecay 8s ease-out infinite;
}
@keyframes phosphorDecay {
0%, 100% { opacity: 0.4; }
50% { opacity: 0.2; }
}
body::after::before {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
pointer-events: none;
z-index: 9998;
background: radial-gradient(
circle at center,
transparent 40%,
rgba(0, 0, 0, 0.6) 100%
);
}
.terminal-banner {
font-family: var(--code-font);
font-size: 0.75em;
letter-spacing: 0.2em;
text-align: center;
color: var(--text-muted);
padding: 1em 0;
border-top: 1px dashed var(--terminal-line-color);
border-bottom: 1px dashed var(--terminal-line-color);
margin: 3em 0;
}
.holographic-grid {
background-image:
linear-gradient(var(--terminal-border-faint) 1px, transparent 1px),
linear-gradient(90deg, var(--terminal-border-faint) 1px, transparent 1px);
background-size: 20px 20px;
position: relative;
}
.holographic-grid::before {
content: "";
position: absolute;
inset: 0;
background:
linear-gradient(
rgba(0, 255, 0, 0.03) 10px,
transparent 10px
),
linear-gradient(
90deg,
rgba(0, 255, 0, 0.03) 10px,
transparent 10px
);
background-size: 10px 10px;
}