Switch the choropleth from heartbeat-red to the greyscale ramp
Some checks are pending
build-gate / build (push) Waiting to run

Driver ruling: "instead of the red, we need to use the grey scale from grey
to black." The greyscale preset was built earlier at his request as a
swappable alternative; this is him taking the swap.

One config key moves both the choropleth and its legend together, which is
why it was built as config rather than scattered hex. Ramp is
#e8e8e8 / #a9a9a9 / #6f6f6f / #3a3a3a / #060606.

Verified in the shipped bundle: colorRamp "greyscale", the five stops
present, sfc-parse passes.

Worth knowing for the follow-up: the colour research measured the ramp
change as roughly neutral for pin visibility (worst case 1.96 greyscale vs
1.84 red). The real fix for pin contrast is the lightness-conditional stroke
-- dark ring under a light pin, white under a dark one -- which lifts the
worst case to 4.51 and works on either ramp. Not done here; that is its own
change.
This commit is contained in:
doxa-maps-88655c70 2026-09-23 19:57:08 +00:00
parent d01951bdd6
commit 02baa2d42b
8 changed files with 19 additions and 11 deletions

View file

@ -358,7 +358,15 @@ export default {
// 'greyscale' is the Driver's requested swappable alternative ("grey scale as a backdrop
// from grey to black, just in case I need to swap from red to black scale") — set this to
// 'greyscale' to swap the whole choropleth, legend included, with no other edit required.
colorRamp: 'heartbeat-red',
// ★ SWITCHED TO GREYSCALE 2026-09-23 on the Driver's ruling: "instead of the red, we need to
// use the grey scale from grey to black". He had asked for this preset to exist earlier as a
// swappable alternative; this is him taking the swap. One key, and the choropleth AND its
// legend both move — which is why it was built as config rather than scattered hex.
// The ramp is ['#e8e8e8','#a9a9a9','#6f6f6f','#3a3a3a','#060606'] (DashboardMapPanel.vue:467),
// measured worst-case pin visibility 1.96 vs red's 1.84 — see
// _qa-cycle/01-ideation-research/RESEARCH-map-colour-system-2026-09-23.md, which also notes
// the real fix for pin contrast is the lightness-conditional STROKE, independent of the ramp.
colorRamp: 'greyscale',
},
// ── charts ── (DashboardChartsRail)

File diff suppressed because one or more lines are too long

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
<script src="../../dashboard-plus-grid.js" integrity="sha384-tuxsA7/uAliDjcm0nKMy1ERDb/quhsf0erb9ZVW2wRKH5gQg9zBqcso3Byd3V81H" crossorigin="anonymous"></script>
<script src="../../dashboard-plus-grid.js" integrity="sha384-iEzO2owJW+rtpMu0Q/TCdLWh4GPVkUcJFyHHtmGKwSiaVJOa0Mtle3M/AEQJJm0E" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
<script src="../dashboard-plus-grid.js" integrity="sha384-tuxsA7/uAliDjcm0nKMy1ERDb/quhsf0erb9ZVW2wRKH5gQg9zBqcso3Byd3V81H" crossorigin="anonymous"></script>
<script src="../dashboard-plus-grid.js" integrity="sha384-iEzO2owJW+rtpMu0Q/TCdLWh4GPVkUcJFyHHtmGKwSiaVJOa0Mtle3M/AEQJJm0E" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -193,7 +193,7 @@
"bundle": "dashboard-plus-grid",
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
"output": "doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js",
"integrity": "sha384-tuxsA7/uAliDjcm0nKMy1ERDb/quhsf0erb9ZVW2wRKH5gQg9zBqcso3Byd3V81H",
"integrity": "sha384-iEzO2owJW+rtpMu0Q/TCdLWh4GPVkUcJFyHHtmGKwSiaVJOa0Mtle3M/AEQJJm0E",
"elements": [
"dashboard-plus-grid"
],
@ -213,7 +213,7 @@
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
"embed": {
"iframe": "<iframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-tuxsA7/uAliDjcm0nKMy1ERDb/quhsf0erb9ZVW2wRKH5gQg9zBqcso3Byd3V81H\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-iEzO2owJW+rtpMu0Q/TCdLWh4GPVkUcJFyHHtmGKwSiaVJOa0Mtle3M/AEQJJm0E\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
},
"instances": [
{
@ -878,7 +878,7 @@
"bundle": "research-dashboard",
"scriptUrl": "./research-dashboard/research-dashboard.js",
"output": "doxa-maps/research-dashboard/research-dashboard.js",
"integrity": "sha384-iS3PX4DbqpmhbOhuy/6w6PffVqdX+8S59w0FB/LSd4EK35EwAZJqek8HJsBJRo0+",
"integrity": "sha384-unCdSEXmigfoEIKbn8CK0v8mUWgiheBFJUz3/nETrxtOEY2h/dIhCq9mjYMSeKWm",
"elements": [
"research-dashboard-map"
],
@ -894,7 +894,7 @@
"scriptUrl": "./research-dashboard/research-dashboard.js",
"embed": {
"iframe": "<iframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-iS3PX4DbqpmhbOhuy/6w6PffVqdX+8S59w0FB/LSd4EK35EwAZJqek8HJsBJRo0+\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-unCdSEXmigfoEIKbn8CK0v8mUWgiheBFJUz3/nETrxtOEY2h/dIhCq9mjYMSeKWm\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
},
"bundle": "research-dashboard"
}

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <research-dashboard-map> custom element. -->
<script src="../research-dashboard.js" integrity="sha384-iS3PX4DbqpmhbOhuy/6w6PffVqdX+8S59w0FB/LSd4EK35EwAZJqek8HJsBJRo0+" crossorigin="anonymous"></script>
<script src="../research-dashboard.js" integrity="sha384-unCdSEXmigfoEIKbn8CK0v8mUWgiheBFJUz3/nETrxtOEY2h/dIhCq9mjYMSeKWm" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order: