New brand mark: C1 step-curve logo wired through favicons, PWA icons, and header (#169)
The mark is a quantized climb through the temperature-band tokens (cold -> cool -> normal -> warm -> hot -> very-hot) to a rec-hot terminal at a dashed record line, on the dark rounded tile. - favicon.svg (canonical) + favicon-16/32/48.png fallbacks; the 16px raster drops the whisper strata and record dash so the climb survives - apple-touch-icon.png 180 rendered edge-to-edge (iOS supplies rounding) - maskable 192/512 scale the artwork 0.78 about center so every element clears the 40%-radius circular safe zone; any-purpose 192/512 and the 512 OG logo.png regenerated; reused filenames cache-busted with ?v=2 - header lockup: inline glyph referencing var(--cold) etc so a palette change propagates, beside a lowercase 650-weight wordmark - PNGs are palette-quantized with the band/chrome hexes pinned exact; full asset set is ~20 KB Claude-Session: https://claude.ai/code/session_01KdTZCjpLeD26ZbXe6ApjpR
BIN
static/apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
|
|
@ -14,14 +14,17 @@
|
|||
<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:url" content="__ORIGIN__/calendar" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
||||
<meta property="og:image:width" content="512" />
|
||||
<meta property="og:image:height" content="512" />
|
||||
<meta property="og:image:alt" content="Thermograph logo" />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<link rel="canonical" href="__ORIGIN__/calendar" />
|
||||
<link rel="icon" href="logo.svg" type="image/svg+xml" />
|
||||
<link rel="apple-touch-icon" href="logo.png" />
|
||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
||||
<link rel="manifest" href="manifest.webmanifest" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
|
|
@ -29,7 +32,7 @@
|
|||
<body>
|
||||
<header class="compact">
|
||||
<div class="brand">
|
||||
<span class="logo"><svg viewBox="116 116 280 280" width="28" height="28" aria-hidden="true"><rect x="116" y="116" width="134" height="134" rx="20" fill="currentColor"/><rect x="262" y="262" width="134" height="134" rx="20" fill="currentColor"/></svg></span>
|
||||
<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>
|
||||
<div>
|
||||
<h1>Thermograph · Calendar</h1>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -14,14 +14,17 @@
|
|||
<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:url" content="__ORIGIN__/compare" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
||||
<meta property="og:image:width" content="512" />
|
||||
<meta property="og:image:height" content="512" />
|
||||
<meta property="og:image:alt" content="Thermograph logo" />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<link rel="canonical" href="__ORIGIN__/compare" />
|
||||
<link rel="icon" href="logo.svg" type="image/svg+xml" />
|
||||
<link rel="apple-touch-icon" href="logo.png" />
|
||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
||||
<link rel="manifest" href="manifest.webmanifest" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
|
|
@ -29,7 +32,7 @@
|
|||
<body>
|
||||
<header>
|
||||
<div class="brand">
|
||||
<span class="logo"><svg viewBox="116 116 280 280" width="28" height="28" aria-hidden="true"><rect x="116" y="116" width="134" height="134" rx="20" fill="currentColor"/><rect x="262" y="262" width="134" height="134" rx="20" fill="currentColor"/></svg></span>
|
||||
<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>
|
||||
<div>
|
||||
<h1>Thermograph · Compare</h1>
|
||||
<p class="tag">Which place best hits your comfort temperature over a date range</p>
|
||||
|
|
|
|||
|
|
@ -14,14 +14,17 @@
|
|||
<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:url" content="__ORIGIN__/day" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
||||
<meta property="og:image:width" content="512" />
|
||||
<meta property="og:image:height" content="512" />
|
||||
<meta property="og:image:alt" content="Thermograph logo" />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<link rel="canonical" href="__ORIGIN__/day" />
|
||||
<link rel="icon" href="logo.svg" type="image/svg+xml" />
|
||||
<link rel="apple-touch-icon" href="logo.png" />
|
||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
||||
<link rel="manifest" href="manifest.webmanifest" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
|
|
@ -29,7 +32,7 @@
|
|||
<body>
|
||||
<header>
|
||||
<div class="brand">
|
||||
<span class="logo"><svg viewBox="116 116 280 280" width="28" height="28" aria-hidden="true"><rect x="116" y="116" width="134" height="134" rx="20" fill="currentColor"/><rect x="262" y="262" width="134" height="134" rx="20" fill="currentColor"/></svg></span>
|
||||
<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>
|
||||
<div>
|
||||
<h1>Thermograph · Day</h1>
|
||||
<p class="tag">Every percentile boundary for one day vs its typical climate</p>
|
||||
|
|
|
|||
BIN
static/favicon-16.png
Normal file
|
After Width: | Height: | Size: 397 B |
BIN
static/favicon-32.png
Normal file
|
After Width: | Height: | Size: 949 B |
BIN
static/favicon-48.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
20
static/favicon.svg
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" role="img" aria-label="Thermograph">
|
||||
<title>Thermograph</title>
|
||||
<desc>An uneven quantized climb through grade zones, from Low blue through green Normal to Near Record</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="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 410 L126 410 L126 386 L160 386" fill="none" stroke="#4393c3" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
||||
<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"/>
|
||||
<path d="M282 385 L282 320 L312 320" fill="none" stroke="#4a9d5b" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
||||
<path d="M312 337 L312 248 L338 248" fill="none" stroke="#f6c18a" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
||||
<path d="M338 265 L338 196 L366 196" fill="none" stroke="#ef9351" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
||||
<path d="M366 213 L366 132 L396 132" fill="none" stroke="#dd6b52" stroke-width="34" stroke-linecap="butt" stroke-linejoin="miter"/>
|
||||
<rect x="382" y="100" width="64" height="64" rx="12" fill="#8f0e20" stroke="#10141B" stroke-width="12"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.9 KiB |
|
|
@ -14,7 +14,7 @@
|
|||
<meta property="og:title" content="Thermograph — how unusual is your weather?" />
|
||||
<meta property="og:description" content="See how today's weather compares to decades of local climate history for any place on Earth — daily high, low, feels-like, humidity, wind and rain graded by percentile." />
|
||||
<meta property="og:url" content="__ORIGIN__/" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
||||
<meta property="og:image:width" content="512" />
|
||||
<meta property="og:image:height" content="512" />
|
||||
<meta property="og:image:alt" content="Thermograph logo" />
|
||||
|
|
@ -23,8 +23,11 @@
|
|||
<script type="application/ld+json">
|
||||
{"@context":"https://schema.org","@type":"WebApplication","name":"Thermograph","url":"__ORIGIN__/","applicationCategory":"WeatherApplication","operatingSystem":"Web, iOS, Android","browserRequirements":"Requires JavaScript","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"description":"See how today's weather compares to ~45 years of local climate history for any place on Earth — graded by percentile."}
|
||||
</script>
|
||||
<link rel="icon" href="logo.svg" type="image/svg+xml" />
|
||||
<link rel="apple-touch-icon" href="logo.png" />
|
||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
||||
<link rel="manifest" href="manifest.webmanifest" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
|
|
@ -32,7 +35,7 @@
|
|||
<body>
|
||||
<header>
|
||||
<div class="brand">
|
||||
<span class="logo"><svg viewBox="116 116 280 280" width="28" height="28" aria-hidden="true"><rect x="116" y="116" width="134" height="134" rx="20" fill="currentColor"/><rect x="262" y="262" width="134" height="134" rx="20" fill="currentColor"/></svg></span>
|
||||
<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>
|
||||
<div>
|
||||
<h1>Thermograph</h1>
|
||||
<p class="tag">Grading today's weather against ~45 years of local climate history</p>
|
||||
|
|
|
|||
|
|
@ -14,21 +14,24 @@
|
|||
<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:url" content="__ORIGIN__/legend" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
||||
<meta property="og:image:width" content="512" />
|
||||
<meta property="og:image:height" content="512" />
|
||||
<meta property="og:image:alt" content="Thermograph logo" />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<link rel="canonical" href="__ORIGIN__/legend" />
|
||||
<link rel="icon" href="logo.svg" type="image/svg+xml" />
|
||||
<link rel="apple-touch-icon" href="logo.png" />
|
||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
||||
<link rel="manifest" href="manifest.webmanifest" />
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="brand">
|
||||
<span class="logo"><svg viewBox="116 116 280 280" width="28" height="28" aria-hidden="true"><rect x="116" y="116" width="134" height="134" rx="20" fill="currentColor"/><rect x="262" y="262" width="134" height="134" rx="20" fill="currentColor"/></svg></span>
|
||||
<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>
|
||||
<div>
|
||||
<h1>Thermograph · Guide</h1>
|
||||
<p class="tag">What the metrics and percentile grades mean</p>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
static/logo-maskable-192.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.3 KiB |
BIN
static/logo.png
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 4.5 KiB |
|
|
@ -1,7 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<!-- The ▚ brand mark from the header, as an app icon: two accent quadrants on
|
||||
the app's dark surface. Keep in sync with logo.png (the og:image raster). -->
|
||||
<rect width="512" height="512" rx="100" fill="#171b21"/>
|
||||
<rect x="116" y="116" width="134" height="134" rx="20" fill="#f0803c"/>
|
||||
<rect x="262" y="262" width="134" height="134" rx="20" fill="#f0803c"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 445 B |
|
|
@ -8,9 +8,10 @@
|
|||
"background_color": "#171b21",
|
||||
"theme_color": "#f0803c",
|
||||
"icons": [
|
||||
{ "src": "logo.svg", "sizes": "any", "type": "image/svg+xml" },
|
||||
{ "src": "logo-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" },
|
||||
{ "src": "logo.png", "sizes": "512x512", "type": "image/png", "purpose": "any" },
|
||||
{ "src": "logo-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
|
||||
{ "src": "favicon.svg", "sizes": "any", "type": "image/svg+xml" },
|
||||
{ "src": "logo-192.png?v=2", "sizes": "192x192", "type": "image/png", "purpose": "any" },
|
||||
{ "src": "logo.png?v=2", "sizes": "512x512", "type": "image/png", "purpose": "any" },
|
||||
{ "src": "logo-maskable-192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" },
|
||||
{ "src": "logo-maskable-512.png?v=2", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,13 +67,15 @@ header {
|
|||
instead of bumping the toggle onto its own line. */
|
||||
.brand > div:not(.unit-toggle):not(.acct) { flex: 1 1 0; min-width: 0; }
|
||||
.logo {
|
||||
color: var(--accent);
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.logo svg { width: 28px; height: 28px; display: block; }
|
||||
h1 { margin: 0; font-size: 22px; letter-spacing: -0.02em; }
|
||||
/* Brand wordmark: lowercase beside the mark; 650 resolves to the nearest
|
||||
installed weight of the system stack (no webfonts). */
|
||||
.brand h1 { text-transform: lowercase; font-weight: 650; }
|
||||
.tag { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
|
||||
/* Compact header (e.g. Calendar): no tagline, roughly half the height.
|
||||
Only the vertical padding is trimmed so the responsive side padding stands. */
|
||||
|
|
|
|||
|
|
@ -11,14 +11,17 @@
|
|||
<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:url" content="__ORIGIN__/alerts" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png" />
|
||||
<meta property="og:image" content="__ORIGIN__/logo.png?v=2" />
|
||||
<meta property="og:image:width" content="512" />
|
||||
<meta property="og:image:height" content="512" />
|
||||
<meta property="og:image:alt" content="Thermograph logo" />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<link rel="canonical" href="__ORIGIN__/alerts" />
|
||||
<link rel="icon" href="logo.svg" type="image/svg+xml" />
|
||||
<link rel="apple-touch-icon" href="logo.png" />
|
||||
<link rel="icon" href="favicon.svg" type="image/svg+xml" />
|
||||
<link rel="icon" href="favicon-48.png" type="image/png" sizes="48x48" />
|
||||
<link rel="icon" href="favicon-32.png" type="image/png" sizes="32x32" />
|
||||
<link rel="icon" href="favicon-16.png" type="image/png" sizes="16x16" />
|
||||
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
||||
<link rel="manifest" href="manifest.webmanifest" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||
<link rel="stylesheet" href="style.css" />
|
||||
|
|
@ -26,7 +29,7 @@
|
|||
<body>
|
||||
<header>
|
||||
<div class="brand">
|
||||
<span class="logo"><svg viewBox="116 116 280 280" width="28" height="28" aria-hidden="true"><rect x="116" y="116" width="134" height="134" rx="20" fill="currentColor"/><rect x="262" y="262" width="134" height="134" rx="20" fill="currentColor"/></svg></span>
|
||||
<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>
|
||||
<div>
|
||||
<h1>Thermograph · Alerts</h1>
|
||||
<p class="tag">Get notified when a city's weather passes the percentile you set</p>
|
||||
|
|
|
|||