- app/static/index.html: single-file app — DOM/CSS/stack engine ported
verbatim from reference/mockup-001-fidelity.html (DEPTH/SC/TY/DIM, drag/
fly/undo, one .topcard, no-lock commits, stamps, dossier sheet,
pull-to-close, empty state); production deltas only (UI-SPEC §7): deck
buffer + cursor refill (40/page), optimistic swipe persistence with
2s/5s/10s/15s retry queue + toast, badge-once-per-session, real list
filters + search (server-side), real Matches screen, /img/{id} everywhere
with placeholder fallback, SW registration, safe areas, desktop centering
- manifest.json + sw.js (precache shell, network-first API, cache-first imgs)
- icons: 192/512/maskable/apple-touch-180, dark tile with the brand
accent-gradient mark (Pillow)
- app/imgfetch.py: local mirror, hunt's Chrome-120 UA, ~1s pacing,
skip-existing, .part writes atomic, per-item failure isolation,
fetched/skipped/failed summary; verified: --limit 15 -> 15 fetched, full
run 5 more, re-run 0 fetched 20 skipped (20/20 mirrored)
29 lines
626 B
JSON
29 lines
626 B
JSON
{
|
|
"name": "Bike-Tinder",
|
|
"short_name": "Bike-Tinder",
|
|
"description": "Swipe through Nova Scotia and New Brunswick motorcycle listings.",
|
|
"start_url": "/",
|
|
"scope": "/",
|
|
"display": "standalone",
|
|
"background_color": "#0b0b0e",
|
|
"theme_color": "#0b0b0e",
|
|
"icons": [
|
|
{
|
|
"src": "/icons/icon-192.png",
|
|
"sizes": "192x192",
|
|
"type": "image/png"
|
|
},
|
|
{
|
|
"src": "/icons/icon-512.png",
|
|
"sizes": "512x512",
|
|
"type": "image/png"
|
|
},
|
|
{
|
|
"src": "/icons/icon-512-maskable.png",
|
|
"sizes": "512x512",
|
|
"type": "image/png",
|
|
"purpose": "maskable"
|
|
}
|
|
]
|
|
}
|