0.2.3: the install icon keeps the 0.2.x mint rook (the owner's choice), refined: a narrower tower, lighter base and more padding so it sits well among launcher icons; manifest sizes, maskable and favicons re-exported (the ICO keeps its transparent mask)
This commit is contained in:
1 parent
9042125430
commit
9ec84f36a0
16 files changed
+95
-31
No files matched your search
+15
-10
@@ -8,15 +8,17 @@ The original project icons below are shipped static files, not downloaded game a
|
||||
|
||||
## Original project application icons (#413)
|
||||
|
||||
`public/icons/app.svg` is the original vector master for the **卫戍协议 series**, independent of any season.
|
||||
Three battlements lead into a shield-shaped wall around one square tactical cell: defending a position on a board.
|
||||
The only colours are charcoal `#242424` and off-white `#f2f2f2`; the mark contains no text, gradients or fine texture.
|
||||
It contains no 「盟约」 lettering, Alliance badge or season-exclusive colours / elements.
|
||||
By the maintainer's revised decision of 2026-10-10, **沿用 0.2.x 的薄荷绿城堡并精修**.
|
||||
`public/icons/app.svg` retains the existing mint rook's three battlements, inset tower and splayed base.
|
||||
The selected refinement (B) narrows the tower, balances the battlements, reduces the base thickness and adds breathing
|
||||
room. On the 512 px canvas the mark spans x=128–384 and y=88–424; the tower is 176 px wide and the base is 32 px thick.
|
||||
The original colours remain mint `#4ed8af` and dark `#0c0f0e`, with no text, gradients, gloss or texture.
|
||||
|
||||
**Originality statement (2026-10-10):** the SVG geometry was drawn from basic rectangles and polygons for this
|
||||
project. No official logo, artwork, icon or font was used, downloaded, embedded, traced or redrawn to make it.
|
||||
**Provenance / originality statement (2026-10-10):** this is a proportion refinement of this project's existing
|
||||
`public/icons/app.svg` from before `ba5b998a`, expressed as basic rectangles and polygons.
|
||||
No official logo, artwork, icon or font was used, downloaded, embedded, traced or redrawn for this refinement.
|
||||
The vector and exports are project-owned work under the repository's GPL-3.0-or-later licence, separate from the
|
||||
Hypergryph / Yostar game assets below. The abstract fortification / tactical-board idea does not assert official branding.
|
||||
Hypergryph / Yostar game assets below. The castle mark does not assert official branding.
|
||||
|
||||
Rebuild offline with Python 3 and Pillow (the same image library used by local-extract):
|
||||
|
||||
@@ -28,6 +30,8 @@ python3 tools/export-app-icons.py --out /tmp/stronghold-icons
|
||||
|
||||
The script reads only the master SVG's flat rectangle / polygon geometry, renders at 8× and downsamples; unsupported
|
||||
SVG elements fail rather than silently disappearing. It needs no game art, fonts, browser or network.
|
||||
ICO frames use the same native-size renders as the PNG favicons, with explicit 24-bit DIBs and opaque 1-bit masks
|
||||
whose rows are padded to 4 bytes. This avoids malformed transparency masks in Pillow's RGB ICO export.
|
||||
|
||||
| Files in `public/icons/` | Use |
|
||||
|---|---|
|
||||
@@ -37,7 +41,7 @@ SVG elements fail rather than silently disappearing. It needs no game art, fonts
|
||||
| `apple-touch-icon.png` | 180 px home-screen icon |
|
||||
| `app.svg` | Scalable favicon and editable source |
|
||||
|
||||
The maskable mark is scaled to 87.5% around the canvas centre. Its outermost vertex is about 34.8% of the canvas
|
||||
The maskable mark is scaled to 87.5% around the canvas centre. Its outermost vertex is about 36.1% of the canvas
|
||||
width from that centre; even antialiased edge pixels stay inside the **40%-radius safe circle** specified by
|
||||
[Web Application Manifest §2.3](https://www.w3.org/TR/appmanifest/#icon-masks).
|
||||
The background remains opaque to every edge; launcher masks may remove the background outside the safe zone.
|
||||
@@ -46,8 +50,9 @@ favicons and Apple icon; `public/manifest.json` lists all four install icons. Al
|
||||
and included by the full and lite package allowlist; no changes to `data/assets.json` are needed.
|
||||
|
||||
`test/ui/pwa-install-023.test.js` checks decoded pixels, mask safety and references; `test/package.test.js` checks
|
||||
packaging inclusion. The local handoff holds old/new light/dark, small-size and phone-layout previews with their
|
||||
render script. These are offline review renders, not evidence of browser or native OS installation.
|
||||
packaging inclusion. The local handoff `claude-review-023/icon-v2/` holds the original and A/B/C SVGs, light/dark
|
||||
256 px and 16/32/48/96 px comparisons, and phone-layout / mask previews with their render script.
|
||||
These are offline review renders, not evidence of browser or native OS installation.
|
||||
|
||||
## Running
|
||||
|
||||
|
||||
@@ -115,8 +115,11 @@ refused recovery can return to the previous identity and nickname. It does not i
|
||||
Without BroadcastChannel it refuses shared recovery. Server restart / expiry clears
|
||||
obsolete metadata on the next welcome. A spectator never registers a recoverable player seat.
|
||||
|
||||
`manifest.json` enables browser installation. The original season-independent fortress / shield mark in
|
||||
`public/icons/app.svg` uses neutral greys and no official art, logos, icons, fonts or season-specific insignia.
|
||||
`manifest.json` enables browser installation. The maintainer's revised decision of 2026-10-10 is to
|
||||
**沿用 0.2.x 的薄荷绿城堡并精修**: `public/icons/app.svg` keeps the existing three-battlement rook, inset tower
|
||||
and splayed base in mint `#4ed8af` on dark `#0c0f0e`. Refinement B narrows the tower, balances the battlements,
|
||||
thins the base and increases breathing room. It has no lettering, gradients or gloss and uses no official art,
|
||||
logos, icons or fonts.
|
||||
`tools/export-app-icons.py` exports 192/512 px PNGs for `any` and separate opaque `maskable` icons: the latter scale
|
||||
only the mark to 87.5%, keeping every foreground pixel inside the central circle of radius 40% of the canvas.
|
||||
The same master supplies 16/32/48 px PNG / ICO favicons and the 180 px Apple touch icon linked from `index.html`.
|
||||
|
||||
+12
-4
@@ -275,19 +275,27 @@ Based on @Cromemadnd's proposal, with a one-use install controller. Buttons appe
|
||||
standalone/fullscreen and installed sessions hide them. Accept, dismiss, failure and duplicate clicks all consume the
|
||||
same offer once. See [the prompt API](https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent/prompt)
|
||||
and [installability requirements](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable).
|
||||
The 2026-10-10 icon revision replaces the previous mint rook with an original, season-independent fortress / shield
|
||||
and defended square. Its neutral grey palette and geometry use no official logos, artwork, icons or fonts and no
|
||||
Alliance lettering or seasonal insignia. `public/icons/app.svg` is the master; `tools/export-app-icons.py` exports
|
||||
The maintainer revised the icon direction on 2026-10-10: **沿用 0.2.x 的薄荷绿城堡并精修**.
|
||||
The selected B refinement keeps the previous mint rook's three battlements, inset tower and splayed base,
|
||||
with a narrower tower, balanced battlements, thinner base and more breathing room. It retains mint `#4ed8af`
|
||||
on dark `#0c0f0e`, without text, gradients, gloss or official logos, artwork, icons or fonts.
|
||||
The source is the project's `public/icons/app.svg` from before `ba5b998a`; the local `icon-v2` review includes
|
||||
the original and A/B/C proposals at large and small sizes, on light/dark backgrounds and simulated home screens.
|
||||
`public/icons/app.svg` is the selected B master; `tools/export-app-icons.py` exports
|
||||
192/512 px `any` and separate opaque `maskable` PNGs (the mark stays inside the central 40%-radius safe circle),
|
||||
16/32/48 px PNG / ICO favicons and a 180 px Apple touch icon. All ship outside optional game art, including lite
|
||||
packages. See ASSETS.md for the source, reproduction command and originality statement.
|
||||
The offline revision also corrects the ICO writer's transparency masks: each 16/32/48 px frame now uses its own
|
||||
native-size render and 4-byte-aligned opaque mask rows. Decoding previously exposed transparent holes in the 48 px
|
||||
frame; the regression checks mask layout / opacity and compares every ICO colour pixel with its PNG counterpart.
|
||||
No service worker or offline cache is installed; the server is still required.
|
||||
The lobby keeps Settings immediately before How to Play even when the optional install/recovery buttons appear;
|
||||
the full browser run caught and corrected an initial insertion between that established pair.
|
||||
The settings-entry check tests the absent board-style/background-music option labels, allowing the text-size help
|
||||
to explain that the board keeps its scale.
|
||||
|
||||
Tests: offer lifecycle/disposal, decoded PNG dimensions / opacity / maskable safe zone, favicon references and packaging inclusion.
|
||||
Tests: offer lifecycle/disposal, decoded PNG dimensions / opacity / mint palette / maskable safe zone,
|
||||
three distinct battlements and an inset tower at 16/32/48 px, favicon references and packaging inclusion.
|
||||
The initial feature also had real Chrome manifest and installability checks, and a synthetic
|
||||
dismissed offer through the actual button. Initial incognito rejection was a test-environment limitation; the real
|
||||
installability check runs in Chrome's ordinary temporary profile. Native OS installation itself is not performed.
|
||||
|
||||
Reference in new issue
Block a user