terminal-gallery-map-ui

Builds a 1,000-shipment live map canvas with Mapbox or MapLibre GL layers and a five-token greige design system.

Updated Jul 9, 2026
One-click install
npx skills add https://github.com/shuddl/shuddl-os --skill terminal-gallery-map-ui-shuddl
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: terminal-gallery-map-ui
Source: https://github.com/shuddl/shuddl-os/tree/main/.claude/skills/terminal-gallery-map-ui
Command: npx skills add https://github.com/shuddl/shuddl-os --skill terminal-gallery-map-ui-shuddl

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires maplibre-gl, mapbox-gl, and includes references (resource) and assets (resource) components.

What problem does it solve? Rendering roughly 1,000 live moving shipments on a shared operational map breaks naive approaches: DOM markers become unresponsive at scale, default basemap styles look generic, and ad-hoc colors fragment the UI across Command, Driver PWA, and Client Portal surfaces. ## Core Features & Use Cases - GL-layer architecture at scale: Renders every entity as GeoJSON features in combined circle/symbol layers with setFeatureState, clustering, and a throttled setData animation loop to hold 60fps desktop / 30fps mid-phone. - Three-tier state grammar: Encodes healthy, at-risk, and exception states through geometry, opacity, motion, and mono chips rather than new colors, including the exception world-dim that drops everything else to 35% opacity. - Custom greige basemap and design law: Ships a ready greige-style.json plus the five-token color, typography, and motion rules enforced by a squint-test CI audit. - Use Case: Build the Command surface map that shows the whole fleet as clustered red density, pulses an OS&D exception while dimming the rest of the world, and reuses the same entity contract scoped per lens for the Driver PWA and Client Portal. ## Quick Start Use the terminal-gallery-map-ui skill to build the operational fleet map rendering all live shipments with the greige basemap and the healthy, at-risk, and exception state grammar.

Frequently Asked Questions about terminal-gallery-map-ui

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I render 1,000 moving markers on a Mapbox or MapLibre map?▼

Use GL circle and symbol layers driven by GeoJSON sources instead of DOM Marker objects, which become unresponsive at that scale. Apply per-entity state with setFeatureState, cluster points when zoomed out, and update positions with a throttled setData around 20-30fps.

Mapbox GL JS vs MapLibre GL JS for a production map?▼

Ship the product with MapLibre GL JS plus self-hosted Protomaps or OpenFreeMap vector tiles to avoid third-party branding and support offline caching. Mapbox GL JS is acceptable for marketing pages or prototypes, and the same style, layers, and setFeatureState code ports between them.

Why does setFeatureState not work in layer filters or text-field?▼

Feature-state is paint-only in Mapbox and MapLibre; it cannot be read from layout properties, filters, sort keys, or cluster aggregation. Mirror status into feature properties for those uses and reserve feature-state for paint properties like opacity and stroke width.

How do I highlight one alert on a map without adding a new color?▼

Dim every other layer to 35% opacity or lower while the exception mark pulses at full saturation, so contrast rather than a new hue creates the alarm. Clusters exempt themselves via an aggregated maxStatus property since clusters have no feature-state.

Can a claude.ai Artifact use Mapbox or MapLibre tiles?▼

No, the Artifact CSP blocks external hosts, so tiles, CDN scripts, and remote fonts cannot load. For promo Artifacts use a self-contained inline SVG or canvas backdrop, and reserve real GL maps for hosted pages.

Why do custom map labels not show my brand font?▼

The text-font property resolves against the style's glyphs endpoint, and public tile providers only serve their own fonts. Self-host the font's glyph PBFs and point the glyphs URL at them to render on-brand mono labels on the map.