Design GIS Chain Search Bento 2026 05 06
GIS UI design research — chain search + bento box (2026-05-06)
Two interface patterns shipped in the GIS map sprint: a retailer chain search/highlight and a restructured cluster inspector (bento box). Both address the same operator need — making the map legible as a lookup tool, not only as an exploration surface.
1. Chain search (light-up filter)
Problem
A map showing 4,237 undifferentiated clusters gives no way to isolate brand-level pattern without clicking every cluster. Density is visible at overview zoom; brand coverage is not.
Solution
A typeahead input in the panel header filters by brand name. Matching clusters glow amber with a ring; all others dim to 10% opacity.
Interaction flow:
- Type a brand name → dropdown shows canonical names matching the string
- Select →
activeChainFilterset,reapplyChainHighlight()fires - All clusters containing a matching location (in
hw_listorwh_list) receive full opacity and an amber stroke ring - Non-matching clusters dim to 10% opacity
×button clears the filter and restores uniform display
Implementation pattern
The filter evaluates MapLibre's ['in', chainId, ['get', 'hw_list']]
expression — a substring match against the JSON-encoded array stored in
the tile property. No tile reload; no API call; purely paint-layer
manipulation.
A dedicated nodes-highlight layer (circle, amber stroke, no fill)
toggles visible/hidden. This leaves the base nodes layer color logic
unmodified.
Key data structures:
CHAIN_DISPLAY_NAMESmaps chain IDs to display names ("home-depot-ca"→"Home Depot")BRAND_CHAINSreverses the map:"Home Depot"→ all regional chain IDs- The filter expression checks all chain IDs for a brand in a single
['any', ...]expression
Design tokens needed
--color-highlight-amber:#F59E0B(ring stroke on matching clusters)--opacity-dim:0.10(non-matching clusters)--opacity-active:0.88(matching clusters)- Typeahead dropdown: inherits panel surface token; 180 px max-height; scrollable
Open question oq-1: Should clearing the filter also reset the inspector panel to overview mode, or should the panel retain the last-clicked cluster state?
2. Bento box information hierarchy
Problem
The original inspector panel led with raw data (score, tier) before establishing geographic context. An operator viewing an unfamiliar cluster had no immediate orientation before encountering a numeric grade.
Operator brief
"Region Market first, then Market Grade and Co-location Score, then Anchor Location, then Nearby Services, then Retailer Info at the bottom."
Revised hierarchy
1. Market Region — geographic anchor (bold, brand-primary navy)
2. Market Grade · Score — tier badge + score_final / 1000 (flex row)
3. Anchor Location — primary retail node (pill + sub-entities)
4. Co-Tenants — HW + WH chain pills
5. Nearby Services — medical / academic counts
6. sel-el block — cycling selected-element detail
The sel-el block inverts the usual "inspector leads with the clicked
item" convention. The cluster's grade and anchor are always the primary
read; individual element detail is secondary context. This reflects the
operator's workflow: grade and anchor first, then drill into any dot.
Open question oq-2: On mobile, the sel-el block competes for
vertical space with the cluster-level content. A tab bar (Cluster /
Selected) may be preferable to a stacked layout on narrow viewports.
Component extraction candidates
Two components identified as reusable across PointSav surfaces beyond GIS:
cluster-grade-marker — tier badge (T3/T2/T1) and score display.
Currently inline HTML inside showClusterDetail(). Suitable for list
views, export tables, and print layouts.
location-info-card — the inspector panel. Currently a <div id="inspector"> with inline innerHTML. Should be a structured
component with named slots: region, grade, anchor, co-tenants,
services, element-detail. Slot-based design makes the component usable
without GIS-specific data.
Both components are candidates for dtcg-vault/components/ once the
open questions above are resolved and a cross-surface use case is
confirmed.
Important Information
Design System disclosure
This site provides open-source design tokens, documentation, and self-hostable software published by Woodfine Capital Projects Inc. Information here is for general reference only and does not constitute an offer, warranty, or a guarantee of fitness for any particular purpose. Statements regarding planned, intended, or targeted future features are forward-looking and subject to change without notice; they are not undertaken to be updated except as required by law.