at e1dfdc3
/* Abbaye shared stylesheet — used by the release pages and git repository UI. */ :root { --bg: #f5efe4; --bg-content: #fdfaf5; --bg-alt: #ede5d8; --header-bg: #3d5732; --header-fg: #f0e8d8; --header-link: #c8bbaa; --border: #c9baa8; --text: #2e2416; --text-muted: #7a6855; --link: #7a4429; --link-hover: #a05a3a; --accent: #a06020; --pre-bg: #eae2d4; --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: var(--font-sans); background: var(--bg); color: var(--text); line-height: 1.6; } /* ── Header ─────────────────────────────────────────────────────── */ header { background: var(--header-bg); color: var(--header-fg); padding: 0.75rem 1.5rem; display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; } header .site-title { font-weight: 700; font-size: 1rem; color: var(--header-fg); text-decoration: none; } header a { color: var(--header-link); text-decoration: none; font-size: 0.9rem; } header a:hover { text-decoration: underline; color: var(--header-fg); } header nav { display: flex; gap: 1rem; margin-left: auto; } header nav a { color: var(--header-link); font-size: 0.85rem; padding: 0.2rem 0.5rem; border-radius: 3px; } header nav a:hover { background: rgba(255, 255, 255, 0.1); color: var(--header-fg); } header nav a.active { color: var(--header-fg); font-weight: 600; } /* ── Layout ─────────────────────────────────────────────────────── */ main { max-width: 960px; margin: 2rem auto; padding: 0 1.5rem; } /* ── Tables ─────────────────────────────────────────────────────── */ table { width: 100%; border-collapse: collapse; font-size: 0.9rem; } thead th { text-align: left; padding: 0.5rem 0.75rem; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-muted); border-bottom: 2px solid var(--border); } tbody tr { border-bottom: 1px solid var(--border); } tbody tr:last-child { border-bottom: none; } tbody tr:hover { background: var(--bg-alt); } tbody td { padding: 0.6rem 0.75rem; vertical-align: middle; } /* ── Monospace hash badges ───────────────────────────────────────── */ .hash { font-family: var(--font-mono); font-size: 0.75rem; background: var(--pre-bg); border: 1px solid var(--border); padding: 0.15em 0.5em; border-radius: 3px; color: var(--text); text-decoration: none; white-space: nowrap; } a.hash:hover { border-color: var(--link); color: var(--link); } /* ── Status badges ───────────────────────────────────────────────── */ .badge { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; padding: 0.2em 0.6em; border-radius: 999px; white-space: nowrap; } .badge-added { background: #d4f0d4; color: #2a6a2a; } .badge-deleted { background: #f0d4d4; color: #6a2a2a; } .badge-modified { background: #f0e8d4; color: #6a4a2a; } .badge-renamed { background: #d4dff0; color: #2a3a6a; } .badge-copied { background: #e8d4f0; color: #4a2a6a; } .badge-changed { background: var(--pre-bg); color: var(--text-muted); } /* ── Clone instruction box ───────────────────────────────────────── */ .clone-box { background: var(--bg-alt); border: 1px solid var(--border); border-radius: 5px; padding: 0.75rem 1rem; margin-bottom: 1.5rem; display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; } .clone-label { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--text-muted); flex-shrink: 0; } .clone-url { font-family: var(--font-mono); font-size: 0.8rem; color: var(--text); flex: 1; overflow-x: auto; } /* ── Section headings ────────────────────────────────────────────── */ .section-heading { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--text-muted); margin-bottom: 0.75rem; margin-top: 2rem; padding-bottom: 0.35rem; border-bottom: 1px solid var(--border); } .section-heading:first-child { margin-top: 0; } /* ── Commit detail ───────────────────────────────────────────────── */ .commit-meta { background: var(--bg-content); border: 1px solid var(--border); border-radius: 5px; padding: 1rem 1.25rem; margin-bottom: 1.5rem; font-size: 0.875rem; } .commit-meta dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.3rem 1rem; } .commit-meta dt { color: var(--text-muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; display: flex; align-items: center; } .hash-full { font-family: var(--font-mono); font-size: 0.75rem; word-break: break-all; } .commit-message { background: var(--pre-bg); border: 1px solid var(--border); border-radius: 5px; padding: 1rem 1.25rem; font-family: var(--font-mono); font-size: 0.82rem; white-space: pre-wrap; word-break: break-word; margin-bottom: 1.5rem; } /* ── Changed-files list ──────────────────────────────────────────── */ .files-list { list-style: none; display: flex; flex-direction: column; gap: 0.4rem; } .files-list li { border: 1px solid var(--border); border-radius: 4px; overflow: hidden; } .files-list details > summary { display: flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0.6rem; cursor: pointer; list-style: none; background: var(--bg-content); user-select: none; } .files-list details > summary::-webkit-details-marker { display: none; } .files-list details[open] > summary { border-bottom: 1px solid var(--border); } .files-list details > summary:hover { background: var(--bg-alt); } .file-path { font-family: var(--font-mono); font-size: 0.82rem; flex: 1; } /* ── Diff table ───────────────────────────────────────────────────── */ .diff-table { width: 100%; border-collapse: collapse; font-family: var(--font-mono); font-size: 0.78rem; line-height: 1.45; } .diff-cell { padding: 0 0.75em; white-space: pre; overflow-x: visible; } /* Suppress the default table styles from site.css */ .diff-table thead th, .diff-table tbody tr { border-bottom: none; } .diff-table tbody tr:hover { background: inherit; } .diff-table tbody tr:last-child { border-bottom: none; } tr.diff-header td { color: var(--text-muted); } tr.diff-hunk td { background: #eef2ff; color: #2a3a7a; } tr.diff-added td { background: #e8f8e8; color: #1a4a1a; } tr.diff-removed td { background: #fce8e8; color: #5a1818; } tr.diff-context td { color: var(--text); } /* ── Ref badges (commit log) ────────────────────────────────────────────── */ .commit-hash-cell { white-space: nowrap; } .ref-badge { display: inline-block; font-size: 0.62rem; font-weight: 600; padding: 0.15em 0.45em; border-radius: 3px; border: 1px solid; white-space: nowrap; vertical-align: middle; margin-left: 0.35em; text-decoration: none; line-height: 1.4; } .ref-badge-tag { background: #e8f4e8; color: #2d6a2d; border-color: #a8ccaa; } .ref-badge-branch { background: #e8eef8; color: #2a3a6a; border-color: #a8b8d8; } /* ── Branch switcher (log page nav) ─────────────────────────────────────── */ .branch-switcher { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 1.25rem; } .branch-switcher a { font-size: 0.8rem; padding: 0.25rem 0.75rem; border: 1px solid var(--border); border-radius: 999px; background: var(--bg-content); color: var(--link); text-decoration: none; } .branch-switcher a:hover { border-color: var(--link); background: var(--bg-alt); color: var(--link-hover); } .branch-switcher a.active { background: var(--header-bg); color: var(--header-fg); border-color: var(--header-bg); } /* ── Ref colours ─────────────────────────────────────────────────────────── */ .ref-kind-tag { color: var(--accent); } .ref-kind-branch { color: #336699; } /* ── Links ───────────────────────────────────────────────────────── */ a { color: var(--link); } a:hover { color: var(--link-hover); } /* ── Responsive ──────────────────────────────────────────────────── */ @media (max-width: 640px) { main { padding: 0 1rem; margin: 1rem auto; } .commit-meta dl { grid-template-columns: 1fr; } .clone-box { flex-direction: column; align-items: flex-start; } } /* ════════════════════════════════════════════════════════════════════ Root index (versions list) page ════════════════════════════════════════════════════════════════════ */ header h1 { font-size: 1.75rem; font-weight: 700; letter-spacing: 0.01em; } /* Atom/RSS feed link shown in the header */ .feed-link { display: flex; align-items: center; gap: 0.4em; color: var(--header-link); text-decoration: none; font-size: 0.85rem; opacity: 0.8; margin-left: auto; } .feed-link:hover { opacity: 1; text-decoration: underline; } .feed-icon { display: inline-block; width: 1em; height: 1em; flex-shrink: 0; background: #f96b15; border-radius: 2px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='3' cy='13' r='2' fill='white'/%3E%3Cpath d='M3 6.5A6.5 6.5 0 0 1 9.5 13' stroke='white' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3Cpath d='M3 2A11 11 0 0 1 14 13' stroke='white' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 80%; } /* Versions list main area */ .versions-main { max-width: 760px; margin: 2.5rem auto; padding: 0 1.5rem; } .versions-list { list-style: none; } .versions-list li { display: flex; align-items: center; gap: 0.75rem; padding: 0.75rem 1rem; background: var(--bg-content); border: 1px solid var(--border); border-radius: 5px; margin-bottom: 0.5rem; } .versions-list li:hover { border-color: var(--accent); } a.version-link { font-size: 1.05rem; font-weight: 500; color: var(--link); text-decoration: none; } a.version-link:hover { text-decoration: underline; color: var(--link-hover); } .badge-latest { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.07em; background: var(--accent); color: #fdf6ec; padding: 0.2em 0.6em; border-radius: 999px; } .badge-latest a { color: inherit; text-decoration: none; } .badge-latest a:hover { text-decoration: underline; } .version-date { margin-left: auto; font-size: 0.8rem; color: var(--text-muted); font-variant-numeric: tabular-nums; } .repo-browse-link { margin-top: 0.75rem; font-size: 0.9rem; } /* ════════════════════════════════════════════════════════════════════ Version release page ════════════════════════════════════════════════════════════════════ */ header .title { font-weight: 600; font-size: 1rem; } .release-layout { display: flex; min-height: calc(100vh - 44px); } aside { width: 230px; flex-shrink: 0; background: var(--bg-alt); border-right: 1px solid var(--border); padding: 1.5rem 1rem; font-size: 0.875rem; } aside h3 { font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--text-muted); margin-top: 1.5rem; margin-bottom: 0.5rem; } aside h3:first-child { margin-top: 0; } aside ul { list-style: none; } aside li { padding: 0.25rem 0; } aside a { color: var(--link); text-decoration: none; } aside a:hover { text-decoration: underline; color: var(--link-hover); } .release-content { flex: 1; padding: 2rem 2.5rem; max-width: 860px; overflow-x: hidden; background: var(--bg-content); margin: 0; /* override the generic main centering */ } /* Markdown typography inside the release content pane */ .release-content h1, .release-content h2, .release-content h3, .release-content h4, .release-content h5, .release-content h6 { margin-top: 1.5em; margin-bottom: 0.5em; line-height: 1.3; color: var(--text); } .release-content h1 { font-size: 1.9rem; border-bottom: 2px solid var(--border); padding-bottom: 0.4rem; } .release-content h2 { font-size: 1.4rem; border-bottom: 1px solid #ddd4c4; padding-bottom: 0.3rem; } .release-content h3 { font-size: 1.15rem; } .release-content p { margin-bottom: 1em; } .release-content a { color: var(--link); } .release-content a:hover { color: var(--link-hover); } .release-content img { max-width: 100%; height: auto; } .release-content pre { background: var(--pre-bg); border: 1px solid var(--border); border-radius: 5px; padding: 1em 1.25em; overflow-x: auto; margin-bottom: 1em; font-size: 0.875em; } .release-content code { font-family: var(--font-mono); background: var(--pre-bg); padding: 0.15em 0.4em; border-radius: 3px; font-size: 0.875em; } .release-content pre code { background: none; padding: 0; font-size: inherit; } .release-content ul, .release-content ol { padding-left: 1.5em; margin-bottom: 1em; } .release-content li { margin-bottom: 0.2em; } .release-content table { border-collapse: collapse; margin-bottom: 1em; width: 100%; } .release-content th, .release-content td { border: 1px solid var(--border); padding: 0.4em 0.75em; text-align: left; } .release-content th { background: var(--bg-alt); font-weight: 600; } .release-content blockquote { border-left: 4px solid var(--border); padding: 0.5em 1em; margin: 0 0 1em; color: var(--text-muted); font-style: italic; } /* Dist file metadata in the sidebar */ .dist-meta { font-size: 0.75rem; color: var(--text-muted); margin-top: 0.15rem; word-break: break-all; } .dist-meta code { font-family: var(--font-mono); font-size: 0.7rem; } /* Changelog section divider and heading */ .changelog-divider { border: none; border-top: 2px solid var(--border); margin: 2.5rem 0; } .changelog-heading { font-size: 1.3rem; font-weight: 600; color: #5a4030; margin-bottom: 1rem; } @media (max-width: 640px) { .release-layout { flex-direction: column; } aside { width: 100%; border-right: none; border-bottom: 1px solid var(--border); } .release-content { padding: 1.5rem 1rem; } } /* ════════════════════════════════════════════════════════════════════ Tree browser (directory listings and file views) ════════════════════════════════════════════════════════════════════ */ /* ── Breadcrumb ───────────────────────────────────────────────────── */ .breadcrumb { font-size: 0.85rem; color: var(--text-muted); margin-bottom: 1rem; display: flex; align-items: center; flex-wrap: wrap; gap: 0.2em; } .breadcrumb a { color: var(--link); text-decoration: none; } .breadcrumb a:hover { text-decoration: underline; } .breadcrumb-sep { color: var(--border); margin: 0 0.1em; user-select: none; } /* ── Revision note ────────────────────────────────────────────────── */ .tree-rev { font-size: 0.8rem; color: var(--text-muted); margin-top: 0.5rem; } /* ── Directory listing table ──────────────────────────────────────── */ .tree-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; } /* Suppress default table styles */ .tree-table thead th, .tree-table tbody tr { border-bottom: 1px solid var(--border); } .tree-table tbody tr:last-child { border-bottom: none; } .tree-table tbody tr:hover { background: var(--bg-alt); } .tree-mode { width: 1.5rem; padding: 0.45rem 0.5rem 0.45rem 0.75rem; color: var(--text-muted); font-size: 0.75rem; } /* Unicode icon via ::before, no JS needed */ .tree-mode-tree::before { content: "📁"; } .tree-mode-blob::before { content: "📄"; } .tree-table td:last-child { padding: 0.45rem 0.75rem; } a.tree-entry-tree { color: var(--link); font-weight: 500; text-decoration: none; } a.tree-entry-tree:hover { text-decoration: underline; } a.tree-entry-blob { color: var(--text); text-decoration: none; } a.tree-entry-blob:hover { color: var(--link); text-decoration: underline; } /* ── Blob (file content) ──────────────────────────────────────────── */ .blob-notice { font-size: 0.875rem; color: var(--text-muted); padding: 1.5rem 0; } .blob-content { overflow-x: auto; border: 1px solid var(--border); border-radius: 4px; font-size: 0.78rem; line-height: 1.5; } /* Override syntect's inline background-color on <pre> */ .blob-content pre { background-color: var(--pre-bg) !important; margin: 0 !important; padding: 0.75em 1em !important; border-radius: 0; font-family: var(--font-mono); overflow-x: auto; }