[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-mapbox-mapbox-cartography":3,"mdc--c2qqi-key":33,"related-repo-mapbox-mapbox-cartography":1927,"related-org-mapbox-mapbox-cartography":2026},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":31,"mdContent":32},"mapbox-cartography","apply cartographic design principles to Mapbox","Expert guidance on map design principles, color theory, visual hierarchy, typography, and cartographic best practices for creating effective and beautiful maps with Mapbox. Use when designing map styles, choosing colors, or making cartographic decisions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"mapbox","Mapbox","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmapbox.png",[12,14,17,20],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"Branding","branding",{"name":18,"slug":19,"type":13},"Typography","typography",{"name":21,"slug":22,"type":13},"Design","design",69,"https:\u002F\u002Fgithub.com\u002Fmapbox\u002Fmapbox-agent-skills","2026-04-06T18:28:41.2556",null,10,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":26},[],"https:\u002F\u002Fgithub.com\u002Fmapbox\u002Fmapbox-agent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fmapbox-cartography","---\nname: mapbox-cartography\ndescription: Expert guidance on map design principles, color theory, visual hierarchy, typography, and cartographic best practices for creating effective and beautiful maps with Mapbox. Use when designing map styles, choosing colors, or making cartographic decisions.\n---\n\n# Mapbox Cartography Skill\n\nThis skill provides expert cartographic knowledge to help you design effective, beautiful, and functional maps using Mapbox.\n\n## Core Cartographic Principles\n\n### Visual Hierarchy\n\nMaps must guide the viewer's attention to what matters most:\n\n- **Most important**: POIs, user location, route highlights\n- **Secondary**: Major roads, city labels, landmarks\n- **Tertiary**: Minor streets, administrative boundaries\n- **Background**: Water, land use, terrain\n\n**Implementation:**\n\n- Use size, color intensity, and contrast to establish hierarchy\n- Primary features: high contrast, larger symbols, bold colors\n- Background features: low contrast, muted colors, smaller text\n\n### Color Theory for Maps\n\n**Color Harmony:**\n\n- **Analogous colors**: Use colors next to each other on color wheel (blue-green-teal) for cohesive designs\n- **Complementary colors**: Use opposite colors (blue\u002Forange, red\u002Fgreen) for high contrast emphasis\n- **Monochromatic**: Single hue with varying saturation\u002Fbrightness for elegant, minimal designs\n\n**Color Psychology:**\n\n- **Blue**: Water, trust, calm, professional (default for water bodies)\n- **Green**: Parks, nature, growth, eco-friendly (vegetation, parks)\n- **Red\u002FOrange**: Urgent, important, dining (alerts, restaurants)\n- **Yellow**: Caution, highlight, attention (warnings, selected items)\n- **Gray**: Neutral, background, roads (infrastructure)\n\n**Accessibility:**\n\n- Ensure 4.5:1 contrast ratio for text (WCAG AA)\n- Don't rely solely on color to convey information\n- Test designs with colorblind simulators\n- Avoid red\u002Fgreen combinations for critical distinctions\n\n**Color Palette Templates:**\n\nLight Theme (Day\u002FProfessional):\n\n```json\n{\n  \"background\": \"#f5f5f5\",\n  \"water\": \"#a0c8f0\",\n  \"parks\": \"#d4e7c5\",\n  \"roads\": \"#ffffff\",\n  \"buildings\": \"#e0e0e0\",\n  \"text\": \"#333333\"\n}\n```\n\nDark Theme (Night Mode):\n\n```json\n{\n  \"background\": \"#1a1a1a\",\n  \"water\": \"#0d47a1\",\n  \"parks\": \"#2e7d32\",\n  \"roads\": \"#3a3a3a\",\n  \"buildings\": \"#2d2d2d\",\n  \"text\": \"#ffffff\"\n}\n```\n\n> **Road color rule for dark themes:** Roads must use neutral dark gray (`#3a3a3a`), visibly distinct from the background but not colored. Never style roads with amber, blue, or other hues — reserve color for app data layers (routes, markers). Colored base roads and colored data layers will compete visually. Local roads that blend into the background (`#1e1e1e` on `#1a1a1a`) create a \"floating labels\" problem where street names appear with no visible road beneath them.\n\nHigh Contrast (Accessibility):\n\n```json\n{\n  \"background\": \"#000000\",\n  \"water\": \"#0066ff\",\n  \"parks\": \"#00ff00\",\n  \"roads\": \"#ffffff\",\n  \"buildings\": \"#808080\",\n  \"text\": \"#ffffff\"\n}\n```\n\nVintage\u002FRetro:\n\n```json\n{\n  \"background\": \"#f4e8d0\",\n  \"water\": \"#b8d4d4\",\n  \"parks\": \"#c8d4a4\",\n  \"roads\": \"#d4c4a8\",\n  \"buildings\": \"#e4d4c4\",\n  \"text\": \"#4a3828\"\n}\n```\n\n### Typography at Map Scale\n\n**Font Selection:**\n\n- **Sans-serif** (Roboto, Open Sans): Modern, clean, high legibility at small sizes - use for labels\n- **Serif** (Noto Serif): Traditional, formal - use sparingly for titles or historic maps\n- **Monospace**: Technical data, coordinates\n\n**Text Sizing:**\n\n```\nPlace labels (cities, POIs): 11-14px\nStreet labels: 9-11px\nFeature labels (parks): 10-12px\nMap title: 16-20px\nAttribution: 8-9px\n```\n\n**Label Placement:**\n\n- Point labels: Center or slightly offset (avoid overlap with symbol)\n- Line labels: Follow line curve, repeat for long features\n- Area labels: Center in polygon, sized appropriately\n- Prioritize: Major features get labels first, minor features labeled if space allows\n\n### Zoom Level Strategy\n\n**Zoom 0-4** (World to Continent):\n\n- Major country boundaries\n- Ocean and sea labels\n- Capital cities only\n\n**Zoom 5-8** (Country to State):\n\n- State\u002Fprovince boundaries\n- Major cities\n- Major highways\n- Large water bodies\n\n**Zoom 9-11** (Metro Area):\n\n- City boundaries\n- Neighborhoods\n- All highways and major roads\n- Parks and landmarks\n\n**Zoom 12-15** (Neighborhood):\n\n- All streets\n- Building footprints\n- POIs (restaurants, shops)\n- Street names\n\n> **Note:** Mapbox's hosted Streets style defaults to showing most POIs around zoom 14. For custom styles, start POIs at zoom 12 — this is the neighborhood scale where density is manageable and users are browsing. Zoom 14 is late; zoom 10 (metro-area scale) is far too early and creates severe icon clutter.\n\n**Zoom 16-22** (Street Level):\n\n- All detail\n- House numbers\n- Parking lots\n- Fine-grained POIs\n\n## Mapbox-Specific Implementation Guidance\n\n### Style Layer Best Practices\n\n**Layer Ordering (bottom to top):**\n\n1. Background (solid color or pattern)\n2. Landuse (parks, residential, commercial)\n3. Water bodies (oceans, lakes, rivers)\n4. Terrain\u002Fhillshade (if using elevation)\n5. Buildings (3D or 2D footprints)\n6. Roads (highways → local streets)\n7. Borders (country, state lines)\n8. Labels (place names, street names)\n9. POI symbols\n10. User-generated content (routes, markers)\n\n> **Common mistake:** Developers often put their app's route line or active markers _below_ POI symbols, reasoning that \"POIs must stay visible.\" This is backwards — user-generated content (your route, selected location, user position) is the most important layer and must render above everything, including POIs. A route line that covers a POI icon is acceptable; a route obscured by POI icons is not.\n\n### Map Context Considerations\n\n**Know Your Audience:**\n\n- **General public**: Simplify, use familiar patterns (Google\u002FApple style)\n- **Technical users**: Include more detail, technical layers, data precision\n- **Domain experts**: Show specialized data, use domain-specific symbology\n\n**Platform Considerations:**\n\n- **Mobile**: Larger touch targets (44x44px minimum), simpler designs, readable at arm's length\n- **Desktop**: Can include more detail, hover interactions, complex overlays\n- **Print**: Higher contrast, larger text, consider CMYK color space\n- **Outdoor\u002FBright**: Higher contrast, avoid subtle grays\n\n**Use Case Optimization:**\n\n- **Navigation**: Emphasize roads, clear hierarchy, route visibility\n- **Data visualization**: Muted base map, let data stand out\n- **Storytelling**: Guide viewer attention, establish mood with colors\n- **Location selection**: Show POIs clearly, provide context\n- **Analysis**: Include relevant layers, maintain clarity at different zooms\n\n## Reference Files\n\nFor detailed guidance on specific topics, load these references as needed:\n\n- `references\u002Fscenarios.md` — Common scenario guidance (Restaurant Finder, Real Estate, Data Visualization, Navigation)\n- `references\u002Fperformance-testing.md` — Performance optimization, testing checklist, and common mistakes to avoid\n\n## When to Use This Skill\n\nInvoke this skill when:\n\n- Designing a new map style\n- Choosing colors for map elements\n- Making decisions about visual hierarchy\n- Optimizing for specific use cases\n- Troubleshooting visibility issues\n- Ensuring accessibility\n- Creating themed maps (dark mode, vintage, etc.)\n",{"data":34,"body":35},{"name":4,"description":6},{"type":36,"children":37},"root",[38,47,53,60,67,72,118,126,144,150,158,191,199,252,260,283,291,296,560,565,797,833,838,1069,1074,1307,1313,1321,1354,1362,1372,1380,1403,1409,1419,1437,1447,1470,1480,1503,1513,1536,1549,1559,1582,1588,1594,1602,1656,1677,1683,1691,1724,1732,1775,1783,1836,1842,1847,1872,1878,1883,1921],{"type":39,"tag":40,"props":41,"children":43},"element","h1",{"id":42},"mapbox-cartography-skill",[44],{"type":45,"value":46},"text","Mapbox Cartography Skill",{"type":39,"tag":48,"props":49,"children":50},"p",{},[51],{"type":45,"value":52},"This skill provides expert cartographic knowledge to help you design effective, beautiful, and functional maps using Mapbox.",{"type":39,"tag":54,"props":55,"children":57},"h2",{"id":56},"core-cartographic-principles",[58],{"type":45,"value":59},"Core Cartographic Principles",{"type":39,"tag":61,"props":62,"children":64},"h3",{"id":63},"visual-hierarchy",[65],{"type":45,"value":66},"Visual Hierarchy",{"type":39,"tag":48,"props":68,"children":69},{},[70],{"type":45,"value":71},"Maps must guide the viewer's attention to what matters most:",{"type":39,"tag":73,"props":74,"children":75},"ul",{},[76,88,98,108],{"type":39,"tag":77,"props":78,"children":79},"li",{},[80,86],{"type":39,"tag":81,"props":82,"children":83},"strong",{},[84],{"type":45,"value":85},"Most important",{"type":45,"value":87},": POIs, user location, route highlights",{"type":39,"tag":77,"props":89,"children":90},{},[91,96],{"type":39,"tag":81,"props":92,"children":93},{},[94],{"type":45,"value":95},"Secondary",{"type":45,"value":97},": Major roads, city labels, landmarks",{"type":39,"tag":77,"props":99,"children":100},{},[101,106],{"type":39,"tag":81,"props":102,"children":103},{},[104],{"type":45,"value":105},"Tertiary",{"type":45,"value":107},": Minor streets, administrative boundaries",{"type":39,"tag":77,"props":109,"children":110},{},[111,116],{"type":39,"tag":81,"props":112,"children":113},{},[114],{"type":45,"value":115},"Background",{"type":45,"value":117},": Water, land use, terrain",{"type":39,"tag":48,"props":119,"children":120},{},[121],{"type":39,"tag":81,"props":122,"children":123},{},[124],{"type":45,"value":125},"Implementation:",{"type":39,"tag":73,"props":127,"children":128},{},[129,134,139],{"type":39,"tag":77,"props":130,"children":131},{},[132],{"type":45,"value":133},"Use size, color intensity, and contrast to establish hierarchy",{"type":39,"tag":77,"props":135,"children":136},{},[137],{"type":45,"value":138},"Primary features: high contrast, larger symbols, bold colors",{"type":39,"tag":77,"props":140,"children":141},{},[142],{"type":45,"value":143},"Background features: low contrast, muted colors, smaller text",{"type":39,"tag":61,"props":145,"children":147},{"id":146},"color-theory-for-maps",[148],{"type":45,"value":149},"Color Theory for Maps",{"type":39,"tag":48,"props":151,"children":152},{},[153],{"type":39,"tag":81,"props":154,"children":155},{},[156],{"type":45,"value":157},"Color Harmony:",{"type":39,"tag":73,"props":159,"children":160},{},[161,171,181],{"type":39,"tag":77,"props":162,"children":163},{},[164,169],{"type":39,"tag":81,"props":165,"children":166},{},[167],{"type":45,"value":168},"Analogous colors",{"type":45,"value":170},": Use colors next to each other on color wheel (blue-green-teal) for cohesive designs",{"type":39,"tag":77,"props":172,"children":173},{},[174,179],{"type":39,"tag":81,"props":175,"children":176},{},[177],{"type":45,"value":178},"Complementary colors",{"type":45,"value":180},": Use opposite colors (blue\u002Forange, red\u002Fgreen) for high contrast emphasis",{"type":39,"tag":77,"props":182,"children":183},{},[184,189],{"type":39,"tag":81,"props":185,"children":186},{},[187],{"type":45,"value":188},"Monochromatic",{"type":45,"value":190},": Single hue with varying saturation\u002Fbrightness for elegant, minimal designs",{"type":39,"tag":48,"props":192,"children":193},{},[194],{"type":39,"tag":81,"props":195,"children":196},{},[197],{"type":45,"value":198},"Color Psychology:",{"type":39,"tag":73,"props":200,"children":201},{},[202,212,222,232,242],{"type":39,"tag":77,"props":203,"children":204},{},[205,210],{"type":39,"tag":81,"props":206,"children":207},{},[208],{"type":45,"value":209},"Blue",{"type":45,"value":211},": Water, trust, calm, professional (default for water bodies)",{"type":39,"tag":77,"props":213,"children":214},{},[215,220],{"type":39,"tag":81,"props":216,"children":217},{},[218],{"type":45,"value":219},"Green",{"type":45,"value":221},": Parks, nature, growth, eco-friendly (vegetation, parks)",{"type":39,"tag":77,"props":223,"children":224},{},[225,230],{"type":39,"tag":81,"props":226,"children":227},{},[228],{"type":45,"value":229},"Red\u002FOrange",{"type":45,"value":231},": Urgent, important, dining (alerts, restaurants)",{"type":39,"tag":77,"props":233,"children":234},{},[235,240],{"type":39,"tag":81,"props":236,"children":237},{},[238],{"type":45,"value":239},"Yellow",{"type":45,"value":241},": Caution, highlight, attention (warnings, selected items)",{"type":39,"tag":77,"props":243,"children":244},{},[245,250],{"type":39,"tag":81,"props":246,"children":247},{},[248],{"type":45,"value":249},"Gray",{"type":45,"value":251},": Neutral, background, roads (infrastructure)",{"type":39,"tag":48,"props":253,"children":254},{},[255],{"type":39,"tag":81,"props":256,"children":257},{},[258],{"type":45,"value":259},"Accessibility:",{"type":39,"tag":73,"props":261,"children":262},{},[263,268,273,278],{"type":39,"tag":77,"props":264,"children":265},{},[266],{"type":45,"value":267},"Ensure 4.5:1 contrast ratio for text (WCAG AA)",{"type":39,"tag":77,"props":269,"children":270},{},[271],{"type":45,"value":272},"Don't rely solely on color to convey information",{"type":39,"tag":77,"props":274,"children":275},{},[276],{"type":45,"value":277},"Test designs with colorblind simulators",{"type":39,"tag":77,"props":279,"children":280},{},[281],{"type":45,"value":282},"Avoid red\u002Fgreen combinations for critical distinctions",{"type":39,"tag":48,"props":284,"children":285},{},[286],{"type":39,"tag":81,"props":287,"children":288},{},[289],{"type":45,"value":290},"Color Palette Templates:",{"type":39,"tag":48,"props":292,"children":293},{},[294],{"type":45,"value":295},"Light Theme (Day\u002FProfessional):",{"type":39,"tag":297,"props":298,"children":303},"pre",{"className":299,"code":300,"language":301,"meta":302,"style":302},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"background\": \"#f5f5f5\",\n  \"water\": \"#a0c8f0\",\n  \"parks\": \"#d4e7c5\",\n  \"roads\": \"#ffffff\",\n  \"buildings\": \"#e0e0e0\",\n  \"text\": \"#333333\"\n}\n","json","",[304],{"type":39,"tag":305,"props":306,"children":307},"code",{"__ignoreMap":302},[308,320,365,403,441,479,517,551],{"type":39,"tag":309,"props":310,"children":313},"span",{"class":311,"line":312},"line",1,[314],{"type":39,"tag":309,"props":315,"children":317},{"style":316},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[318],{"type":45,"value":319},"{\n",{"type":39,"tag":309,"props":321,"children":323},{"class":311,"line":322},2,[324,329,335,340,345,350,356,360],{"type":39,"tag":309,"props":325,"children":326},{"style":316},[327],{"type":45,"value":328},"  \"",{"type":39,"tag":309,"props":330,"children":332},{"style":331},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[333],{"type":45,"value":334},"background",{"type":39,"tag":309,"props":336,"children":337},{"style":316},[338],{"type":45,"value":339},"\"",{"type":39,"tag":309,"props":341,"children":342},{"style":316},[343],{"type":45,"value":344},":",{"type":39,"tag":309,"props":346,"children":347},{"style":316},[348],{"type":45,"value":349}," \"",{"type":39,"tag":309,"props":351,"children":353},{"style":352},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[354],{"type":45,"value":355},"#f5f5f5",{"type":39,"tag":309,"props":357,"children":358},{"style":316},[359],{"type":45,"value":339},{"type":39,"tag":309,"props":361,"children":362},{"style":316},[363],{"type":45,"value":364},",\n",{"type":39,"tag":309,"props":366,"children":368},{"class":311,"line":367},3,[369,373,378,382,386,390,395,399],{"type":39,"tag":309,"props":370,"children":371},{"style":316},[372],{"type":45,"value":328},{"type":39,"tag":309,"props":374,"children":375},{"style":331},[376],{"type":45,"value":377},"water",{"type":39,"tag":309,"props":379,"children":380},{"style":316},[381],{"type":45,"value":339},{"type":39,"tag":309,"props":383,"children":384},{"style":316},[385],{"type":45,"value":344},{"type":39,"tag":309,"props":387,"children":388},{"style":316},[389],{"type":45,"value":349},{"type":39,"tag":309,"props":391,"children":392},{"style":352},[393],{"type":45,"value":394},"#a0c8f0",{"type":39,"tag":309,"props":396,"children":397},{"style":316},[398],{"type":45,"value":339},{"type":39,"tag":309,"props":400,"children":401},{"style":316},[402],{"type":45,"value":364},{"type":39,"tag":309,"props":404,"children":406},{"class":311,"line":405},4,[407,411,416,420,424,428,433,437],{"type":39,"tag":309,"props":408,"children":409},{"style":316},[410],{"type":45,"value":328},{"type":39,"tag":309,"props":412,"children":413},{"style":331},[414],{"type":45,"value":415},"parks",{"type":39,"tag":309,"props":417,"children":418},{"style":316},[419],{"type":45,"value":339},{"type":39,"tag":309,"props":421,"children":422},{"style":316},[423],{"type":45,"value":344},{"type":39,"tag":309,"props":425,"children":426},{"style":316},[427],{"type":45,"value":349},{"type":39,"tag":309,"props":429,"children":430},{"style":352},[431],{"type":45,"value":432},"#d4e7c5",{"type":39,"tag":309,"props":434,"children":435},{"style":316},[436],{"type":45,"value":339},{"type":39,"tag":309,"props":438,"children":439},{"style":316},[440],{"type":45,"value":364},{"type":39,"tag":309,"props":442,"children":444},{"class":311,"line":443},5,[445,449,454,458,462,466,471,475],{"type":39,"tag":309,"props":446,"children":447},{"style":316},[448],{"type":45,"value":328},{"type":39,"tag":309,"props":450,"children":451},{"style":331},[452],{"type":45,"value":453},"roads",{"type":39,"tag":309,"props":455,"children":456},{"style":316},[457],{"type":45,"value":339},{"type":39,"tag":309,"props":459,"children":460},{"style":316},[461],{"type":45,"value":344},{"type":39,"tag":309,"props":463,"children":464},{"style":316},[465],{"type":45,"value":349},{"type":39,"tag":309,"props":467,"children":468},{"style":352},[469],{"type":45,"value":470},"#ffffff",{"type":39,"tag":309,"props":472,"children":473},{"style":316},[474],{"type":45,"value":339},{"type":39,"tag":309,"props":476,"children":477},{"style":316},[478],{"type":45,"value":364},{"type":39,"tag":309,"props":480,"children":482},{"class":311,"line":481},6,[483,487,492,496,500,504,509,513],{"type":39,"tag":309,"props":484,"children":485},{"style":316},[486],{"type":45,"value":328},{"type":39,"tag":309,"props":488,"children":489},{"style":331},[490],{"type":45,"value":491},"buildings",{"type":39,"tag":309,"props":493,"children":494},{"style":316},[495],{"type":45,"value":339},{"type":39,"tag":309,"props":497,"children":498},{"style":316},[499],{"type":45,"value":344},{"type":39,"tag":309,"props":501,"children":502},{"style":316},[503],{"type":45,"value":349},{"type":39,"tag":309,"props":505,"children":506},{"style":352},[507],{"type":45,"value":508},"#e0e0e0",{"type":39,"tag":309,"props":510,"children":511},{"style":316},[512],{"type":45,"value":339},{"type":39,"tag":309,"props":514,"children":515},{"style":316},[516],{"type":45,"value":364},{"type":39,"tag":309,"props":518,"children":520},{"class":311,"line":519},7,[521,525,529,533,537,541,546],{"type":39,"tag":309,"props":522,"children":523},{"style":316},[524],{"type":45,"value":328},{"type":39,"tag":309,"props":526,"children":527},{"style":331},[528],{"type":45,"value":45},{"type":39,"tag":309,"props":530,"children":531},{"style":316},[532],{"type":45,"value":339},{"type":39,"tag":309,"props":534,"children":535},{"style":316},[536],{"type":45,"value":344},{"type":39,"tag":309,"props":538,"children":539},{"style":316},[540],{"type":45,"value":349},{"type":39,"tag":309,"props":542,"children":543},{"style":352},[544],{"type":45,"value":545},"#333333",{"type":39,"tag":309,"props":547,"children":548},{"style":316},[549],{"type":45,"value":550},"\"\n",{"type":39,"tag":309,"props":552,"children":554},{"class":311,"line":553},8,[555],{"type":39,"tag":309,"props":556,"children":557},{"style":316},[558],{"type":45,"value":559},"}\n",{"type":39,"tag":48,"props":561,"children":562},{},[563],{"type":45,"value":564},"Dark Theme (Night Mode):",{"type":39,"tag":297,"props":566,"children":568},{"className":299,"code":567,"language":301,"meta":302,"style":302},"{\n  \"background\": \"#1a1a1a\",\n  \"water\": \"#0d47a1\",\n  \"parks\": \"#2e7d32\",\n  \"roads\": \"#3a3a3a\",\n  \"buildings\": \"#2d2d2d\",\n  \"text\": \"#ffffff\"\n}\n",[569],{"type":39,"tag":305,"props":570,"children":571},{"__ignoreMap":302},[572,579,615,651,687,723,759,790],{"type":39,"tag":309,"props":573,"children":574},{"class":311,"line":312},[575],{"type":39,"tag":309,"props":576,"children":577},{"style":316},[578],{"type":45,"value":319},{"type":39,"tag":309,"props":580,"children":581},{"class":311,"line":322},[582,586,590,594,598,602,607,611],{"type":39,"tag":309,"props":583,"children":584},{"style":316},[585],{"type":45,"value":328},{"type":39,"tag":309,"props":587,"children":588},{"style":331},[589],{"type":45,"value":334},{"type":39,"tag":309,"props":591,"children":592},{"style":316},[593],{"type":45,"value":339},{"type":39,"tag":309,"props":595,"children":596},{"style":316},[597],{"type":45,"value":344},{"type":39,"tag":309,"props":599,"children":600},{"style":316},[601],{"type":45,"value":349},{"type":39,"tag":309,"props":603,"children":604},{"style":352},[605],{"type":45,"value":606},"#1a1a1a",{"type":39,"tag":309,"props":608,"children":609},{"style":316},[610],{"type":45,"value":339},{"type":39,"tag":309,"props":612,"children":613},{"style":316},[614],{"type":45,"value":364},{"type":39,"tag":309,"props":616,"children":617},{"class":311,"line":367},[618,622,626,630,634,638,643,647],{"type":39,"tag":309,"props":619,"children":620},{"style":316},[621],{"type":45,"value":328},{"type":39,"tag":309,"props":623,"children":624},{"style":331},[625],{"type":45,"value":377},{"type":39,"tag":309,"props":627,"children":628},{"style":316},[629],{"type":45,"value":339},{"type":39,"tag":309,"props":631,"children":632},{"style":316},[633],{"type":45,"value":344},{"type":39,"tag":309,"props":635,"children":636},{"style":316},[637],{"type":45,"value":349},{"type":39,"tag":309,"props":639,"children":640},{"style":352},[641],{"type":45,"value":642},"#0d47a1",{"type":39,"tag":309,"props":644,"children":645},{"style":316},[646],{"type":45,"value":339},{"type":39,"tag":309,"props":648,"children":649},{"style":316},[650],{"type":45,"value":364},{"type":39,"tag":309,"props":652,"children":653},{"class":311,"line":405},[654,658,662,666,670,674,679,683],{"type":39,"tag":309,"props":655,"children":656},{"style":316},[657],{"type":45,"value":328},{"type":39,"tag":309,"props":659,"children":660},{"style":331},[661],{"type":45,"value":415},{"type":39,"tag":309,"props":663,"children":664},{"style":316},[665],{"type":45,"value":339},{"type":39,"tag":309,"props":667,"children":668},{"style":316},[669],{"type":45,"value":344},{"type":39,"tag":309,"props":671,"children":672},{"style":316},[673],{"type":45,"value":349},{"type":39,"tag":309,"props":675,"children":676},{"style":352},[677],{"type":45,"value":678},"#2e7d32",{"type":39,"tag":309,"props":680,"children":681},{"style":316},[682],{"type":45,"value":339},{"type":39,"tag":309,"props":684,"children":685},{"style":316},[686],{"type":45,"value":364},{"type":39,"tag":309,"props":688,"children":689},{"class":311,"line":443},[690,694,698,702,706,710,715,719],{"type":39,"tag":309,"props":691,"children":692},{"style":316},[693],{"type":45,"value":328},{"type":39,"tag":309,"props":695,"children":696},{"style":331},[697],{"type":45,"value":453},{"type":39,"tag":309,"props":699,"children":700},{"style":316},[701],{"type":45,"value":339},{"type":39,"tag":309,"props":703,"children":704},{"style":316},[705],{"type":45,"value":344},{"type":39,"tag":309,"props":707,"children":708},{"style":316},[709],{"type":45,"value":349},{"type":39,"tag":309,"props":711,"children":712},{"style":352},[713],{"type":45,"value":714},"#3a3a3a",{"type":39,"tag":309,"props":716,"children":717},{"style":316},[718],{"type":45,"value":339},{"type":39,"tag":309,"props":720,"children":721},{"style":316},[722],{"type":45,"value":364},{"type":39,"tag":309,"props":724,"children":725},{"class":311,"line":481},[726,730,734,738,742,746,751,755],{"type":39,"tag":309,"props":727,"children":728},{"style":316},[729],{"type":45,"value":328},{"type":39,"tag":309,"props":731,"children":732},{"style":331},[733],{"type":45,"value":491},{"type":39,"tag":309,"props":735,"children":736},{"style":316},[737],{"type":45,"value":339},{"type":39,"tag":309,"props":739,"children":740},{"style":316},[741],{"type":45,"value":344},{"type":39,"tag":309,"props":743,"children":744},{"style":316},[745],{"type":45,"value":349},{"type":39,"tag":309,"props":747,"children":748},{"style":352},[749],{"type":45,"value":750},"#2d2d2d",{"type":39,"tag":309,"props":752,"children":753},{"style":316},[754],{"type":45,"value":339},{"type":39,"tag":309,"props":756,"children":757},{"style":316},[758],{"type":45,"value":364},{"type":39,"tag":309,"props":760,"children":761},{"class":311,"line":519},[762,766,770,774,778,782,786],{"type":39,"tag":309,"props":763,"children":764},{"style":316},[765],{"type":45,"value":328},{"type":39,"tag":309,"props":767,"children":768},{"style":331},[769],{"type":45,"value":45},{"type":39,"tag":309,"props":771,"children":772},{"style":316},[773],{"type":45,"value":339},{"type":39,"tag":309,"props":775,"children":776},{"style":316},[777],{"type":45,"value":344},{"type":39,"tag":309,"props":779,"children":780},{"style":316},[781],{"type":45,"value":349},{"type":39,"tag":309,"props":783,"children":784},{"style":352},[785],{"type":45,"value":470},{"type":39,"tag":309,"props":787,"children":788},{"style":316},[789],{"type":45,"value":550},{"type":39,"tag":309,"props":791,"children":792},{"class":311,"line":553},[793],{"type":39,"tag":309,"props":794,"children":795},{"style":316},[796],{"type":45,"value":559},{"type":39,"tag":798,"props":799,"children":800},"blockquote",{},[801],{"type":39,"tag":48,"props":802,"children":803},{},[804,809,811,816,818,824,826,831],{"type":39,"tag":81,"props":805,"children":806},{},[807],{"type":45,"value":808},"Road color rule for dark themes:",{"type":45,"value":810}," Roads must use neutral dark gray (",{"type":39,"tag":305,"props":812,"children":814},{"className":813},[],[815],{"type":45,"value":714},{"type":45,"value":817},"), visibly distinct from the background but not colored. Never style roads with amber, blue, or other hues — reserve color for app data layers (routes, markers). Colored base roads and colored data layers will compete visually. Local roads that blend into the background (",{"type":39,"tag":305,"props":819,"children":821},{"className":820},[],[822],{"type":45,"value":823},"#1e1e1e",{"type":45,"value":825}," on ",{"type":39,"tag":305,"props":827,"children":829},{"className":828},[],[830],{"type":45,"value":606},{"type":45,"value":832},") create a \"floating labels\" problem where street names appear with no visible road beneath them.",{"type":39,"tag":48,"props":834,"children":835},{},[836],{"type":45,"value":837},"High Contrast (Accessibility):",{"type":39,"tag":297,"props":839,"children":841},{"className":299,"code":840,"language":301,"meta":302,"style":302},"{\n  \"background\": \"#000000\",\n  \"water\": \"#0066ff\",\n  \"parks\": \"#00ff00\",\n  \"roads\": \"#ffffff\",\n  \"buildings\": \"#808080\",\n  \"text\": \"#ffffff\"\n}\n",[842],{"type":39,"tag":305,"props":843,"children":844},{"__ignoreMap":302},[845,852,888,924,960,995,1031,1062],{"type":39,"tag":309,"props":846,"children":847},{"class":311,"line":312},[848],{"type":39,"tag":309,"props":849,"children":850},{"style":316},[851],{"type":45,"value":319},{"type":39,"tag":309,"props":853,"children":854},{"class":311,"line":322},[855,859,863,867,871,875,880,884],{"type":39,"tag":309,"props":856,"children":857},{"style":316},[858],{"type":45,"value":328},{"type":39,"tag":309,"props":860,"children":861},{"style":331},[862],{"type":45,"value":334},{"type":39,"tag":309,"props":864,"children":865},{"style":316},[866],{"type":45,"value":339},{"type":39,"tag":309,"props":868,"children":869},{"style":316},[870],{"type":45,"value":344},{"type":39,"tag":309,"props":872,"children":873},{"style":316},[874],{"type":45,"value":349},{"type":39,"tag":309,"props":876,"children":877},{"style":352},[878],{"type":45,"value":879},"#000000",{"type":39,"tag":309,"props":881,"children":882},{"style":316},[883],{"type":45,"value":339},{"type":39,"tag":309,"props":885,"children":886},{"style":316},[887],{"type":45,"value":364},{"type":39,"tag":309,"props":889,"children":890},{"class":311,"line":367},[891,895,899,903,907,911,916,920],{"type":39,"tag":309,"props":892,"children":893},{"style":316},[894],{"type":45,"value":328},{"type":39,"tag":309,"props":896,"children":897},{"style":331},[898],{"type":45,"value":377},{"type":39,"tag":309,"props":900,"children":901},{"style":316},[902],{"type":45,"value":339},{"type":39,"tag":309,"props":904,"children":905},{"style":316},[906],{"type":45,"value":344},{"type":39,"tag":309,"props":908,"children":909},{"style":316},[910],{"type":45,"value":349},{"type":39,"tag":309,"props":912,"children":913},{"style":352},[914],{"type":45,"value":915},"#0066ff",{"type":39,"tag":309,"props":917,"children":918},{"style":316},[919],{"type":45,"value":339},{"type":39,"tag":309,"props":921,"children":922},{"style":316},[923],{"type":45,"value":364},{"type":39,"tag":309,"props":925,"children":926},{"class":311,"line":405},[927,931,935,939,943,947,952,956],{"type":39,"tag":309,"props":928,"children":929},{"style":316},[930],{"type":45,"value":328},{"type":39,"tag":309,"props":932,"children":933},{"style":331},[934],{"type":45,"value":415},{"type":39,"tag":309,"props":936,"children":937},{"style":316},[938],{"type":45,"value":339},{"type":39,"tag":309,"props":940,"children":941},{"style":316},[942],{"type":45,"value":344},{"type":39,"tag":309,"props":944,"children":945},{"style":316},[946],{"type":45,"value":349},{"type":39,"tag":309,"props":948,"children":949},{"style":352},[950],{"type":45,"value":951},"#00ff00",{"type":39,"tag":309,"props":953,"children":954},{"style":316},[955],{"type":45,"value":339},{"type":39,"tag":309,"props":957,"children":958},{"style":316},[959],{"type":45,"value":364},{"type":39,"tag":309,"props":961,"children":962},{"class":311,"line":443},[963,967,971,975,979,983,987,991],{"type":39,"tag":309,"props":964,"children":965},{"style":316},[966],{"type":45,"value":328},{"type":39,"tag":309,"props":968,"children":969},{"style":331},[970],{"type":45,"value":453},{"type":39,"tag":309,"props":972,"children":973},{"style":316},[974],{"type":45,"value":339},{"type":39,"tag":309,"props":976,"children":977},{"style":316},[978],{"type":45,"value":344},{"type":39,"tag":309,"props":980,"children":981},{"style":316},[982],{"type":45,"value":349},{"type":39,"tag":309,"props":984,"children":985},{"style":352},[986],{"type":45,"value":470},{"type":39,"tag":309,"props":988,"children":989},{"style":316},[990],{"type":45,"value":339},{"type":39,"tag":309,"props":992,"children":993},{"style":316},[994],{"type":45,"value":364},{"type":39,"tag":309,"props":996,"children":997},{"class":311,"line":481},[998,1002,1006,1010,1014,1018,1023,1027],{"type":39,"tag":309,"props":999,"children":1000},{"style":316},[1001],{"type":45,"value":328},{"type":39,"tag":309,"props":1003,"children":1004},{"style":331},[1005],{"type":45,"value":491},{"type":39,"tag":309,"props":1007,"children":1008},{"style":316},[1009],{"type":45,"value":339},{"type":39,"tag":309,"props":1011,"children":1012},{"style":316},[1013],{"type":45,"value":344},{"type":39,"tag":309,"props":1015,"children":1016},{"style":316},[1017],{"type":45,"value":349},{"type":39,"tag":309,"props":1019,"children":1020},{"style":352},[1021],{"type":45,"value":1022},"#808080",{"type":39,"tag":309,"props":1024,"children":1025},{"style":316},[1026],{"type":45,"value":339},{"type":39,"tag":309,"props":1028,"children":1029},{"style":316},[1030],{"type":45,"value":364},{"type":39,"tag":309,"props":1032,"children":1033},{"class":311,"line":519},[1034,1038,1042,1046,1050,1054,1058],{"type":39,"tag":309,"props":1035,"children":1036},{"style":316},[1037],{"type":45,"value":328},{"type":39,"tag":309,"props":1039,"children":1040},{"style":331},[1041],{"type":45,"value":45},{"type":39,"tag":309,"props":1043,"children":1044},{"style":316},[1045],{"type":45,"value":339},{"type":39,"tag":309,"props":1047,"children":1048},{"style":316},[1049],{"type":45,"value":344},{"type":39,"tag":309,"props":1051,"children":1052},{"style":316},[1053],{"type":45,"value":349},{"type":39,"tag":309,"props":1055,"children":1056},{"style":352},[1057],{"type":45,"value":470},{"type":39,"tag":309,"props":1059,"children":1060},{"style":316},[1061],{"type":45,"value":550},{"type":39,"tag":309,"props":1063,"children":1064},{"class":311,"line":553},[1065],{"type":39,"tag":309,"props":1066,"children":1067},{"style":316},[1068],{"type":45,"value":559},{"type":39,"tag":48,"props":1070,"children":1071},{},[1072],{"type":45,"value":1073},"Vintage\u002FRetro:",{"type":39,"tag":297,"props":1075,"children":1077},{"className":299,"code":1076,"language":301,"meta":302,"style":302},"{\n  \"background\": \"#f4e8d0\",\n  \"water\": \"#b8d4d4\",\n  \"parks\": \"#c8d4a4\",\n  \"roads\": \"#d4c4a8\",\n  \"buildings\": \"#e4d4c4\",\n  \"text\": \"#4a3828\"\n}\n",[1078],{"type":39,"tag":305,"props":1079,"children":1080},{"__ignoreMap":302},[1081,1088,1124,1160,1196,1232,1268,1300],{"type":39,"tag":309,"props":1082,"children":1083},{"class":311,"line":312},[1084],{"type":39,"tag":309,"props":1085,"children":1086},{"style":316},[1087],{"type":45,"value":319},{"type":39,"tag":309,"props":1089,"children":1090},{"class":311,"line":322},[1091,1095,1099,1103,1107,1111,1116,1120],{"type":39,"tag":309,"props":1092,"children":1093},{"style":316},[1094],{"type":45,"value":328},{"type":39,"tag":309,"props":1096,"children":1097},{"style":331},[1098],{"type":45,"value":334},{"type":39,"tag":309,"props":1100,"children":1101},{"style":316},[1102],{"type":45,"value":339},{"type":39,"tag":309,"props":1104,"children":1105},{"style":316},[1106],{"type":45,"value":344},{"type":39,"tag":309,"props":1108,"children":1109},{"style":316},[1110],{"type":45,"value":349},{"type":39,"tag":309,"props":1112,"children":1113},{"style":352},[1114],{"type":45,"value":1115},"#f4e8d0",{"type":39,"tag":309,"props":1117,"children":1118},{"style":316},[1119],{"type":45,"value":339},{"type":39,"tag":309,"props":1121,"children":1122},{"style":316},[1123],{"type":45,"value":364},{"type":39,"tag":309,"props":1125,"children":1126},{"class":311,"line":367},[1127,1131,1135,1139,1143,1147,1152,1156],{"type":39,"tag":309,"props":1128,"children":1129},{"style":316},[1130],{"type":45,"value":328},{"type":39,"tag":309,"props":1132,"children":1133},{"style":331},[1134],{"type":45,"value":377},{"type":39,"tag":309,"props":1136,"children":1137},{"style":316},[1138],{"type":45,"value":339},{"type":39,"tag":309,"props":1140,"children":1141},{"style":316},[1142],{"type":45,"value":344},{"type":39,"tag":309,"props":1144,"children":1145},{"style":316},[1146],{"type":45,"value":349},{"type":39,"tag":309,"props":1148,"children":1149},{"style":352},[1150],{"type":45,"value":1151},"#b8d4d4",{"type":39,"tag":309,"props":1153,"children":1154},{"style":316},[1155],{"type":45,"value":339},{"type":39,"tag":309,"props":1157,"children":1158},{"style":316},[1159],{"type":45,"value":364},{"type":39,"tag":309,"props":1161,"children":1162},{"class":311,"line":405},[1163,1167,1171,1175,1179,1183,1188,1192],{"type":39,"tag":309,"props":1164,"children":1165},{"style":316},[1166],{"type":45,"value":328},{"type":39,"tag":309,"props":1168,"children":1169},{"style":331},[1170],{"type":45,"value":415},{"type":39,"tag":309,"props":1172,"children":1173},{"style":316},[1174],{"type":45,"value":339},{"type":39,"tag":309,"props":1176,"children":1177},{"style":316},[1178],{"type":45,"value":344},{"type":39,"tag":309,"props":1180,"children":1181},{"style":316},[1182],{"type":45,"value":349},{"type":39,"tag":309,"props":1184,"children":1185},{"style":352},[1186],{"type":45,"value":1187},"#c8d4a4",{"type":39,"tag":309,"props":1189,"children":1190},{"style":316},[1191],{"type":45,"value":339},{"type":39,"tag":309,"props":1193,"children":1194},{"style":316},[1195],{"type":45,"value":364},{"type":39,"tag":309,"props":1197,"children":1198},{"class":311,"line":443},[1199,1203,1207,1211,1215,1219,1224,1228],{"type":39,"tag":309,"props":1200,"children":1201},{"style":316},[1202],{"type":45,"value":328},{"type":39,"tag":309,"props":1204,"children":1205},{"style":331},[1206],{"type":45,"value":453},{"type":39,"tag":309,"props":1208,"children":1209},{"style":316},[1210],{"type":45,"value":339},{"type":39,"tag":309,"props":1212,"children":1213},{"style":316},[1214],{"type":45,"value":344},{"type":39,"tag":309,"props":1216,"children":1217},{"style":316},[1218],{"type":45,"value":349},{"type":39,"tag":309,"props":1220,"children":1221},{"style":352},[1222],{"type":45,"value":1223},"#d4c4a8",{"type":39,"tag":309,"props":1225,"children":1226},{"style":316},[1227],{"type":45,"value":339},{"type":39,"tag":309,"props":1229,"children":1230},{"style":316},[1231],{"type":45,"value":364},{"type":39,"tag":309,"props":1233,"children":1234},{"class":311,"line":481},[1235,1239,1243,1247,1251,1255,1260,1264],{"type":39,"tag":309,"props":1236,"children":1237},{"style":316},[1238],{"type":45,"value":328},{"type":39,"tag":309,"props":1240,"children":1241},{"style":331},[1242],{"type":45,"value":491},{"type":39,"tag":309,"props":1244,"children":1245},{"style":316},[1246],{"type":45,"value":339},{"type":39,"tag":309,"props":1248,"children":1249},{"style":316},[1250],{"type":45,"value":344},{"type":39,"tag":309,"props":1252,"children":1253},{"style":316},[1254],{"type":45,"value":349},{"type":39,"tag":309,"props":1256,"children":1257},{"style":352},[1258],{"type":45,"value":1259},"#e4d4c4",{"type":39,"tag":309,"props":1261,"children":1262},{"style":316},[1263],{"type":45,"value":339},{"type":39,"tag":309,"props":1265,"children":1266},{"style":316},[1267],{"type":45,"value":364},{"type":39,"tag":309,"props":1269,"children":1270},{"class":311,"line":519},[1271,1275,1279,1283,1287,1291,1296],{"type":39,"tag":309,"props":1272,"children":1273},{"style":316},[1274],{"type":45,"value":328},{"type":39,"tag":309,"props":1276,"children":1277},{"style":331},[1278],{"type":45,"value":45},{"type":39,"tag":309,"props":1280,"children":1281},{"style":316},[1282],{"type":45,"value":339},{"type":39,"tag":309,"props":1284,"children":1285},{"style":316},[1286],{"type":45,"value":344},{"type":39,"tag":309,"props":1288,"children":1289},{"style":316},[1290],{"type":45,"value":349},{"type":39,"tag":309,"props":1292,"children":1293},{"style":352},[1294],{"type":45,"value":1295},"#4a3828",{"type":39,"tag":309,"props":1297,"children":1298},{"style":316},[1299],{"type":45,"value":550},{"type":39,"tag":309,"props":1301,"children":1302},{"class":311,"line":553},[1303],{"type":39,"tag":309,"props":1304,"children":1305},{"style":316},[1306],{"type":45,"value":559},{"type":39,"tag":61,"props":1308,"children":1310},{"id":1309},"typography-at-map-scale",[1311],{"type":45,"value":1312},"Typography at Map Scale",{"type":39,"tag":48,"props":1314,"children":1315},{},[1316],{"type":39,"tag":81,"props":1317,"children":1318},{},[1319],{"type":45,"value":1320},"Font Selection:",{"type":39,"tag":73,"props":1322,"children":1323},{},[1324,1334,1344],{"type":39,"tag":77,"props":1325,"children":1326},{},[1327,1332],{"type":39,"tag":81,"props":1328,"children":1329},{},[1330],{"type":45,"value":1331},"Sans-serif",{"type":45,"value":1333}," (Roboto, Open Sans): Modern, clean, high legibility at small sizes - use for labels",{"type":39,"tag":77,"props":1335,"children":1336},{},[1337,1342],{"type":39,"tag":81,"props":1338,"children":1339},{},[1340],{"type":45,"value":1341},"Serif",{"type":45,"value":1343}," (Noto Serif): Traditional, formal - use sparingly for titles or historic maps",{"type":39,"tag":77,"props":1345,"children":1346},{},[1347,1352],{"type":39,"tag":81,"props":1348,"children":1349},{},[1350],{"type":45,"value":1351},"Monospace",{"type":45,"value":1353},": Technical data, coordinates",{"type":39,"tag":48,"props":1355,"children":1356},{},[1357],{"type":39,"tag":81,"props":1358,"children":1359},{},[1360],{"type":45,"value":1361},"Text Sizing:",{"type":39,"tag":297,"props":1363,"children":1367},{"className":1364,"code":1366,"language":45},[1365],"language-text","Place labels (cities, POIs): 11-14px\nStreet labels: 9-11px\nFeature labels (parks): 10-12px\nMap title: 16-20px\nAttribution: 8-9px\n",[1368],{"type":39,"tag":305,"props":1369,"children":1370},{"__ignoreMap":302},[1371],{"type":45,"value":1366},{"type":39,"tag":48,"props":1373,"children":1374},{},[1375],{"type":39,"tag":81,"props":1376,"children":1377},{},[1378],{"type":45,"value":1379},"Label Placement:",{"type":39,"tag":73,"props":1381,"children":1382},{},[1383,1388,1393,1398],{"type":39,"tag":77,"props":1384,"children":1385},{},[1386],{"type":45,"value":1387},"Point labels: Center or slightly offset (avoid overlap with symbol)",{"type":39,"tag":77,"props":1389,"children":1390},{},[1391],{"type":45,"value":1392},"Line labels: Follow line curve, repeat for long features",{"type":39,"tag":77,"props":1394,"children":1395},{},[1396],{"type":45,"value":1397},"Area labels: Center in polygon, sized appropriately",{"type":39,"tag":77,"props":1399,"children":1400},{},[1401],{"type":45,"value":1402},"Prioritize: Major features get labels first, minor features labeled if space allows",{"type":39,"tag":61,"props":1404,"children":1406},{"id":1405},"zoom-level-strategy",[1407],{"type":45,"value":1408},"Zoom Level Strategy",{"type":39,"tag":48,"props":1410,"children":1411},{},[1412,1417],{"type":39,"tag":81,"props":1413,"children":1414},{},[1415],{"type":45,"value":1416},"Zoom 0-4",{"type":45,"value":1418}," (World to Continent):",{"type":39,"tag":73,"props":1420,"children":1421},{},[1422,1427,1432],{"type":39,"tag":77,"props":1423,"children":1424},{},[1425],{"type":45,"value":1426},"Major country boundaries",{"type":39,"tag":77,"props":1428,"children":1429},{},[1430],{"type":45,"value":1431},"Ocean and sea labels",{"type":39,"tag":77,"props":1433,"children":1434},{},[1435],{"type":45,"value":1436},"Capital cities only",{"type":39,"tag":48,"props":1438,"children":1439},{},[1440,1445],{"type":39,"tag":81,"props":1441,"children":1442},{},[1443],{"type":45,"value":1444},"Zoom 5-8",{"type":45,"value":1446}," (Country to State):",{"type":39,"tag":73,"props":1448,"children":1449},{},[1450,1455,1460,1465],{"type":39,"tag":77,"props":1451,"children":1452},{},[1453],{"type":45,"value":1454},"State\u002Fprovince boundaries",{"type":39,"tag":77,"props":1456,"children":1457},{},[1458],{"type":45,"value":1459},"Major cities",{"type":39,"tag":77,"props":1461,"children":1462},{},[1463],{"type":45,"value":1464},"Major highways",{"type":39,"tag":77,"props":1466,"children":1467},{},[1468],{"type":45,"value":1469},"Large water bodies",{"type":39,"tag":48,"props":1471,"children":1472},{},[1473,1478],{"type":39,"tag":81,"props":1474,"children":1475},{},[1476],{"type":45,"value":1477},"Zoom 9-11",{"type":45,"value":1479}," (Metro Area):",{"type":39,"tag":73,"props":1481,"children":1482},{},[1483,1488,1493,1498],{"type":39,"tag":77,"props":1484,"children":1485},{},[1486],{"type":45,"value":1487},"City boundaries",{"type":39,"tag":77,"props":1489,"children":1490},{},[1491],{"type":45,"value":1492},"Neighborhoods",{"type":39,"tag":77,"props":1494,"children":1495},{},[1496],{"type":45,"value":1497},"All highways and major roads",{"type":39,"tag":77,"props":1499,"children":1500},{},[1501],{"type":45,"value":1502},"Parks and landmarks",{"type":39,"tag":48,"props":1504,"children":1505},{},[1506,1511],{"type":39,"tag":81,"props":1507,"children":1508},{},[1509],{"type":45,"value":1510},"Zoom 12-15",{"type":45,"value":1512}," (Neighborhood):",{"type":39,"tag":73,"props":1514,"children":1515},{},[1516,1521,1526,1531],{"type":39,"tag":77,"props":1517,"children":1518},{},[1519],{"type":45,"value":1520},"All streets",{"type":39,"tag":77,"props":1522,"children":1523},{},[1524],{"type":45,"value":1525},"Building footprints",{"type":39,"tag":77,"props":1527,"children":1528},{},[1529],{"type":45,"value":1530},"POIs (restaurants, shops)",{"type":39,"tag":77,"props":1532,"children":1533},{},[1534],{"type":45,"value":1535},"Street names",{"type":39,"tag":798,"props":1537,"children":1538},{},[1539],{"type":39,"tag":48,"props":1540,"children":1541},{},[1542,1547],{"type":39,"tag":81,"props":1543,"children":1544},{},[1545],{"type":45,"value":1546},"Note:",{"type":45,"value":1548}," Mapbox's hosted Streets style defaults to showing most POIs around zoom 14. For custom styles, start POIs at zoom 12 — this is the neighborhood scale where density is manageable and users are browsing. Zoom 14 is late; zoom 10 (metro-area scale) is far too early and creates severe icon clutter.",{"type":39,"tag":48,"props":1550,"children":1551},{},[1552,1557],{"type":39,"tag":81,"props":1553,"children":1554},{},[1555],{"type":45,"value":1556},"Zoom 16-22",{"type":45,"value":1558}," (Street Level):",{"type":39,"tag":73,"props":1560,"children":1561},{},[1562,1567,1572,1577],{"type":39,"tag":77,"props":1563,"children":1564},{},[1565],{"type":45,"value":1566},"All detail",{"type":39,"tag":77,"props":1568,"children":1569},{},[1570],{"type":45,"value":1571},"House numbers",{"type":39,"tag":77,"props":1573,"children":1574},{},[1575],{"type":45,"value":1576},"Parking lots",{"type":39,"tag":77,"props":1578,"children":1579},{},[1580],{"type":45,"value":1581},"Fine-grained POIs",{"type":39,"tag":54,"props":1583,"children":1585},{"id":1584},"mapbox-specific-implementation-guidance",[1586],{"type":45,"value":1587},"Mapbox-Specific Implementation Guidance",{"type":39,"tag":61,"props":1589,"children":1591},{"id":1590},"style-layer-best-practices",[1592],{"type":45,"value":1593},"Style Layer Best Practices",{"type":39,"tag":48,"props":1595,"children":1596},{},[1597],{"type":39,"tag":81,"props":1598,"children":1599},{},[1600],{"type":45,"value":1601},"Layer Ordering (bottom to top):",{"type":39,"tag":1603,"props":1604,"children":1605},"ol",{},[1606,1611,1616,1621,1626,1631,1636,1641,1646,1651],{"type":39,"tag":77,"props":1607,"children":1608},{},[1609],{"type":45,"value":1610},"Background (solid color or pattern)",{"type":39,"tag":77,"props":1612,"children":1613},{},[1614],{"type":45,"value":1615},"Landuse (parks, residential, commercial)",{"type":39,"tag":77,"props":1617,"children":1618},{},[1619],{"type":45,"value":1620},"Water bodies (oceans, lakes, rivers)",{"type":39,"tag":77,"props":1622,"children":1623},{},[1624],{"type":45,"value":1625},"Terrain\u002Fhillshade (if using elevation)",{"type":39,"tag":77,"props":1627,"children":1628},{},[1629],{"type":45,"value":1630},"Buildings (3D or 2D footprints)",{"type":39,"tag":77,"props":1632,"children":1633},{},[1634],{"type":45,"value":1635},"Roads (highways → local streets)",{"type":39,"tag":77,"props":1637,"children":1638},{},[1639],{"type":45,"value":1640},"Borders (country, state lines)",{"type":39,"tag":77,"props":1642,"children":1643},{},[1644],{"type":45,"value":1645},"Labels (place names, street names)",{"type":39,"tag":77,"props":1647,"children":1648},{},[1649],{"type":45,"value":1650},"POI symbols",{"type":39,"tag":77,"props":1652,"children":1653},{},[1654],{"type":45,"value":1655},"User-generated content (routes, markers)",{"type":39,"tag":798,"props":1657,"children":1658},{},[1659],{"type":39,"tag":48,"props":1660,"children":1661},{},[1662,1667,1669,1675],{"type":39,"tag":81,"props":1663,"children":1664},{},[1665],{"type":45,"value":1666},"Common mistake:",{"type":45,"value":1668}," Developers often put their app's route line or active markers ",{"type":39,"tag":1670,"props":1671,"children":1672},"em",{},[1673],{"type":45,"value":1674},"below",{"type":45,"value":1676}," POI symbols, reasoning that \"POIs must stay visible.\" This is backwards — user-generated content (your route, selected location, user position) is the most important layer and must render above everything, including POIs. A route line that covers a POI icon is acceptable; a route obscured by POI icons is not.",{"type":39,"tag":61,"props":1678,"children":1680},{"id":1679},"map-context-considerations",[1681],{"type":45,"value":1682},"Map Context Considerations",{"type":39,"tag":48,"props":1684,"children":1685},{},[1686],{"type":39,"tag":81,"props":1687,"children":1688},{},[1689],{"type":45,"value":1690},"Know Your Audience:",{"type":39,"tag":73,"props":1692,"children":1693},{},[1694,1704,1714],{"type":39,"tag":77,"props":1695,"children":1696},{},[1697,1702],{"type":39,"tag":81,"props":1698,"children":1699},{},[1700],{"type":45,"value":1701},"General public",{"type":45,"value":1703},": Simplify, use familiar patterns (Google\u002FApple style)",{"type":39,"tag":77,"props":1705,"children":1706},{},[1707,1712],{"type":39,"tag":81,"props":1708,"children":1709},{},[1710],{"type":45,"value":1711},"Technical users",{"type":45,"value":1713},": Include more detail, technical layers, data precision",{"type":39,"tag":77,"props":1715,"children":1716},{},[1717,1722],{"type":39,"tag":81,"props":1718,"children":1719},{},[1720],{"type":45,"value":1721},"Domain experts",{"type":45,"value":1723},": Show specialized data, use domain-specific symbology",{"type":39,"tag":48,"props":1725,"children":1726},{},[1727],{"type":39,"tag":81,"props":1728,"children":1729},{},[1730],{"type":45,"value":1731},"Platform Considerations:",{"type":39,"tag":73,"props":1733,"children":1734},{},[1735,1745,1755,1765],{"type":39,"tag":77,"props":1736,"children":1737},{},[1738,1743],{"type":39,"tag":81,"props":1739,"children":1740},{},[1741],{"type":45,"value":1742},"Mobile",{"type":45,"value":1744},": Larger touch targets (44x44px minimum), simpler designs, readable at arm's length",{"type":39,"tag":77,"props":1746,"children":1747},{},[1748,1753],{"type":39,"tag":81,"props":1749,"children":1750},{},[1751],{"type":45,"value":1752},"Desktop",{"type":45,"value":1754},": Can include more detail, hover interactions, complex overlays",{"type":39,"tag":77,"props":1756,"children":1757},{},[1758,1763],{"type":39,"tag":81,"props":1759,"children":1760},{},[1761],{"type":45,"value":1762},"Print",{"type":45,"value":1764},": Higher contrast, larger text, consider CMYK color space",{"type":39,"tag":77,"props":1766,"children":1767},{},[1768,1773],{"type":39,"tag":81,"props":1769,"children":1770},{},[1771],{"type":45,"value":1772},"Outdoor\u002FBright",{"type":45,"value":1774},": Higher contrast, avoid subtle grays",{"type":39,"tag":48,"props":1776,"children":1777},{},[1778],{"type":39,"tag":81,"props":1779,"children":1780},{},[1781],{"type":45,"value":1782},"Use Case Optimization:",{"type":39,"tag":73,"props":1784,"children":1785},{},[1786,1796,1806,1816,1826],{"type":39,"tag":77,"props":1787,"children":1788},{},[1789,1794],{"type":39,"tag":81,"props":1790,"children":1791},{},[1792],{"type":45,"value":1793},"Navigation",{"type":45,"value":1795},": Emphasize roads, clear hierarchy, route visibility",{"type":39,"tag":77,"props":1797,"children":1798},{},[1799,1804],{"type":39,"tag":81,"props":1800,"children":1801},{},[1802],{"type":45,"value":1803},"Data visualization",{"type":45,"value":1805},": Muted base map, let data stand out",{"type":39,"tag":77,"props":1807,"children":1808},{},[1809,1814],{"type":39,"tag":81,"props":1810,"children":1811},{},[1812],{"type":45,"value":1813},"Storytelling",{"type":45,"value":1815},": Guide viewer attention, establish mood with colors",{"type":39,"tag":77,"props":1817,"children":1818},{},[1819,1824],{"type":39,"tag":81,"props":1820,"children":1821},{},[1822],{"type":45,"value":1823},"Location selection",{"type":45,"value":1825},": Show POIs clearly, provide context",{"type":39,"tag":77,"props":1827,"children":1828},{},[1829,1834],{"type":39,"tag":81,"props":1830,"children":1831},{},[1832],{"type":45,"value":1833},"Analysis",{"type":45,"value":1835},": Include relevant layers, maintain clarity at different zooms",{"type":39,"tag":54,"props":1837,"children":1839},{"id":1838},"reference-files",[1840],{"type":45,"value":1841},"Reference Files",{"type":39,"tag":48,"props":1843,"children":1844},{},[1845],{"type":45,"value":1846},"For detailed guidance on specific topics, load these references as needed:",{"type":39,"tag":73,"props":1848,"children":1849},{},[1850,1861],{"type":39,"tag":77,"props":1851,"children":1852},{},[1853,1859],{"type":39,"tag":305,"props":1854,"children":1856},{"className":1855},[],[1857],{"type":45,"value":1858},"references\u002Fscenarios.md",{"type":45,"value":1860}," — Common scenario guidance (Restaurant Finder, Real Estate, Data Visualization, Navigation)",{"type":39,"tag":77,"props":1862,"children":1863},{},[1864,1870],{"type":39,"tag":305,"props":1865,"children":1867},{"className":1866},[],[1868],{"type":45,"value":1869},"references\u002Fperformance-testing.md",{"type":45,"value":1871}," — Performance optimization, testing checklist, and common mistakes to avoid",{"type":39,"tag":54,"props":1873,"children":1875},{"id":1874},"when-to-use-this-skill",[1876],{"type":45,"value":1877},"When to Use This Skill",{"type":39,"tag":48,"props":1879,"children":1880},{},[1881],{"type":45,"value":1882},"Invoke this skill when:",{"type":39,"tag":73,"props":1884,"children":1885},{},[1886,1891,1896,1901,1906,1911,1916],{"type":39,"tag":77,"props":1887,"children":1888},{},[1889],{"type":45,"value":1890},"Designing a new map style",{"type":39,"tag":77,"props":1892,"children":1893},{},[1894],{"type":45,"value":1895},"Choosing colors for map elements",{"type":39,"tag":77,"props":1897,"children":1898},{},[1899],{"type":45,"value":1900},"Making decisions about visual hierarchy",{"type":39,"tag":77,"props":1902,"children":1903},{},[1904],{"type":45,"value":1905},"Optimizing for specific use cases",{"type":39,"tag":77,"props":1907,"children":1908},{},[1909],{"type":45,"value":1910},"Troubleshooting visibility issues",{"type":39,"tag":77,"props":1912,"children":1913},{},[1914],{"type":45,"value":1915},"Ensuring accessibility",{"type":39,"tag":77,"props":1917,"children":1918},{},[1919],{"type":45,"value":1920},"Creating themed maps (dark mode, vintage, etc.)",{"type":39,"tag":1922,"props":1923,"children":1924},"style",{},[1925],{"type":45,"value":1926},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1928,"total":2025},[1929,1942,1949,1964,1986,1998,2012],{"slug":1930,"name":1930,"fn":1931,"description":1932,"org":1933,"tags":1934,"stars":23,"repoUrl":24,"updatedAt":1941},"mapbox-android-patterns","integrate Mapbox Maps SDK on Android","Official integration patterns for Mapbox Maps SDK on Android. Covers installation, adding markers, user location, custom data, styles, camera control, and featureset interactions. Based on official Mapbox documentation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1935,1938,1939],{"name":1936,"slug":1937,"type":13},"Android","android",{"name":9,"slug":8,"type":13},{"name":1742,"slug":1940,"type":13},"mobile","2026-07-30T05:30:51.739352",{"slug":4,"name":4,"fn":5,"description":6,"org":1943,"tags":1944,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1945,1946,1947,1948],{"name":15,"slug":16,"type":13},{"name":21,"slug":22,"type":13},{"name":9,"slug":8,"type":13},{"name":18,"slug":19,"type":13},{"slug":1950,"name":1950,"fn":1951,"description":1952,"org":1953,"tags":1954,"stars":23,"repoUrl":24,"updatedAt":1963},"mapbox-data-visualization-patterns","implement Mapbox data visualization patterns","Patterns for visualizing data on maps including choropleth maps, heat maps, 3D visualizations, data-driven styling, and animated data. Covers layer types, color scales, and performance optimization.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1955,1958,1959,1960],{"name":1956,"slug":1957,"type":13},"Data Visualization","data-visualization",{"name":21,"slug":22,"type":13},{"name":9,"slug":8,"type":13},{"name":1961,"slug":1962,"type":13},"Performance","performance","2026-04-06T18:29:02.907655",{"slug":1965,"name":1965,"fn":1966,"description":1967,"org":1968,"tags":1969,"stars":23,"repoUrl":24,"updatedAt":1985},"mapbox-flutter-patterns","integrate Mapbox maps into Flutter applications","Official integration patterns for the Mapbox Maps Flutter SDK. Covers installation, iOS\u002FAndroid platform setup, access token configuration, MapWidget initialization, camera control, annotations with tap handling, user location, and loading GeoJSON. Based on official Mapbox documentation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1970,1971,1974,1977,1980,1981,1982],{"name":1936,"slug":1937,"type":13},{"name":1972,"slug":1973,"type":13},"Dart","dart",{"name":1975,"slug":1976,"type":13},"Flutter","flutter",{"name":1978,"slug":1979,"type":13},"iOS","ios",{"name":9,"slug":8,"type":13},{"name":1742,"slug":1940,"type":13},{"name":1983,"slug":1984,"type":13},"SDK","sdk","2026-05-12T06:03:11.211517",{"slug":1987,"name":1987,"fn":1988,"description":1989,"org":1990,"tags":1991,"stars":23,"repoUrl":24,"updatedAt":1997},"mapbox-geospatial-operations","select geospatial tools for Mapbox operations","Expert guidance on choosing the right geospatial tool based on problem type, accuracy requirements, and performance needs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1992,1993,1994],{"name":9,"slug":8,"type":13},{"name":1961,"slug":1962,"type":13},{"name":1995,"slug":1996,"type":13},"Strategy","strategy","2026-07-30T05:30:52.766227",{"slug":1999,"name":1999,"fn":2000,"description":2001,"org":2002,"tags":2003,"stars":23,"repoUrl":24,"updatedAt":2011},"mapbox-google-maps-migration","migrate from Google Maps to Mapbox","Migration guide for developers moving from Google Maps Platform to Mapbox GL JS, covering API equivalents, pattern translations, and key differences",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2004,2005,2008],{"name":9,"slug":8,"type":13},{"name":2006,"slug":2007,"type":13},"Migration","migration",{"name":2009,"slug":2010,"type":13},"Web Development","web-development","2026-04-06T18:28:56.459496",{"slug":2013,"name":2013,"fn":2014,"description":2015,"org":2016,"tags":2017,"stars":23,"repoUrl":24,"updatedAt":2024},"mapbox-ios-patterns","integrate Mapbox Maps SDK on iOS","Official integration patterns for Mapbox Maps SDK on iOS. Covers installation, adding markers, user location, custom data, styles, camera control, and featureset interactions. Based on official Mapbox documentation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2018,2019,2020,2021],{"name":1978,"slug":1979,"type":13},{"name":9,"slug":8,"type":13},{"name":1742,"slug":1940,"type":13},{"name":2022,"slug":2023,"type":13},"Swift","swift","2026-07-30T05:30:54.75526",19,{"items":2027,"total":2025},[2028,2034,2041,2048,2058,2064,2070,2077,2091,2104,2119,2131],{"slug":1930,"name":1930,"fn":1931,"description":1932,"org":2029,"tags":2030,"stars":23,"repoUrl":24,"updatedAt":1941},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2031,2032,2033],{"name":1936,"slug":1937,"type":13},{"name":9,"slug":8,"type":13},{"name":1742,"slug":1940,"type":13},{"slug":4,"name":4,"fn":5,"description":6,"org":2035,"tags":2036,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2037,2038,2039,2040],{"name":15,"slug":16,"type":13},{"name":21,"slug":22,"type":13},{"name":9,"slug":8,"type":13},{"name":18,"slug":19,"type":13},{"slug":1950,"name":1950,"fn":1951,"description":1952,"org":2042,"tags":2043,"stars":23,"repoUrl":24,"updatedAt":1963},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2044,2045,2046,2047],{"name":1956,"slug":1957,"type":13},{"name":21,"slug":22,"type":13},{"name":9,"slug":8,"type":13},{"name":1961,"slug":1962,"type":13},{"slug":1965,"name":1965,"fn":1966,"description":1967,"org":2049,"tags":2050,"stars":23,"repoUrl":24,"updatedAt":1985},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2051,2052,2053,2054,2055,2056,2057],{"name":1936,"slug":1937,"type":13},{"name":1972,"slug":1973,"type":13},{"name":1975,"slug":1976,"type":13},{"name":1978,"slug":1979,"type":13},{"name":9,"slug":8,"type":13},{"name":1742,"slug":1940,"type":13},{"name":1983,"slug":1984,"type":13},{"slug":1987,"name":1987,"fn":1988,"description":1989,"org":2059,"tags":2060,"stars":23,"repoUrl":24,"updatedAt":1997},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2061,2062,2063],{"name":9,"slug":8,"type":13},{"name":1961,"slug":1962,"type":13},{"name":1995,"slug":1996,"type":13},{"slug":1999,"name":1999,"fn":2000,"description":2001,"org":2065,"tags":2066,"stars":23,"repoUrl":24,"updatedAt":2011},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2067,2068,2069],{"name":9,"slug":8,"type":13},{"name":2006,"slug":2007,"type":13},{"name":2009,"slug":2010,"type":13},{"slug":2013,"name":2013,"fn":2014,"description":2015,"org":2071,"tags":2072,"stars":23,"repoUrl":24,"updatedAt":2024},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2073,2074,2075,2076],{"name":1978,"slug":1979,"type":13},{"name":9,"slug":8,"type":13},{"name":1742,"slug":1940,"type":13},{"name":2022,"slug":2023,"type":13},{"slug":2078,"name":2078,"fn":2079,"description":2080,"org":2081,"tags":2082,"stars":23,"repoUrl":24,"updatedAt":2090},"mapbox-location-grounding","generate grounded location-aware responses with Mapbox","Compose Mapbox MCP tools to produce grounded, cited location-aware responses from live data instead of training data",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2083,2086,2087],{"name":2084,"slug":2085,"type":13},"Data Quality","data-quality",{"name":9,"slug":8,"type":13},{"name":2088,"slug":2089,"type":13},"MCP","mcp","2026-04-15T05:01:44.248764",{"slug":2092,"name":2092,"fn":2093,"description":2094,"org":2095,"tags":2096,"stars":23,"repoUrl":24,"updatedAt":2103},"mapbox-maplibre-migration","migrate from MapLibre to Mapbox","Guide for migrating from MapLibre GL JS to Mapbox GL JS, covering API compatibility, token setup, style configuration, and the benefits of Mapbox's official support and ecosystem",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2097,2100,2101,2102],{"name":2098,"slug":2099,"type":13},"Engineering","engineering",{"name":9,"slug":8,"type":13},{"name":2006,"slug":2007,"type":13},{"name":2009,"slug":2010,"type":13},"2026-04-06T18:28:51.531856",{"slug":2105,"name":2105,"fn":2106,"description":2107,"org":2108,"tags":2109,"stars":23,"repoUrl":24,"updatedAt":2118},"mapbox-mcp-devkit-patterns","integrate Mapbox MCP DevKit in coding assistants","Integration patterns for Mapbox MCP DevKit Server in AI coding assistants. Covers setup, style management, token management, validation workflows, and documentation access through MCP. Use when building Mapbox applications with AI coding assistance.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2110,2113,2116,2117],{"name":2111,"slug":2112,"type":13},"Documentation","documentation",{"name":2114,"slug":2115,"type":13},"Local Development","local-development",{"name":9,"slug":8,"type":13},{"name":2088,"slug":2089,"type":13},"2026-04-06T18:28:53.790961",{"slug":2120,"name":2120,"fn":2121,"description":2122,"org":2123,"tags":2124,"stars":23,"repoUrl":24,"updatedAt":2130},"mapbox-mcp-runtime-patterns","integrate Mapbox MCP Server in AI apps","Integration patterns for Mapbox MCP Server in AI applications and agent frameworks. Covers runtime integration with pydantic-ai, mastra, LangChain, and custom agents. Use when building AI-powered applications that need geospatial capabilities.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2125,2128,2129],{"name":2126,"slug":2127,"type":13},"Architecture","architecture",{"name":9,"slug":8,"type":13},{"name":2088,"slug":2089,"type":13},"2026-04-06T18:28:55.164842",{"slug":2132,"name":2132,"fn":2133,"description":2134,"org":2135,"tags":2136,"stars":23,"repoUrl":24,"updatedAt":2144},"mapbox-search-integration","implement Mapbox search in applications","Complete workflow for implementing Mapbox search in applications - from discovery questions to production-ready integration with best practices",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2137,2140,2141],{"name":2138,"slug":2139,"type":13},"API Development","api-development",{"name":9,"slug":8,"type":13},{"name":2142,"slug":2143,"type":13},"Search","search","2026-04-06T18:28:50.264933"]