2026-10-20 TUE UTC 12:42 PM TPE 8:42 PM Auto-updates hourly 中文 EN
LIVE WIRE
← Back to the site changelog Site Changelog

Original commit record

Boxed centered layout: 1280px content sheet with side gutters The page chrome, home grid, and footer previously spanned the full viewport (inner containers capped at 1440px), which read as cramped on wide screens. The .page wrapper is now the single width authority: a centered 1280px sheet with hairline side borders and a soft shadow over a darker body gutter (color-mix keeps it theme-aware in dark mode). Home rails narrowed 280/320 -> 260/300 to give the center column room. Below 1100px the sheet goes edge-to-edge again. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

SHA
0f78821364783e21c35ddc00a926c6444d85bb9d
Commit date
Author
avwire
Committer
avwire

Changed files (4)

  • static/site.css modified · +13 / −5
  • templates/base.html modified · +2 / −2
  • templates/incidents.html modified · +1 / −1
  • templates/sources.html modified · +1 / −1

Full diff

@@ -2,7 +2,8 @@\n    plus classes replacing the design's inline styles where JS needs hooks. */\n \n /* — from the design's helmet <style> block — */\n-html, body { margin: 0; background: var(--color-bg); }\n+/* boxed layout: the page sheet is centered, the body shows a darker gutter */\n+html, body { margin: 0; background: color-mix(in srgb, var(--color-text) 12%, var(--color-bg)); }\n body, h1, h2, h3, h4, h5, h6, .btn, .card-title, .nav-brand {\n   font-family: "Archivo", "Noto Sans TC", system-ui, sans-serif;\n }\n@@ -32,7 +33,13 @@ a:hover { color: var(--color-accent-600); }\n @keyframes avwire-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }\n \n /* — chrome — */\n-.page { min-height: 100vh; background: var(--color-bg); color: var(--color-text); }\n+.page {\n+  min-height: 100vh; max-width: 1280px; margin: 0 auto;\n+  background: var(--color-bg); color: var(--color-text);\n+  border-left: 1px solid var(--color-divider);\n+  border-right: 1px solid var(--color-divider);\n+  box-shadow: 0 0 32px rgba(0, 0, 0, .08);\n+}\n .pulse-dot { width: 8px; height: 8px; background: var(--color-accent); animation: avwire-pulse 2s infinite; }\n .marquee-track { display: flex; width: max-content; animation: avwire-marquee 80s linear infinite; white-space: nowrap; }\n \n@@ -65,8 +72,8 @@ a.seg-btn.active:hover { color: var(--color-bg); }\n \n /* — home grid — */\n .home-grid {\n-  max-width: 1440px; margin: 0 auto; display: grid;\n-  grid-template-columns: 280px minmax(0, 1fr) 320px; align-items: stretch;\n+  display: grid;\n+  grid-template-columns: 260px minmax(0, 1fr) 300px; align-items: stretch;\n }\n .rail-left { border-right: 2px solid var(--color-divider); padding: 20px; }\n .center-col { padding: 20px 24px; min-width: 0; }\n@@ -107,13 +114,14 @@ a.flash-row:hover { color: inherit; }\n \n /* — footer — */\n .footer-grid {\n-  max-width: 1440px; margin: 0 auto; padding: 24px 20px 32px;\n+  padding: 24px 20px 32px;\n   display: grid; grid-template-columns: 1fr 1.3fr; gap: 32px;\n }\n \n /* — responsive fallback: the design is desktop-first; below 1100px the\n      three-column home grid simply stacks. — */\n @media (max-width: 1100px) {\n+  .page { border-left: 0; border-right: 0; box-shadow: none; }\n   .home-grid { grid-template-columns: minmax(0, 1fr); }\n   .rail-left { border-right: 0; border-bottom: 2px solid var(--color-divider); }\n   .rail-right { border-left: 0; border-top: 2px solid var(--color-divider); }\n@@ -23,7 +23,7 @@\n <body>\n <div class="page">\n   <div style="border-bottom:1px solid var(--color-divider);">\n-    <div style="max-width:1440px;margin:0 auto;padding:6px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;">\n+    <div style="padding:6px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;">\n       <span class="text-muted" style="letter-spacing:.06em;">{{ build.date }}</span>\n       <span id="clock-utc" style="font-weight:600;letter-spacing:.06em;">UTC {{ build.utc_hm }}</span>\n       <span id="clock-tpe" class="text-muted" style="letter-spacing:.06em;">TPE {{ build.tpe_hm }}</span>\n@@ -42,7 +42,7 @@\n     </div>\n   </div>\n   <div style="border-bottom:2px solid var(--color-divider);">\n-    <div style="max-width:1440px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:28px;">\n+    <div style="padding:14px 20px;display:flex;align-items:center;gap:28px;">\n       <a href="{{ home_url }}" style="display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;">\n         <div style="width:34px;height:34px;background:var(--color-accent);color:var(--color-bg);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;">AW</div>\n         <div>\n@@ -1,6 +1,6 @@\n {% extends "base.html" %}\n {% block content %}\n-  <div style="max-width:1440px;margin:0 auto;padding:28px 20px 64px;">\n+  <div style="padding:28px 20px 64px;">\n     <span class="card-kicker">{{ t.incKicker }}</span>\n     <h2 style="margin:8px 0 6px;">{{ t.incTitle }}</h2>\n     <p class="text-muted" style="font-size:14px;max-width:640px;">{{ t.incSub }}</p>\n@@ -1,6 +1,6 @@\n {% extends "base.html" %}\n {% block content %}\n-  <div style="max-width:1440px;margin:0 auto;padding:28px 20px 64px;">\n+  <div style="padding:28px 20px 64px;">\n     <span class="card-kicker">{{ t.srcKicker }}</span>\n     <h2 style="margin:8px 0 6px;">{{ t.srcTitle }}</h2>\n     <p class="text-muted" style="font-size:14px;max-width:640px;">{{ t.srcSub }}</p>

You found a secret theme!

8-bit mode is unlocked. Refresh to add it to your theme selector.