Compare commits

...

2 Commits

Author SHA1 Message Date
ec250edbbf Merge pull request 'LAND-2: Redesign website overhaul' (#1) from redesign/fedora-inspired into main
Reviewed-on: #1
2026-07-16 17:35:23 -05:00
Blake Ridgway
f343ced979 LAND-2: Redesign website overhaul 2026-07-16 17:34:03 -05:00
4 changed files with 976 additions and 451 deletions

File diff suppressed because it is too large Load Diff

61
static/js/theme-toggle.js Normal file
View File

@@ -0,0 +1,61 @@
// ── Theme Toggle ──
// Dark mode is the default. No data-theme attribute means dark mode.
// Light mode is [data-theme="light"].
(function () {
const STORAGE_KEY = "arcline-theme";
const LIGHT = "light";
const DARK = "dark";
function applyTheme(theme) {
if (theme === LIGHT) {
document.documentElement.setAttribute("data-theme", LIGHT);
} else {
document.documentElement.removeAttribute("data-theme");
}
}
// Read saved preference, default to dark
function getSavedTheme() {
try {
const stored = localStorage.getItem(STORAGE_KEY);
if (stored === LIGHT || stored === DARK) return stored;
} catch (_) {
// localStorage unavailable — ignore
}
return DARK;
}
function saveTheme(theme) {
try {
localStorage.setItem(STORAGE_KEY, theme);
} catch (_) {
// localStorage unavailable — ignore
}
}
// Apply the saved theme immediately (before page render)
const current = getSavedTheme();
applyTheme(current);
// Wire up toggle button(s) once the DOM is ready
function initToggle() {
const buttons = document.querySelectorAll("[data-theme-toggle]");
buttons.forEach(function (btn) {
btn.addEventListener("click", function () {
const next = document.documentElement.hasAttribute("data-theme")
? DARK
: LIGHT;
applyTheme(next);
saveTheme(next);
});
});
}
if (document.readyState === "loading") {
document.addEventListener("DOMContentLoaded", initToggle);
} else {
initToggle();
}
})();

View File

@@ -11,6 +11,7 @@
<link href="https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400..700&amp;family=JetBrains+Mono:ital,wght@0,400..700;1,400..700&amp;display=swap" rel="stylesheet">
<link rel="stylesheet" href="/static/css/style.css">
<script src="/static/js/htmx.min.js"></script>
<script src="/static/js/theme-toggle.js"></script>
</head>
<body>
{{template "content" .}}

View File

@@ -1,4 +1,6 @@
{{define "content"}}
<a href="#main" class="skip-link">Skip to main content</a>
<header class="nav">
<div class="nav-inner">
<a href="/" class="logo">
@@ -10,15 +12,39 @@
<span>Arcline Project</span>
</a>
<nav>
<a href="#editions">Editions</a>
<a href="#about">About</a>
<a href="#toolchain">Toolchain</a>
<a href="#contribute">Contribute</a>
<a href="#get-started">Get Started</a>
<button
type="button"
data-theme-toggle
class="theme-toggle"
aria-label="Toggle theme"
title="Toggle light / dark mode"
>
<svg class="theme-icon theme-icon-light" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="5"/>
<line x1="12" y1="1" x2="12" y2="3"/>
<line x1="12" y1="21" x2="12" y2="23"/>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/>
<line x1="1" y1="12" x2="3" y2="12"/>
<line x1="21" y1="12" x2="23" y2="12"/>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/>
</svg>
<svg class="theme-icon theme-icon-dark" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/>
</svg>
</button>
<a href="#get-started" class="nav-cta">Get Started</a>
</nav>
</div>
</header>
<main>
<main id="main">
<!-- Hero -->
<section class="hero">
<div class="hero-inner">
@@ -37,10 +63,71 @@
</div>
</section>
<!-- Editions -->
<section id="editions" class="section">
<div class="section-inner">
<div class="section-label">Editions</div>
<h2>Our flagship Arcline OS variants<br>for different use cases.</h2>
<p class="section-desc">
Pick the edition that matches your workload. All share the same
hardened Debian base and zero-telemetry guarantee.
</p>
<div class="editions-grid">
<div class="edition-card">
<div class="edition-icon">
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="2" width="20" height="20" rx="3"/>
<rect x="6" y="6" width="12" height="12" rx="1.5"/>
</svg>
</div>
<h3>Arcline Server</h3>
<p>A hardened, production-ready server OS with built-in observability and zero telemetry. Run applications on bare metal or the cloud.</p>
<div class="card-actions">
<a href="#get-started" class="card-btn card-btn-primary">Get Access</a>
<a href="#about" class="card-btn card-btn-secondary">Learn More</a>
</div>
</div>
<div class="edition-card">
<div class="edition-icon">
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="2" y="3" width="20" height="14" rx="2"/>
<path d="M8 21h8"/>
<path d="M12 17v4"/>
</svg>
</div>
<h3>Arcline Workstation</h3>
<p>Same hardened base, with a lightweight KDE Plasma desktop, pre-configured dev toolchains, and privacy-hardened browser profiles.</p>
<div class="card-actions">
<a href="#get-started" class="card-btn card-btn-primary">Get Access</a>
<a href="#about" class="card-btn card-btn-secondary">Coming Soon</a>
</div>
</div>
<div class="edition-card">
<div class="edition-icon">
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="10"/>
<path d="M2 12h20"/>
<path d="M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10"/>
<path d="M12 2a15.3 15.3 0 00-4 10 15.3 15.3 0 004 10"/>
</svg>
</div>
<h3>Arcline Cloud</h3>
<p>Minimal base images optimized for cloud infrastructures. Ready for AWS, GCP, Azure, or your own private cloud.</p>
<div class="card-actions">
<a href="#get-started" class="card-btn card-btn-primary">Get Access</a>
<a href="#about" class="card-btn card-btn-secondary">Learn More</a>
</div>
</div>
</div>
</div>
</section>
<!-- What is Arcline OS -->
<section id="about" class="section section-alt">
<div class="section-inner">
<div class="section-label">what is arcline os?</div>
<div class="section-label">What is Arcline OS?</div>
<h2>A Debian-derived OS that doesn't<br>make you start from scratch.</h2>
<p class="section-desc">
Debian gives you a rock-solid base. Arcline OS hardens it, layers on a
@@ -132,7 +219,7 @@
<!-- What's Included -->
<section class="section">
<div class="section-inner">
<div class="section-label">what's included</div>
<div class="section-label">What's Included</div>
<h2>Production-ready from first boot.</h2>
<p class="section-desc">
Arcline OS layers pre-configured infrastructure tooling on top of a hardened
@@ -179,21 +266,13 @@
</ul>
</div>
</div>
<div class="edition-teaser">
<div class="edition-teaser-badge">// arcline workstation — in development</div>
<p>
<strong>Arcline Workstation</strong> — same hardened base, with a lightweight KDE Plasma desktop,
pre-configured dev toolchains, and privacy-hardened browser profiles.
One ISO. Two targets. Pick yours at install time.
</p>
</div>
</div>
</section>
<!-- Toolchain deep-dive -->
<section id="toolchain" class="section section-alt">
<div class="section-inner">
<div class="section-label">the toolchain</div>
<div class="section-label">The Toolchain</div>
<h2>11 Go tools. Built in production.<br>Yours to use.</h2>
<p class="section-desc">
Every Arcline tool was built to solve real infrastructure problems.
@@ -251,7 +330,7 @@
<!-- Why Arcline OS -->
<section class="section">
<div class="section-inner">
<div class="section-label">why arcline os?</div>
<div class="section-label">Why Arcline OS?</div>
<h2>No major Linux distro ships<br>pre-hardened for production.</h2>
<p class="section-desc">
Debian gives you the packages. Arcline OS assembles them into a finished
@@ -283,7 +362,7 @@
<!-- Contribute -->
<section id="contribute" class="section section-alt">
<div class="section-inner">
<div class="section-label">community</div>
<div class="section-label">Community</div>
<h2>Built in the open. Shaped by the<br>people who use it.</h2>
<p class="section-desc">
Arcline OS is open-source under the GPL. The code lives on
@@ -329,7 +408,7 @@
<!-- Get Started -->
<section id="get-started" class="section">
<div class="section-inner">
<div class="section-label">get started</div>
<div class="section-label">Get Started</div>
<h2>Arcline OS is in active development.<br>Be there at the start.</h2>
<p class="section-desc">
We're packaging the tools, building the ISO pipeline, and hardening the defaults.
@@ -369,7 +448,7 @@
<!-- Sponsor -->
<section class="section section-alt sponsor-section">
<div class="section-inner">
<div class="section-label">sponsored by</div>
<div class="section-label">Sponsored By</div>
<div class="sponsor-content">
<div class="sponsor-desc">
<p>The Arcline Project is funded and operated by <strong>Arcline IT LLC</strong> — the same model as Red Hat and Fedora. The commercial services business at <a href="https://arcline.it" class="inline-link">arcline.it</a> keeps the lights on so the OS stays independent and sustainable.</p>
@@ -378,17 +457,38 @@
</div>
</div>
</section>
</main>
<footer class="footer">
<div class="footer-inner">
<div class="footer-brand">
<div class="footer-grid">
<div class="footer-col">
<a href="/" class="footer-logo">Arcline Project</a>
<p>An open-source OS for people who run infrastructure.</p>
<p>An open-source operating system for people who run infrastructure. Hardened Debian base. Zero telemetry. Production-ready.</p>
</div>
<div class="footer-links">
<a href="https://arcline.it">Arcline IT</a>
<a href="https://git.arcline.it">Git</a>
<div class="footer-col">
<h4>Editions</h4>
<ul>
<li><a href="#editions">Server</a></li>
<li><a href="#editions">Workstation</a></li>
<li><a href="#editions">Cloud</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Project</h4>
<ul>
<li><a href="#about">About</a></li>
<li><a href="#toolchain">Toolchain</a></li>
<li><a href="#contribute">Contribute</a></li>
<li><a href="https://git.arcline.it">Source Code</a></li>
</ul>
</div>
<div class="footer-col">
<h4>Connect</h4>
<ul>
<li><a href="https://arcline.it">Arcline IT</a></li>
<li><a href="https://git.arcline.it">Git</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">