summaryrefslogtreecommitdiff
path: root/themes/magical/home.html
diff options
context:
space:
mode:
authorHimanshu Sardana <himanshusardana2005@gmail.com>2026-04-04 21:01:01 +0000
committerHimanshu Sardana <himanshusardana2005@gmail.com>2026-04-04 21:01:01 +0000
commitf32213675b7af3f706baf0257c3e4379799c926b (patch)
tree73704ba06b7c10274fcd687b0028e152fcdb37d9 /themes/magical/home.html
parent7a5c0d55c421f42bdcad32d42a0e84a6d932c852 (diff)
feat: add new theme "magical"
Diffstat (limited to 'themes/magical/home.html')
-rw-r--r--themes/magical/home.html352
1 files changed, 352 insertions, 0 deletions
diff --git a/themes/magical/home.html b/themes/magical/home.html
new file mode 100644
index 0000000..bb0e936
--- /dev/null
+++ b/themes/magical/home.html
@@ -0,0 +1,352 @@
+<!doctype html>
+<html lang="en">
+ <head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+ <title>{{ .SiteTitle }}</title>
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
+ <link
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap"
+ rel="stylesheet"
+ />
+ <style>
+ :root {
+ --bg: #fafafa;
+ --bg-elevated: #ffffff;
+ --text: #0a0a0a;
+ --text-secondary: #525252;
+ --text-muted: #737373;
+ --border: #e5e5e5;
+ --accent: #6366f1;
+ --accent-light: #e0e7ff;
+ --sans:
+ "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
+ --mono: "JetBrains Mono", "Fira Code", monospace;
+ --max-width: 720px;
+ --ease: cubic-bezier(0.16, 1, 0.3, 1);
+ }
+
+ *,
+ *::before,
+ *::after {
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+ }
+
+ html {
+ scroll-behavior: smooth;
+ }
+
+ body {
+ font-family: var(--sans);
+ background: var(--bg);
+ color: var(--text);
+ line-height: 1.6;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ min-height: 100vh;
+ }
+
+ /* ── Layout ── */
+ .page {
+ max-width: var(--max-width);
+ margin: 0 auto;
+ padding: 0 2rem;
+ }
+
+ /* ── Nav ── */
+ nav {
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+ padding: 2rem 0 0;
+ gap: 2rem;
+ }
+
+ nav a {
+ font-family: var(--mono);
+ font-size: 0.68rem;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ color: var(--text-muted);
+ text-decoration: none;
+ transition: color 120ms ease;
+ }
+
+ nav a:hover {
+ color: var(--text);
+ }
+
+ /* ── Hero ── */
+ .hero {
+ padding: 5rem 0 4rem;
+ border-bottom: 1px solid var(--border);
+ }
+
+ .hero-name {
+ font-size: clamp(2.2rem, 6vw, 3.5rem);
+ font-weight: 700;
+ line-height: 1.1;
+ letter-spacing: -0.03em;
+ margin-bottom: 1rem;
+ color: var(--text);
+ animation: fadeUp 0.6s var(--ease) both;
+ }
+
+ .hero-role {
+ font-family: var(--mono);
+ font-size: 0.7rem;
+ letter-spacing: 0.1em;
+ text-transform: uppercase;
+ color: var(--text-muted);
+ margin-bottom: 1.25rem;
+ animation: fadeUp 0.6s 0.08s var(--ease) both;
+ }
+
+ .hero-bio {
+ font-size: 1rem;
+ line-height: 1.7;
+ color: var(--text-secondary);
+ max-width: 480px;
+ animation: fadeUp 0.6s 0.15s var(--ease) both;
+ }
+
+ /* ── Writing Header ── */
+ .writing-header {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+ padding: 2.5rem 0 1.5rem;
+ }
+
+ .writing-label {
+ font-family: var(--mono);
+ font-size: 0.65rem;
+ letter-spacing: 0.12em;
+ text-transform: uppercase;
+ color: var(--text-muted);
+ white-space: nowrap;
+ }
+
+ .writing-rule {
+ flex: 1;
+ height: 1px;
+ background: var(--border);
+ }
+
+ /* ── Post List ── */
+ .post-list {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ }
+
+ .post-item {
+ display: flex;
+ align-items: baseline;
+ gap: 2rem;
+ padding: 1.25rem 0;
+ text-decoration: none;
+ color: inherit;
+ border-bottom: 1px solid var(--border);
+ transition: opacity 140ms ease;
+ animation: fadeUp 0.5s var(--ease) both;
+ }
+
+ .post-item:hover {
+ opacity: 0.6;
+ }
+
+ .post-date {
+ font-family: var(--mono);
+ font-size: 0.65rem;
+ letter-spacing: 0.05em;
+ color: var(--text-muted);
+ white-space: nowrap;
+ flex-shrink: 0;
+ padding-top: 0.15em;
+ min-width: 6rem;
+ }
+
+ .post-right {
+ flex: 1;
+ min-width: 0;
+ }
+
+ .post-title {
+ font-size: 1.1rem;
+ font-weight: 500;
+ color: var(--text);
+ line-height: 1.4;
+ display: block;
+ }
+
+ .post-tags {
+ display: flex;
+ gap: 0.35rem;
+ margin-top: 0.4rem;
+ flex-wrap: wrap;
+ }
+
+ .pill {
+ display: inline-block;
+ font-family: var(--mono);
+ font-size: 0.58rem;
+ letter-spacing: 0.06em;
+ text-transform: uppercase;
+ padding: 0.15rem 0.5rem;
+ background: transparent;
+ border: 1px solid var(--border);
+ border-radius: 100px;
+ color: var(--text-muted);
+ }
+
+ /* ── Empty State ── */
+ .empty {
+ font-family: var(--mono);
+ font-size: 0.75rem;
+ color: var(--text-muted);
+ letter-spacing: 0.06em;
+ padding: 2.5rem 0;
+ }
+
+ /* ── Footer ── */
+ footer {
+ padding: 2.5rem 0 3rem;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 0.8rem;
+ font-family: var(--mono);
+ font-size: 0.65rem;
+ letter-spacing: 0.05em;
+ color: var(--text-muted);
+ }
+
+ footer a {
+ color: inherit;
+ text-decoration: underline;
+ text-underline-offset: 3px;
+ text-decoration-color: var(--border);
+ transition: color 120ms ease;
+ }
+
+ footer a:hover {
+ color: var(--text);
+ }
+
+ /* ── Animations ── */
+ @keyframes fadeUp {
+ from {
+ opacity: 0;
+ transform: translateY(10px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+ }
+
+ .post-item:nth-child(1) {
+ animation-delay: 0.2s;
+ }
+ .post-item:nth-child(2) {
+ animation-delay: 0.27s;
+ }
+ .post-item:nth-child(3) {
+ animation-delay: 0.34s;
+ }
+ .post-item:nth-child(4) {
+ animation-delay: 0.41s;
+ }
+ .post-item:nth-child(5) {
+ animation-delay: 0.48s;
+ }
+ .post-item:nth-child(6) {
+ animation-delay: 0.55s;
+ }
+
+ /* ── Mobile ── */
+ @media (max-width: 500px) {
+ .page {
+ padding: 0 1.25rem;
+ }
+ .hero {
+ padding: 3.5rem 0 3rem;
+ }
+ .post-item {
+ flex-direction: column;
+ gap: 0.3rem;
+ }
+ .post-date {
+ min-width: unset;
+ }
+ footer {
+ flex-direction: column;
+ }
+ }
+
+ :focus-visible {
+ outline: 2px solid var(--accent);
+ outline-offset: 2px;
+ border-radius: 4px;
+ }
+ </style>
+ </head>
+ <body>
+ <div class="page">
+ <nav>
+ <a href="#">About</a>
+ <a href="#">Contact</a>
+ </nav>
+
+ <header class="hero">
+ <h1 class="hero-name">{{ .AuthorName }}</h1>
+ <p class="hero-role">{{ .AuthorRole }}</p>
+ <p class="hero-bio">{{ .AuthorBio }}</p>
+ </header>
+
+ <main>
+ <div class="writing-header">
+ <span class="writing-label">Writing</span>
+ <span class="writing-rule"></span>
+ </div>
+
+ {{ if .Posts }}
+ <ul class="post-list">
+ {{ range .Posts }}
+ <li>
+ <a class="post-item" href="/{{ .Slug }}/">
+ <span class="post-date">{{ .Date }}</span>
+ <span class="post-right">
+ <span class="post-title">{{ .Title }}</span>
+ {{ if .Tags }}
+ <span class="post-tags">
+ {{ range .Tags }}
+ <span class="pill">{{ . }}</span>
+ {{ end }}
+ </span>
+ {{ end }}
+ </span>
+ </a>
+ </li>
+ {{ end }}
+ </ul>
+ {{ else }}
+ <p class="empty">No posts yet.</p>
+ {{ end }}
+ </main>
+
+ <footer>
+ <span>&copy; {{ .Year }} {{ .AuthorName }}</span>
+ <span
+ >Built with
+ <a href="https://github.com/HimanshuSardana/kite">kite</a></span
+ >
+ </footer>
+ </div>
+ </body>
+</html>