fix(#608): rebrand web identity (title, description, OG tags, icons)

The web/ scaffold was never rebranded when the app was renamed to Offband,
so link previews of offband.app rendered the Flutter template defaults
(title "meshcore_open", description "A new Flutter project.") and every
icon under web/ was still the stock Flutter logo.

Text:
- title "Offband Meshcore", real description, apple title "Offband"
- manifest name/short_name/description
- theme_color and background_color from #0175C2 to the brand surface
  #0F1412, matching the icon background so the PWA splash is seamless

Link previews (there were no OG tags at all, hence the bare grey card):
- og:type/site_name/title/description/url/image plus explicit dimensions
- twitter:card summary_large_image with explicit twitter:* equivalents
- og-banner.png is 1200x630, the canonical OG ratio

Artwork, regenerated from offband-icon.png:
- Icon-192/512 straight downscale
- maskable variants re-inset so the furthest content pixel sits at 38% of
  width from centre, inside the 40% safe zone Android guarantees
- favicon.png and favicon.svg from offband-site, plus a multi-resolution
  favicon.ico for agents that ignore icon link tags

Brand assets are copied into web/ rather than hot-linked to offband.org so
the client page carries no cross-origin dependency.

Verified through the CI build path (dart run build_pipe:build): the
cache-bust rewrite preserves every new tag, and all assets ship.

Agent: EmeraldTower (session 7c8d69ef)
fix/652-release-prerelease-flag
Strycher 1 month ago
parent 06f7e347fd
commit 4cc4e0022f

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 917 B

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="Offband"><rect width="64" height="64" rx="14" fill="#0F1412"/><g transform="translate(2.1 -5.1) scale(1.03)"><path d="M29.5 26.1 A12 12 0 1 0 39.7 35.3" fill="none" stroke="#4DC580" stroke-width="2.4" stroke-linecap="round"/><path d="M30.3 19.1 A19 19 0 1 0 46.5 33.7" fill="none" stroke="#4DC580" stroke-width="2.4" stroke-linecap="round" opacity="0.5"/><circle cx="28" cy="38" r="3.6" fill="#7BEFA8"/><circle cx="46.1" cy="17.9" r="3" fill="#7BEFA8"/></g></svg>

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 34 KiB

@ -18,18 +18,37 @@
<meta charset="UTF-8">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<meta name="description" content="A new Flutter project.">
<meta name="description" content="Open-source MeshCore client for LoRa mesh radios. Direct and channel chat, live node map, and repeater administration over Bluetooth, USB, or TCP.">
<meta name="theme-color" content="#0F1412">
<!-- iOS meta tags & icons -->
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="meshcore_open">
<meta name="apple-mobile-web-app-title" content="Offband">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="favicon.svg"/>
<link rel="icon" type="image/png" href="favicon.png"/>
<link rel="shortcut icon" href="favicon.ico"/>
<title>meshcore_open</title>
<!-- Link previews (Open Graph / Twitter) -->
<meta property="og:type" content="website">
<meta property="og:site_name" content="Offband">
<meta property="og:title" content="Offband Meshcore">
<meta property="og:description" content="Open-source MeshCore client for LoRa mesh radios. Direct and channel chat, live node map, and repeater administration over Bluetooth, USB, or TCP.">
<meta property="og:url" content="https://offband.app/">
<meta property="og:image" content="https://offband.app/og-banner.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="The Offband wordmark and signal mark on a dark background.">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Offband Meshcore">
<meta name="twitter:description" content="Open-source MeshCore client for LoRa mesh radios. Direct and channel chat, live node map, and repeater administration over Bluetooth, USB, or TCP.">
<meta name="twitter:image" content="https://offband.app/og-banner.png">
<meta name="twitter:image:alt" content="The Offband wordmark and signal mark on a dark background.">
<title>Offband Meshcore</title>
<link rel="manifest" href="manifest.json">
</head>
<body>

@ -1,11 +1,11 @@
{
"name": "meshcore_open",
"short_name": "meshcore_open",
"name": "Offband Meshcore",
"short_name": "Offband",
"start_url": ".",
"display": "standalone",
"background_color": "#0175C2",
"theme_color": "#0175C2",
"description": "A new Flutter project.",
"background_color": "#0F1412",
"theme_color": "#0F1412",
"description": "Open-source MeshCore client for LoRa mesh radios. Direct and channel chat, live node map, and repeater administration over Bluetooth, USB, or TCP.",
"orientation": "portrait-primary",
"prefer_related_applications": false,
"icons": [

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Loading…
Cancel
Save

Powered by TurnKey Linux.