feat: initial commit

This commit is contained in:
2025-08-17 13:15:17 +02:00
commit 363e8aafac
14 changed files with 884 additions and 0 deletions

173
static/css/theme.css Normal file
View File

@@ -0,0 +1,173 @@
:root[data-theme="latte"] {
--bg: #eff1f5;
--fg: #4c4f69;
--muted: #8c8fa1;
--card: #ffffffcc;
--accent: #7287fd;
--accent-2: #179299;
--code-bg: color-mix(in srgb, var(--bg) 88%, transparent);
--border: #ccd0da;
}
:root[data-theme="mocha"] {
--bg: #1e1e2e;
--fg: #cdd6f4;
--muted: #a6adc8;
--card: #1e1e2ecc;
--accent: #b4befe;
--accent-2: #94e2d5;
--code-bg: color-mix(in srgb, var(--bg) 70%, transparent);
--border: #313244;
}
html,
body {
background: var(--bg);
color: var(--fg);
}
a {
color: var(--accent);
text-decoration: underline;
text-decoration-color: color-mix(in srgb, var(--accent) 40%, transparent);
}
pre,
code {
background: var(--code-bg);
}
.post-card {
background: var(--card);
border: 1px solid var(--border);
border-radius: 12px;
box-shadow: 0 8px 20px rgba(0, 0, 0, .05);
}
.progress {
position: fixed;
top: 0;
left: 0;
height: 2px;
width: 0;
background: var(--accent-2);
z-index: 50;
}
@media (min-width: 1100px) {
.with-sidenotes {
max-width: 70ch;
margin-right: 22ch;
position: relative;
}
.sidenote {
position: absolute;
right: -20ch;
width: 18ch;
color: var(--muted);
}
}
html,
body {
margin: 0;
}
html {
font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
line-height: 1.7;
}
pre, code, kbd, samp {
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}
main {
max-width: 70ch;
padding: 2rem 1rem 4rem;
margin: 0 auto;
}
.post-card {
padding: 1rem 1.25rem;
transition: transform .15s ease, box-shadow .15s ease;
}
.post-card:hover {
transform: translateY(-2px);
box-shadow: 0 10px 24px rgba(0, 0, 0, .08);
}
.post-meta {
color: var(--muted);
font-size: .9rem;
}
.tag {
display: inline-block;
border: 1px solid var(--border);
border-radius: 999px;
padding: .1rem .5rem;
margin-right: .25rem;
color: var(--muted);
}
/* Minimal header and navigation */
.site-header {
position: sticky;
top: 0;
backdrop-filter: saturate(180%) blur(8px);
background: color-mix(in srgb, var(--bg) 85%, transparent);
border-bottom: 1px solid var(--border);
}
.container {
max-width: 70ch;
margin: 0 auto;
padding: .75rem 1rem;
}
.header-inner {
display: flex;
align-items: center;
gap: .75rem;
}
.site-logo {
text-decoration: none;
color: inherit;
font-weight: 600;
margin-right: auto;
}
.site-nav {
display: flex;
gap: .5rem;
flex-wrap: wrap;
}
.site-nav__link {
text-decoration: none;
color: var(--fg);
border: 1px solid transparent;
border-radius: 8px;
padding: .25rem .5rem;
}
.site-nav__link:hover {
background: var(--card);
border-color: var(--border);
}
.site-nav__link.is-active {
background: color-mix(in srgb, var(--accent) 12%, var(--bg));
border-color: color-mix(in srgb, var(--accent) 30%, var(--border));
}
.theme-toggle {
background: transparent;
border: 1px solid var(--border);
border-radius: 999px;
padding: .25rem .5rem;
color: var(--fg);
}