Replace the brand mark with the grid-cell logo everywhere (#199)
Swaps the stepped-path mark for the "C1 v2" design: an 8x8 grid of graded day-cells tracing the same climb (blue Low -> green Normal -> a hot loop -> a stepped ascent to the near-record red cell). It keeps the exact geometry of the old mark — same 512 viewBox, same 32/448/rx96 rounded badge, same band palette — so it is a drop-in that needs no alignment changes. Everywhere the mark appears: - The inline header SVG in all six lockups (the five standalone frontend pages and backend/templates/base.html.j2), kept at width/height 28 with aria-hidden. Because the box and viewBox are unchanged, the .logo/.brand alignment CSS (the -2px cap-height nudge, the 28->22px compact size, the 10px gap) is untouched and the mark stays centred on the "Thermograph" wordmark. - favicon.svg, regenerated from the new art. - Every raster: favicon-16/32/48, apple-touch-icon (180), logo-192, logo (512), and the two maskable icons. The maskable pair keeps the established recipe — the badge scaled into the central safe zone on a full-bleed opaque square — so an OS shape mask never clips the art. Bumps every icon reference to ?v=3 (previously a mix of ?v=2 and unversioned) so browsers and installed PWAs refetch the new icons. Claude-Session: https://claude.ai/code/session_013dRZmX9D3JEntfMKWMTWZ8
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 9.7 KiB |
|
|
@ -14,17 +14,17 @@
|
||||||
<meta property="og:title" content="Thermograph — 2-year calendar" />
|
<meta property="og:title" content="Thermograph — 2-year calendar" />
|
||||||
<meta property="og:description" content="A two-year calendar of daily weather grades for any location — see at a glance which days were unusually hot, cold, wet, or normal versus ~45 years of local climate history." />
|
<meta property="og:description" content="A two-year calendar of daily weather grades for any location — see at a glance which days were unusually hot, cold, wet, or normal versus ~45 years of local climate history." />
|
||||||
<meta property="og:url" content="__ORIGIN__/calendar" />
|
<meta property="og:url" content="__ORIGIN__/calendar" />
|
||||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
<meta property="og:image" content="__ORIGIN__/logo.png?v=3" />
|
||||||
<meta property="og:image:width" content="512" />
|
<meta property="og:image:width" content="512" />
|
||||||
<meta property="og:image:height" content="512" />
|
<meta property="og:image:height" content="512" />
|
||||||
<meta property="og:image:alt" content="Thermograph logo" />
|
<meta property="og:image:alt" content="Thermograph logo" />
|
||||||
<meta name="twitter:card" content="summary" />
|
<meta name="twitter:card" content="summary" />
|
||||||
<link rel="canonical" href="__ORIGIN__/calendar" />
|
<link rel="canonical" href="__ORIGIN__/calendar" />
|
||||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
<link rel="icon" href="favicon.svg?v=3" type="image/svg+xml" />
|
||||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
<link rel="icon" href="favicon-48.png?v=3" type="image/png" sizes="48x48" />
|
||||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
<link rel="icon" href="favicon-32.png?v=3" type="image/png" sizes="32x32" />
|
||||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
<link rel="icon" href="favicon-16.png?v=3" type="image/png" sizes="16x16" />
|
||||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
<link rel="apple-touch-icon" href="apple-touch-icon.png?v=3" />
|
||||||
<link rel="manifest" href="manifest.webmanifest" />
|
<link rel="manifest" href="manifest.webmanifest" />
|
||||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
<header class="compact">
|
<header class="compact">
|
||||||
<div class="brand">
|
<div class="brand">
|
||||||
<div>
|
<div>
|
||||||
<h1><a href="./"><span class="logo"><svg viewBox="0 0 512 512" width="28" height="28" aria-hidden="true"><rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#fff" stroke-opacity=".08" stroke-width="4"/><rect x="64" y="170" width="384" height="48" rx="8" fill="#27131C"/><rect x="64" y="222" width="384" height="48" rx="8" fill="#38322E"/><rect x="64" y="274" width="384" height="48" rx="8" fill="#1A2D27"/><rect x="64" y="326" width="384" height="48" rx="8" fill="#26333F"/><rect x="64" y="378" width="384" height="48" rx="8" fill="#18293A"/><line x1="64" y1="132" x2="448" y2="132" stroke="#46586E" stroke-width="8" stroke-dasharray="26 20"/><path d="M64 410H126V386H160" fill="none" stroke="var(--cold)" stroke-width="34"/><path d="M160 403V352H244V368H282" fill="none" stroke="var(--cool)" stroke-width="34"/><path d="M282 385V320H312" fill="none" stroke="var(--normal)" stroke-width="34"/><path d="M312 337V248H338" fill="none" stroke="var(--warm)" stroke-width="34"/><path d="M338 265V196H366" fill="none" stroke="var(--hot)" stroke-width="34"/><path d="M366 213V132H396" fill="none" stroke="var(--very-hot)" stroke-width="34"/><rect x="382" y="100" width="64" height="64" rx="12" fill="var(--rec-hot)" stroke="#10141B" stroke-width="12"/></svg></span>Thermograph</a></h1>
|
<h1><a href="./"><span class="logo"><svg viewBox="0 0 512 512" width="28" height="28" aria-hidden="true"><rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#FFFFFF" stroke-opacity="0.08" stroke-width="4"/><rect x="115" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="163" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="211" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="259" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="307" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="355" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="403" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="163" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="211" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="259" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="307" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="355" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="403" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="67" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="163" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="211" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="259" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="307" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="355" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="403" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="67" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="211" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="403" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="67" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="115" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="211" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="307" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="67" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="115" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="307" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="355" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="67" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="115" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="163" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="211" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="259" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="307" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="355" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="67" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="115" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="163" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="211" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="259" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="307" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="355" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="67" y="403" width="42" height="42" rx="10" fill="#2166ac"/><rect x="67" y="355" width="42" height="42" rx="10" fill="#4393c3"/><rect x="115" y="355" width="42" height="42" rx="10" fill="#4393c3"/><rect x="115" y="307" width="42" height="42" rx="10" fill="#92c5de"/><rect x="115" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="163" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="163" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="163" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="211" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="259" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="259" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="259" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="307" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="355" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="355" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="403" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="403" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="403" y="115" width="42" height="42" rx="10" fill="#dd6b52"/><rect x="403" y="67" width="42" height="42" rx="10" fill="#8f0e20"/></svg></span>Thermograph</a></h1>
|
||||||
</div>
|
</div>
|
||||||
<details class="nav-menu">
|
<details class="nav-menu">
|
||||||
<summary class="nav-toggle" aria-label="Menu"><svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 7h16M4 12h16M4 17h16"/></svg></summary>
|
<summary class="nav-toggle" aria-label="Menu"><svg viewBox="0 0 24 24" width="22" height="22" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 7h16M4 12h16M4 17h16"/></svg></summary>
|
||||||
|
|
|
||||||
|
|
@ -14,17 +14,17 @@
|
||||||
<meta property="og:title" content="Thermograph — compare comfort" />
|
<meta property="og:title" content="Thermograph — compare comfort" />
|
||||||
<meta property="og:description" content="Compare how well two or more places hit your comfort temperature over any date range, side by side, each graded against its own ~45-year climate history." />
|
<meta property="og:description" content="Compare how well two or more places hit your comfort temperature over any date range, side by side, each graded against its own ~45-year climate history." />
|
||||||
<meta property="og:url" content="__ORIGIN__/compare" />
|
<meta property="og:url" content="__ORIGIN__/compare" />
|
||||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
<meta property="og:image" content="__ORIGIN__/logo.png?v=3" />
|
||||||
<meta property="og:image:width" content="512" />
|
<meta property="og:image:width" content="512" />
|
||||||
<meta property="og:image:height" content="512" />
|
<meta property="og:image:height" content="512" />
|
||||||
<meta property="og:image:alt" content="Thermograph logo" />
|
<meta property="og:image:alt" content="Thermograph logo" />
|
||||||
<meta name="twitter:card" content="summary" />
|
<meta name="twitter:card" content="summary" />
|
||||||
<link rel="canonical" href="__ORIGIN__/compare" />
|
<link rel="canonical" href="__ORIGIN__/compare" />
|
||||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
<link rel="icon" href="favicon.svg?v=3" type="image/svg+xml" />
|
||||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
<link rel="icon" href="favicon-48.png?v=3" type="image/png" sizes="48x48" />
|
||||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
<link rel="icon" href="favicon-32.png?v=3" type="image/png" sizes="32x32" />
|
||||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
<link rel="icon" href="favicon-16.png?v=3" type="image/png" sizes="16x16" />
|
||||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
<link rel="apple-touch-icon" href="apple-touch-icon.png?v=3" />
|
||||||
<link rel="manifest" href="manifest.webmanifest" />
|
<link rel="manifest" href="manifest.webmanifest" />
|
||||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
<header>
|
<header>
|
||||||
<div class="brand">
|
<div class="brand">
|
||||||
<div>
|
<div>
|
||||||
<h1><a href="./"><span class="logo"><svg viewBox="0 0 512 512" width="28" height="28" aria-hidden="true"><rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#fff" stroke-opacity=".08" stroke-width="4"/><rect x="64" y="170" width="384" height="48" rx="8" fill="#27131C"/><rect x="64" y="222" width="384" height="48" rx="8" fill="#38322E"/><rect x="64" y="274" width="384" height="48" rx="8" fill="#1A2D27"/><rect x="64" y="326" width="384" height="48" rx="8" fill="#26333F"/><rect x="64" y="378" width="384" height="48" rx="8" fill="#18293A"/><line x1="64" y1="132" x2="448" y2="132" stroke="#46586E" stroke-width="8" stroke-dasharray="26 20"/><path d="M64 410H126V386H160" fill="none" stroke="var(--cold)" stroke-width="34"/><path d="M160 403V352H244V368H282" fill="none" stroke="var(--cool)" stroke-width="34"/><path d="M282 385V320H312" fill="none" stroke="var(--normal)" stroke-width="34"/><path d="M312 337V248H338" fill="none" stroke="var(--warm)" stroke-width="34"/><path d="M338 265V196H366" fill="none" stroke="var(--hot)" stroke-width="34"/><path d="M366 213V132H396" fill="none" stroke="var(--very-hot)" stroke-width="34"/><rect x="382" y="100" width="64" height="64" rx="12" fill="var(--rec-hot)" stroke="#10141B" stroke-width="12"/></svg></span>Thermograph</a></h1>
|
<h1><a href="./"><span class="logo"><svg viewBox="0 0 512 512" width="28" height="28" aria-hidden="true"><rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#FFFFFF" stroke-opacity="0.08" stroke-width="4"/><rect x="115" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="163" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="211" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="259" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="307" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="355" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="403" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="163" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="211" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="259" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="307" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="355" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="403" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="67" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="163" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="211" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="259" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="307" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="355" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="403" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="67" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="211" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="403" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="67" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="115" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="211" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="307" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="67" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="115" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="307" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="355" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="67" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="115" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="163" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="211" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="259" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="307" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="355" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="67" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="115" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="163" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="211" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="259" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="307" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="355" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="67" y="403" width="42" height="42" rx="10" fill="#2166ac"/><rect x="67" y="355" width="42" height="42" rx="10" fill="#4393c3"/><rect x="115" y="355" width="42" height="42" rx="10" fill="#4393c3"/><rect x="115" y="307" width="42" height="42" rx="10" fill="#92c5de"/><rect x="115" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="163" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="163" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="163" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="211" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="259" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="259" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="259" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="307" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="355" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="355" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="403" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="403" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="403" y="115" width="42" height="42" rx="10" fill="#dd6b52"/><rect x="403" y="67" width="42" height="42" rx="10" fill="#8f0e20"/></svg></span>Thermograph</a></h1>
|
||||||
<p class="tag">Which place best hits your comfort temperature over a date range</p>
|
<p class="tag">Which place best hits your comfort temperature over a date range</p>
|
||||||
</div>
|
</div>
|
||||||
<details class="nav-menu">
|
<details class="nav-menu">
|
||||||
|
|
|
||||||
|
|
@ -14,17 +14,17 @@
|
||||||
<meta property="og:title" content="Thermograph — a single day" />
|
<meta property="og:title" content="Thermograph — a single day" />
|
||||||
<meta property="og:description" content="One day's weather in full detail: every percentile tier for that date and place, and exactly where the day's high, low, feels-like, wind and rain landed against local history." />
|
<meta property="og:description" content="One day's weather in full detail: every percentile tier for that date and place, and exactly where the day's high, low, feels-like, wind and rain landed against local history." />
|
||||||
<meta property="og:url" content="__ORIGIN__/day" />
|
<meta property="og:url" content="__ORIGIN__/day" />
|
||||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
<meta property="og:image" content="__ORIGIN__/logo.png?v=3" />
|
||||||
<meta property="og:image:width" content="512" />
|
<meta property="og:image:width" content="512" />
|
||||||
<meta property="og:image:height" content="512" />
|
<meta property="og:image:height" content="512" />
|
||||||
<meta property="og:image:alt" content="Thermograph logo" />
|
<meta property="og:image:alt" content="Thermograph logo" />
|
||||||
<meta name="twitter:card" content="summary" />
|
<meta name="twitter:card" content="summary" />
|
||||||
<link rel="canonical" href="__ORIGIN__/day" />
|
<link rel="canonical" href="__ORIGIN__/day" />
|
||||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
<link rel="icon" href="favicon.svg?v=3" type="image/svg+xml" />
|
||||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
<link rel="icon" href="favicon-48.png?v=3" type="image/png" sizes="48x48" />
|
||||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
<link rel="icon" href="favicon-32.png?v=3" type="image/png" sizes="32x32" />
|
||||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
<link rel="icon" href="favicon-16.png?v=3" type="image/png" sizes="16x16" />
|
||||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
<link rel="apple-touch-icon" href="apple-touch-icon.png?v=3" />
|
||||||
<link rel="manifest" href="manifest.webmanifest" />
|
<link rel="manifest" href="manifest.webmanifest" />
|
||||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
<header>
|
<header>
|
||||||
<div class="brand">
|
<div class="brand">
|
||||||
<div>
|
<div>
|
||||||
<h1><a href="./"><span class="logo"><svg viewBox="0 0 512 512" width="28" height="28" aria-hidden="true"><rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#fff" stroke-opacity=".08" stroke-width="4"/><rect x="64" y="170" width="384" height="48" rx="8" fill="#27131C"/><rect x="64" y="222" width="384" height="48" rx="8" fill="#38322E"/><rect x="64" y="274" width="384" height="48" rx="8" fill="#1A2D27"/><rect x="64" y="326" width="384" height="48" rx="8" fill="#26333F"/><rect x="64" y="378" width="384" height="48" rx="8" fill="#18293A"/><line x1="64" y1="132" x2="448" y2="132" stroke="#46586E" stroke-width="8" stroke-dasharray="26 20"/><path d="M64 410H126V386H160" fill="none" stroke="var(--cold)" stroke-width="34"/><path d="M160 403V352H244V368H282" fill="none" stroke="var(--cool)" stroke-width="34"/><path d="M282 385V320H312" fill="none" stroke="var(--normal)" stroke-width="34"/><path d="M312 337V248H338" fill="none" stroke="var(--warm)" stroke-width="34"/><path d="M338 265V196H366" fill="none" stroke="var(--hot)" stroke-width="34"/><path d="M366 213V132H396" fill="none" stroke="var(--very-hot)" stroke-width="34"/><rect x="382" y="100" width="64" height="64" rx="12" fill="var(--rec-hot)" stroke="#10141B" stroke-width="12"/></svg></span>Thermograph</a></h1>
|
<h1><a href="./"><span class="logo"><svg viewBox="0 0 512 512" width="28" height="28" aria-hidden="true"><rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#FFFFFF" stroke-opacity="0.08" stroke-width="4"/><rect x="115" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="163" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="211" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="259" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="307" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="355" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="403" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="163" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="211" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="259" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="307" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="355" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="403" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="67" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="163" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="211" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="259" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="307" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="355" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="403" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="67" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="211" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="403" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="67" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="115" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="211" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="307" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="67" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="115" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="307" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="355" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="67" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="115" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="163" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="211" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="259" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="307" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="355" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="67" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="115" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="163" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="211" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="259" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="307" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="355" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="67" y="403" width="42" height="42" rx="10" fill="#2166ac"/><rect x="67" y="355" width="42" height="42" rx="10" fill="#4393c3"/><rect x="115" y="355" width="42" height="42" rx="10" fill="#4393c3"/><rect x="115" y="307" width="42" height="42" rx="10" fill="#92c5de"/><rect x="115" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="163" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="163" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="163" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="211" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="259" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="259" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="259" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="307" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="355" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="355" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="403" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="403" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="403" y="115" width="42" height="42" rx="10" fill="#dd6b52"/><rect x="403" y="67" width="42" height="42" rx="10" fill="#8f0e20"/></svg></span>Thermograph</a></h1>
|
||||||
<p class="tag">Every percentile boundary for one day vs its typical climate</p>
|
<p class="tag">Every percentile boundary for one day vs its typical climate</p>
|
||||||
</div>
|
</div>
|
||||||
<details class="nav-menu">
|
<details class="nav-menu">
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 397 B After Width: | Height: | Size: 611 B |
|
Before Width: | Height: | Size: 949 B After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2 KiB |
|
|
@ -1,20 +1,69 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Thermograph">
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Thermograph">
|
||||||
<title>Thermograph</title>
|
<title>Thermograph</title>
|
||||||
<desc>An uneven quantized climb through grade zones, from Low blue through green Normal to Near Record</desc>
|
<desc>A quantized trace of graded day-cells: up through green normal, a hot loop at center, back down along green, then a stepped climb to the near-record cell at the record row</desc>
|
||||||
<!-- Step colors derive from the temperature-band tokens in frontend/style.css:1-32
|
|
||||||
(cold, cool, normal, warm, hot, very-hot, rec-hot); standalone asset bakes the hexes. -->
|
|
||||||
<rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#FFFFFF" stroke-opacity="0.08" stroke-width="4"/>
|
<rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#FFFFFF" stroke-opacity="0.08" stroke-width="4"/>
|
||||||
<rect x="64" y="170" width="384" height="48" rx="8" fill="#27131C"/>
|
<rect x="115" y="403" width="42" height="42" rx="10" fill="#111924"/>
|
||||||
<rect x="64" y="222" width="384" height="48" rx="8" fill="#38322E"/>
|
<rect x="163" y="403" width="42" height="42" rx="10" fill="#111924"/>
|
||||||
<rect x="64" y="274" width="384" height="48" rx="8" fill="#1A2D27"/>
|
<rect x="211" y="403" width="42" height="42" rx="10" fill="#111924"/>
|
||||||
<rect x="64" y="326" width="384" height="48" rx="8" fill="#26333F"/>
|
<rect x="259" y="403" width="42" height="42" rx="10" fill="#111924"/>
|
||||||
<rect x="64" y="378" width="384" height="48" rx="8" fill="#18293A"/>
|
<rect x="307" y="403" width="42" height="42" rx="10" fill="#111924"/>
|
||||||
<line x1="64" y1="132" x2="448" y2="132" stroke="#46586E" stroke-width="8" stroke-dasharray="26 20"/>
|
<rect x="355" y="403" width="42" height="42" rx="10" fill="#111924"/>
|
||||||
<path d="M64 410 L126 410 L126 386 L160 386" fill="none" stroke="#4393c3" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
<rect x="403" y="403" width="42" height="42" rx="10" fill="#111924"/>
|
||||||
<path d="M160 403 L160 352 L244 352 L244 368 L282 368" fill="none" stroke="#92c5de" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
<rect x="163" y="355" width="42" height="42" rx="10" fill="#131C25"/>
|
||||||
<path d="M282 385 L282 320 L312 320" fill="none" stroke="#4a9d5b" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
<rect x="211" y="355" width="42" height="42" rx="10" fill="#131C25"/>
|
||||||
<path d="M312 337 L312 248 L338 248" fill="none" stroke="#f6c18a" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
<rect x="259" y="355" width="42" height="42" rx="10" fill="#131C25"/>
|
||||||
<path d="M338 265 L338 196 L366 196" fill="none" stroke="#ef9351" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
<rect x="307" y="355" width="42" height="42" rx="10" fill="#131C25"/>
|
||||||
<path d="M366 213 L366 132 L396 132" fill="none" stroke="#dd6b52" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
<rect x="355" y="355" width="42" height="42" rx="10" fill="#131C25"/>
|
||||||
<rect x="382" y="100" width="64" height="64" rx="12" fill="#8f0e20" stroke="#10141B" stroke-width="12"/>
|
<rect x="403" y="355" width="42" height="42" rx="10" fill="#131C25"/>
|
||||||
|
<rect x="67" y="307" width="42" height="42" rx="10" fill="#181F27"/>
|
||||||
|
<rect x="163" y="307" width="42" height="42" rx="10" fill="#181F27"/>
|
||||||
|
<rect x="211" y="307" width="42" height="42" rx="10" fill="#181F27"/>
|
||||||
|
<rect x="259" y="307" width="42" height="42" rx="10" fill="#181F27"/>
|
||||||
|
<rect x="307" y="307" width="42" height="42" rx="10" fill="#181F27"/>
|
||||||
|
<rect x="355" y="307" width="42" height="42" rx="10" fill="#181F27"/>
|
||||||
|
<rect x="403" y="307" width="42" height="42" rx="10" fill="#181F27"/>
|
||||||
|
<rect x="67" y="259" width="42" height="42" rx="10" fill="#131C1F"/>
|
||||||
|
<rect x="211" y="259" width="42" height="42" rx="10" fill="#131C1F"/>
|
||||||
|
<rect x="403" y="259" width="42" height="42" rx="10" fill="#131C1F"/>
|
||||||
|
<rect x="67" y="211" width="42" height="42" rx="10" fill="#1E1E22"/>
|
||||||
|
<rect x="115" y="211" width="42" height="42" rx="10" fill="#1E1E22"/>
|
||||||
|
<rect x="211" y="211" width="42" height="42" rx="10" fill="#1E1E22"/>
|
||||||
|
<rect x="307" y="211" width="42" height="42" rx="10" fill="#1E1E22"/>
|
||||||
|
<rect x="67" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/>
|
||||||
|
<rect x="115" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/>
|
||||||
|
<rect x="307" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/>
|
||||||
|
<rect x="355" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/>
|
||||||
|
<rect x="67" y="115" width="42" height="42" rx="10" fill="#1C191E"/>
|
||||||
|
<rect x="115" y="115" width="42" height="42" rx="10" fill="#1C191E"/>
|
||||||
|
<rect x="163" y="115" width="42" height="42" rx="10" fill="#1C191E"/>
|
||||||
|
<rect x="211" y="115" width="42" height="42" rx="10" fill="#1C191E"/>
|
||||||
|
<rect x="259" y="115" width="42" height="42" rx="10" fill="#1C191E"/>
|
||||||
|
<rect x="307" y="115" width="42" height="42" rx="10" fill="#1C191E"/>
|
||||||
|
<rect x="355" y="115" width="42" height="42" rx="10" fill="#1C191E"/>
|
||||||
|
<rect x="67" y="67" width="42" height="42" rx="10" fill="#18141B"/>
|
||||||
|
<rect x="115" y="67" width="42" height="42" rx="10" fill="#18141B"/>
|
||||||
|
<rect x="163" y="67" width="42" height="42" rx="10" fill="#18141B"/>
|
||||||
|
<rect x="211" y="67" width="42" height="42" rx="10" fill="#18141B"/>
|
||||||
|
<rect x="259" y="67" width="42" height="42" rx="10" fill="#18141B"/>
|
||||||
|
<rect x="307" y="67" width="42" height="42" rx="10" fill="#18141B"/>
|
||||||
|
<rect x="355" y="67" width="42" height="42" rx="10" fill="#18141B"/>
|
||||||
|
<rect x="67" y="403" width="42" height="42" rx="10" fill="#2166ac"/>
|
||||||
|
<rect x="67" y="355" width="42" height="42" rx="10" fill="#4393c3"/>
|
||||||
|
<rect x="115" y="355" width="42" height="42" rx="10" fill="#4393c3"/>
|
||||||
|
<rect x="115" y="307" width="42" height="42" rx="10" fill="#92c5de"/>
|
||||||
|
<rect x="115" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/>
|
||||||
|
<rect x="163" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/>
|
||||||
|
<rect x="163" y="211" width="42" height="42" rx="10" fill="#f6c18a"/>
|
||||||
|
<rect x="163" y="163" width="42" height="42" rx="10" fill="#ef9351"/>
|
||||||
|
<rect x="211" y="163" width="42" height="42" rx="10" fill="#ef9351"/>
|
||||||
|
<rect x="259" y="163" width="42" height="42" rx="10" fill="#ef9351"/>
|
||||||
|
<rect x="259" y="211" width="42" height="42" rx="10" fill="#f6c18a"/>
|
||||||
|
<rect x="259" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/>
|
||||||
|
<rect x="307" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/>
|
||||||
|
<rect x="355" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/>
|
||||||
|
<rect x="355" y="211" width="42" height="42" rx="10" fill="#f6c18a"/>
|
||||||
|
<rect x="403" y="211" width="42" height="42" rx="10" fill="#f6c18a"/>
|
||||||
|
<rect x="403" y="163" width="42" height="42" rx="10" fill="#ef9351"/>
|
||||||
|
<rect x="403" y="115" width="42" height="42" rx="10" fill="#dd6b52"/>
|
||||||
|
<rect x="403" y="67" width="42" height="42" rx="10" fill="#8f0e20"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
|
@ -14,17 +14,17 @@
|
||||||
<meta property="og:title" content="Thermograph — reading the grades" />
|
<meta property="og:title" content="Thermograph — reading the grades" />
|
||||||
<meta property="og:description" content="How Thermograph grades weather: percentiles of a location's own ±7-day seasonal history, the scale from Below Normal to Near Record, and what every metric means." />
|
<meta property="og:description" content="How Thermograph grades weather: percentiles of a location's own ±7-day seasonal history, the scale from Below Normal to Near Record, and what every metric means." />
|
||||||
<meta property="og:url" content="__ORIGIN__/legend" />
|
<meta property="og:url" content="__ORIGIN__/legend" />
|
||||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
<meta property="og:image" content="__ORIGIN__/logo.png?v=3" />
|
||||||
<meta property="og:image:width" content="512" />
|
<meta property="og:image:width" content="512" />
|
||||||
<meta property="og:image:height" content="512" />
|
<meta property="og:image:height" content="512" />
|
||||||
<meta property="og:image:alt" content="Thermograph logo" />
|
<meta property="og:image:alt" content="Thermograph logo" />
|
||||||
<meta name="twitter:card" content="summary" />
|
<meta name="twitter:card" content="summary" />
|
||||||
<link rel="canonical" href="__ORIGIN__/legend" />
|
<link rel="canonical" href="__ORIGIN__/legend" />
|
||||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
<link rel="icon" href="favicon.svg?v=3" type="image/svg+xml" />
|
||||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
<link rel="icon" href="favicon-48.png?v=3" type="image/png" sizes="48x48" />
|
||||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
<link rel="icon" href="favicon-32.png?v=3" type="image/png" sizes="32x32" />
|
||||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
<link rel="icon" href="favicon-16.png?v=3" type="image/png" sizes="16x16" />
|
||||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
<link rel="apple-touch-icon" href="apple-touch-icon.png?v=3" />
|
||||||
<link rel="manifest" href="manifest.webmanifest" />
|
<link rel="manifest" href="manifest.webmanifest" />
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
</head>
|
</head>
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
<header>
|
<header>
|
||||||
<div class="brand">
|
<div class="brand">
|
||||||
<div>
|
<div>
|
||||||
<h1><a href="./"><span class="logo"><svg viewBox="0 0 512 512" width="28" height="28" aria-hidden="true"><rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#fff" stroke-opacity=".08" stroke-width="4"/><rect x="64" y="170" width="384" height="48" rx="8" fill="#27131C"/><rect x="64" y="222" width="384" height="48" rx="8" fill="#38322E"/><rect x="64" y="274" width="384" height="48" rx="8" fill="#1A2D27"/><rect x="64" y="326" width="384" height="48" rx="8" fill="#26333F"/><rect x="64" y="378" width="384" height="48" rx="8" fill="#18293A"/><line x1="64" y1="132" x2="448" y2="132" stroke="#46586E" stroke-width="8" stroke-dasharray="26 20"/><path d="M64 410H126V386H160" fill="none" stroke="var(--cold)" stroke-width="34"/><path d="M160 403V352H244V368H282" fill="none" stroke="var(--cool)" stroke-width="34"/><path d="M282 385V320H312" fill="none" stroke="var(--normal)" stroke-width="34"/><path d="M312 337V248H338" fill="none" stroke="var(--warm)" stroke-width="34"/><path d="M338 265V196H366" fill="none" stroke="var(--hot)" stroke-width="34"/><path d="M366 213V132H396" fill="none" stroke="var(--very-hot)" stroke-width="34"/><rect x="382" y="100" width="64" height="64" rx="12" fill="var(--rec-hot)" stroke="#10141B" stroke-width="12"/></svg></span>Thermograph</a></h1>
|
<h1><a href="./"><span class="logo"><svg viewBox="0 0 512 512" width="28" height="28" aria-hidden="true"><rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#FFFFFF" stroke-opacity="0.08" stroke-width="4"/><rect x="115" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="163" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="211" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="259" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="307" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="355" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="403" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="163" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="211" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="259" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="307" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="355" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="403" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="67" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="163" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="211" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="259" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="307" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="355" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="403" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="67" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="211" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="403" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="67" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="115" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="211" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="307" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="67" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="115" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="307" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="355" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="67" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="115" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="163" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="211" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="259" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="307" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="355" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="67" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="115" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="163" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="211" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="259" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="307" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="355" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="67" y="403" width="42" height="42" rx="10" fill="#2166ac"/><rect x="67" y="355" width="42" height="42" rx="10" fill="#4393c3"/><rect x="115" y="355" width="42" height="42" rx="10" fill="#4393c3"/><rect x="115" y="307" width="42" height="42" rx="10" fill="#92c5de"/><rect x="115" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="163" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="163" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="163" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="211" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="259" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="259" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="259" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="307" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="355" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="355" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="403" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="403" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="403" y="115" width="42" height="42" rx="10" fill="#dd6b52"/><rect x="403" y="67" width="42" height="42" rx="10" fill="#8f0e20"/></svg></span>Thermograph</a></h1>
|
||||||
<p class="tag">What the metrics and percentile grades mean</p>
|
<p class="tag">What the metrics and percentile grades mean</p>
|
||||||
</div>
|
</div>
|
||||||
<details class="nav-menu">
|
<details class="nav-menu">
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 19 KiB |
BIN
static/logo.png
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 18 KiB |
|
|
@ -8,10 +8,10 @@
|
||||||
"background_color": "#171b21",
|
"background_color": "#171b21",
|
||||||
"theme_color": "#f0803c",
|
"theme_color": "#f0803c",
|
||||||
"icons": [
|
"icons": [
|
||||||
{ "src": "favicon.svg", "sizes": "any", "type": "image/svg+xml" },
|
{ "src": "favicon.svg?v=3", "sizes": "any", "type": "image/svg+xml" },
|
||||||
{ "src": "logo-192.png?v=2", "sizes": "192x192", "type": "image/png", "purpose": "any" },
|
{ "src": "logo-192.png?v=3", "sizes": "192x192", "type": "image/png", "purpose": "any" },
|
||||||
{ "src": "logo.png?v=2", "sizes": "512x512", "type": "image/png", "purpose": "any" },
|
{ "src": "logo.png?v=3", "sizes": "512x512", "type": "image/png", "purpose": "any" },
|
||||||
{ "src": "logo-maskable-192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" },
|
{ "src": "logo-maskable-192.png?v=3", "sizes": "192x192", "type": "image/png", "purpose": "maskable" },
|
||||||
{ "src": "logo-maskable-512.png?v=2", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
|
{ "src": "logo-maskable-512.png?v=3", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,17 +11,17 @@
|
||||||
<meta property="og:title" content="Thermograph — weather alerts" />
|
<meta property="og:title" content="Thermograph — weather alerts" />
|
||||||
<meta property="og:description" content="Subscribe to a city and get notified when its weather is unusually extreme — above the percentile you choose." />
|
<meta property="og:description" content="Subscribe to a city and get notified when its weather is unusually extreme — above the percentile you choose." />
|
||||||
<meta property="og:url" content="__ORIGIN__/alerts" />
|
<meta property="og:url" content="__ORIGIN__/alerts" />
|
||||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
<meta property="og:image" content="__ORIGIN__/logo.png?v=3" />
|
||||||
<meta property="og:image:width" content="512" />
|
<meta property="og:image:width" content="512" />
|
||||||
<meta property="og:image:height" content="512" />
|
<meta property="og:image:height" content="512" />
|
||||||
<meta property="og:image:alt" content="Thermograph logo" />
|
<meta property="og:image:alt" content="Thermograph logo" />
|
||||||
<meta name="twitter:card" content="summary" />
|
<meta name="twitter:card" content="summary" />
|
||||||
<link rel="canonical" href="__ORIGIN__/alerts" />
|
<link rel="canonical" href="__ORIGIN__/alerts" />
|
||||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
<link rel="icon" href="favicon.svg?v=3" type="image/svg+xml" />
|
||||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
<link rel="icon" href="favicon-48.png?v=3" type="image/png" sizes="48x48" />
|
||||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
<link rel="icon" href="favicon-32.png?v=3" type="image/png" sizes="32x32" />
|
||||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
<link rel="icon" href="favicon-16.png?v=3" type="image/png" sizes="16x16" />
|
||||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
<link rel="apple-touch-icon" href="apple-touch-icon.png?v=3" />
|
||||||
<link rel="manifest" href="manifest.webmanifest" />
|
<link rel="manifest" href="manifest.webmanifest" />
|
||||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
<header>
|
<header>
|
||||||
<div class="brand">
|
<div class="brand">
|
||||||
<div>
|
<div>
|
||||||
<h1><a href="./"><span class="logo"><svg viewBox="0 0 512 512" width="28" height="28" aria-hidden="true"><rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#fff" stroke-opacity=".08" stroke-width="4"/><rect x="64" y="170" width="384" height="48" rx="8" fill="#27131C"/><rect x="64" y="222" width="384" height="48" rx="8" fill="#38322E"/><rect x="64" y="274" width="384" height="48" rx="8" fill="#1A2D27"/><rect x="64" y="326" width="384" height="48" rx="8" fill="#26333F"/><rect x="64" y="378" width="384" height="48" rx="8" fill="#18293A"/><line x1="64" y1="132" x2="448" y2="132" stroke="#46586E" stroke-width="8" stroke-dasharray="26 20"/><path d="M64 410H126V386H160" fill="none" stroke="var(--cold)" stroke-width="34"/><path d="M160 403V352H244V368H282" fill="none" stroke="var(--cool)" stroke-width="34"/><path d="M282 385V320H312" fill="none" stroke="var(--normal)" stroke-width="34"/><path d="M312 337V248H338" fill="none" stroke="var(--warm)" stroke-width="34"/><path d="M338 265V196H366" fill="none" stroke="var(--hot)" stroke-width="34"/><path d="M366 213V132H396" fill="none" stroke="var(--very-hot)" stroke-width="34"/><rect x="382" y="100" width="64" height="64" rx="12" fill="var(--rec-hot)" stroke="#10141B" stroke-width="12"/></svg></span>Thermograph</a></h1>
|
<h1><a href="./"><span class="logo"><svg viewBox="0 0 512 512" width="28" height="28" aria-hidden="true"><rect x="32" y="32" width="448" height="448" rx="96" fill="#10141B" stroke="#FFFFFF" stroke-opacity="0.08" stroke-width="4"/><rect x="115" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="163" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="211" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="259" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="307" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="355" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="403" y="403" width="42" height="42" rx="10" fill="#111924"/><rect x="163" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="211" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="259" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="307" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="355" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="403" y="355" width="42" height="42" rx="10" fill="#131C25"/><rect x="67" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="163" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="211" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="259" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="307" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="355" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="403" y="307" width="42" height="42" rx="10" fill="#181F27"/><rect x="67" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="211" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="403" y="259" width="42" height="42" rx="10" fill="#131C1F"/><rect x="67" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="115" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="211" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="307" y="211" width="42" height="42" rx="10" fill="#1E1E22"/><rect x="67" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="115" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="307" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="355" y="163" width="42" height="42" rx="10" fill="#1D1C1E"/><rect x="67" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="115" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="163" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="211" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="259" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="307" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="355" y="115" width="42" height="42" rx="10" fill="#1C191E"/><rect x="67" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="115" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="163" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="211" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="259" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="307" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="355" y="67" width="42" height="42" rx="10" fill="#18141B"/><rect x="67" y="403" width="42" height="42" rx="10" fill="#2166ac"/><rect x="67" y="355" width="42" height="42" rx="10" fill="#4393c3"/><rect x="115" y="355" width="42" height="42" rx="10" fill="#4393c3"/><rect x="115" y="307" width="42" height="42" rx="10" fill="#92c5de"/><rect x="115" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="163" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="163" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="163" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="211" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="259" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="259" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="259" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="307" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="355" y="259" width="42" height="42" rx="10" fill="#4a9d5b"/><rect x="355" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="403" y="211" width="42" height="42" rx="10" fill="#f6c18a"/><rect x="403" y="163" width="42" height="42" rx="10" fill="#ef9351"/><rect x="403" y="115" width="42" height="42" rx="10" fill="#dd6b52"/><rect x="403" y="67" width="42" height="42" rx="10" fill="#8f0e20"/></svg></span>Thermograph</a></h1>
|
||||||
<p class="tag">Get notified when a city's weather passes the percentile you set</p>
|
<p class="tag">Get notified when a city's weather passes the percentile you set</p>
|
||||||
</div>
|
</div>
|
||||||
<details class="nav-menu">
|
<details class="nav-menu">
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,8 @@ self.addEventListener("push", (event) => {
|
||||||
const title = data.title || "Thermograph";
|
const title = data.title || "Thermograph";
|
||||||
const options = {
|
const options = {
|
||||||
body: data.body || "",
|
body: data.body || "",
|
||||||
icon: "logo-192.png",
|
icon: "logo-192.png?v=3",
|
||||||
badge: "logo-192.png",
|
badge: "logo-192.png?v=3",
|
||||||
tag: data.tag || "thermograph",
|
tag: data.tag || "thermograph",
|
||||||
data: { url: data.url || "./" },
|
data: { url: data.url || "./" },
|
||||||
};
|
};
|
||||||
|
|
|
||||||