Content lives in data/profile.yaml and is edited as structured fields through Sveltia at /admin/, so the page is never hand-written HTML. The CMS bundle is vendored at a pinned version instead of loaded from unpkg, and the admin assets ship with the built site, so hosting and builds stay self-contained. PKCE sign-in activates once a Gitea OAuth application client ID is added to static/admin/config.yml.
This commit is contained in:
commit
0341edc73d
30 files changed
+4181
No files matched your search
@@ -0,0 +1,167 @@
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
:root {
|
||||
color-scheme: light dark;
|
||||
--bg: #f5f6f8;
|
||||
--glow: radial-gradient(900px 480px at 50% -12%, #dfe7f5 0%, rgba(223, 231, 245, 0) 62%);
|
||||
--card: #ffffff;
|
||||
--fg: #111318;
|
||||
--muted: #5b6472;
|
||||
--border: #e2e6ed;
|
||||
--border-strong: #c9d0db;
|
||||
--hover: #f3f6fb;
|
||||
--accent: #2563eb;
|
||||
--shadow: 0 18px 40px -18px rgba(16, 24, 40, 0.18);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--bg: #0b0d11;
|
||||
--glow: radial-gradient(900px 480px at 50% -12%, #16202f 0%, rgba(22, 32, 47, 0) 62%);
|
||||
--card: #11141a;
|
||||
--fg: #e9ecf1;
|
||||
--muted: #98a1ae;
|
||||
--border: #232936;
|
||||
--border-strong: #384152;
|
||||
--hover: #171c26;
|
||||
--accent: #6f9bff;
|
||||
--shadow: 0 18px 40px -18px rgba(0, 0, 0, 0.55);
|
||||
}
|
||||
}
|
||||
|
||||
html {
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
min-height: 100dvh;
|
||||
display: grid;
|
||||
place-items: center;
|
||||
padding: 32px 20px;
|
||||
background: var(--glow), var(--bg);
|
||||
color: var(--fg);
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
line-height: 1.5;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 100%;
|
||||
max-width: 540px;
|
||||
padding: 44px 36px 32px;
|
||||
background: var(--card);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 22px;
|
||||
box-shadow: var(--shadow);
|
||||
}
|
||||
|
||||
.identity {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 88px;
|
||||
height: 88px;
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
display: inline-block;
|
||||
border: 1px solid var(--border-strong);
|
||||
box-shadow: 0 4px 14px -6px rgba(16, 24, 40, 0.3);
|
||||
}
|
||||
|
||||
.avatar--fallback {
|
||||
display: inline-grid;
|
||||
place-items: center;
|
||||
font-size: 1.6rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.04em;
|
||||
color: #ffffff;
|
||||
background: linear-gradient(145deg, #3b5bdb, #1f3a8a);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 18px 0 0;
|
||||
font-size: clamp(1.35rem, 1.1rem + 1vw, 1.6rem);
|
||||
font-weight: 650;
|
||||
letter-spacing: -0.015em;
|
||||
}
|
||||
|
||||
.tagline {
|
||||
margin: 8px auto 0;
|
||||
max-width: 42ch;
|
||||
color: var(--muted);
|
||||
font-size: 0.95rem;
|
||||
text-wrap: balance;
|
||||
}
|
||||
|
||||
.links {
|
||||
display: grid;
|
||||
gap: 10px;
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 10px;
|
||||
padding: 14px 18px;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 14px;
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 550;
|
||||
transition: background-color 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
|
||||
}
|
||||
|
||||
.link:hover {
|
||||
background: var(--hover);
|
||||
border-color: var(--border-strong);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.link:active {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.link:focus-visible {
|
||||
outline: 2px solid var(--accent);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.link__icon {
|
||||
display: inline-flex;
|
||||
flex: none;
|
||||
}
|
||||
|
||||
.link__icon svg {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.footer {
|
||||
margin-top: 30px;
|
||||
text-align: center;
|
||||
color: var(--muted);
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.link {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.card {
|
||||
padding: 34px 20px 26px;
|
||||
border-radius: 18px;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user