mapbox-style-patterns
mapbox/mapbox-agent-skills
Battle-tested Mapbox style patterns and layer configurations for restaurant finders, real estate, data visualization, navigation, and delivery maps.
What is mapbox-style-patterns?
This skill provides proven style patterns and layer configurations for common mapping scenarios including POI finders, real estate, data visualization, navigation, and delivery/logistics. Use it when implementing a specific map use case or looking for optimized layer setups and visual recipes.
- Provides complete layer configurations for 6 common mapping patterns (POI finder, real estate, data visualization, navigation, dark mode, delivery/logistics)
- Includes decision tree to select the right pattern based on content type, environment, user action, and platform
- Offers performance optimization patterns with zoom-based layer simplification
- Contains reference files with detailed implementations for each pattern including color schemes, icon sizing, and text styling
- Provides visual regression testing checklist for validating styles across zoom levels and devices
- Demonstrates data-driven expressions and clustering techniques for dense POI datasets
How to install mapbox-style-patterns
npx skills add https://github.com/mapbox/mapbox-agent-skills --skill mapbox-style-patterns- Mapbox GL JS library installed and initialized
- Valid Mapbox access token
- Familiarity with Mapbox style JSON format
- Source data configured (e.g., restaurants, properties, or tracking data)
How to use mapbox-style-patterns
- 1.Identify your use case using the decision tree (content type, environment, user action, platform)
- 2.Select the corresponding pattern from the skill (POI Finder, Real Estate, Data Visualization, Navigation, Dark Mode, or Delivery/Logistics)
- 3.Load the relevant reference file from the references/ directory for detailed implementation
- 4.Copy the recommended layer configuration JSON into your Mapbox style
- 5.Customize colors, icons, and text styling to match your brand and data
- 6.Test the style across zoom levels 4, 8, 12, 16, and 20 using the visual regression checklist
- 7.Verify performance and label collision on both mobile (375px) and desktop (1920px) viewports
Use cases
- Building a restaurant or café finder app with high-contrast markers and desaturated base map
- Creating a real estate listing map with property boundaries and price-based color coding
- Designing a data visualization dashboard with minimal base map to highlight choropleth or heatmap overlays
- Implementing a navigation/routing interface with route display and turn-by-turn indicators
- Building a delivery or logistics tracking map with real-time driver markers and service zones
- Frontend developers building consumer mapping applications
- Product teams implementing location-based features
- Designers creating map interfaces for specific use cases
- Teams optimizing Mapbox styles for performance and usability
- Developers new to Mapbox seeking proven configuration examples
mapbox-style-patterns FAQ
Use the decision tree in the skill: first identify your primary content (POIs, properties, data, routes, or tracking), then consider viewing environment (light/dark/variable), user action (browse, navigate, track, analyze), and platform (mobile/desktop/both). Each combination points to a specific pattern.
Yes, patterns can be layered. For example, you might use the Navigation pattern as a base and add the Delivery/Logistics pattern for real-time tracking overlays. Start with the base pattern and add additional layers from other patterns as needed.
Use the clustering and data-driven expressions patterns in references/expressions-clustering.md. The skill also provides a performance pattern with zoom-based layer simplification that shows fewer road classes at lower zoom levels.
Follow the visual regression checklist: test at zoom levels 4, 8, 12, 16, 20; verify on mobile (375px) and desktop (1920px); test with dense and sparse data; check label collision, color contrast (WCAG), and loading performance.
Each pattern has a corresponding reference file in the references/ directory (e.g., references/real-estate.md, references/delivery-logistics.md). Load the file matching your use case for complete layer configurations, color schemes, and styling details.
Full instructions (SKILL.md)
Source of truth, from mapbox/mapbox-agent-skills.
name: mapbox-style-patterns description: Common style patterns, layer configurations, and recipes for typical mapping scenarios including restaurant finders, real estate, data visualization, navigation, delivery/logistics, and more. Use when implementing specific map use cases or looking for proven style patterns.
Mapbox Style Patterns Skill
This skill provides battle-tested style patterns and layer configurations for common mapping scenarios.
Pattern Library
Pattern 1: Restaurant/POI Finder
Use case: Consumer app showing restaurants, cafes, bars, or other points of interest
Visual requirements:
- POIs must be immediately visible
- Street context for navigation
- Neutral background (photos/content overlay)
- Mobile-optimized
Recommended layers:
{
"layers": [
{
"id": "background",
"type": "background",
"paint": {
"background-color": "#f5f5f5"
}
},
{
"id": "water",
"type": "fill",
"source": "mapbox-streets",
"source-layer": "water",
"paint": {
"fill-color": "#d4e4f7",
"fill-opacity": 0.6
}
},
{
"id": "landuse-parks",
"type": "fill",
"source": "mapbox-streets",
"source-layer": "landuse",
"filter": ["==", "class", "park"],
"paint": {
"fill-color": "#e8f5e8",
"fill-opacity": 0.5
}
},
{
"id": "roads-minor",
"type": "line",
"source": "mapbox-streets",
"source-layer": "road",
"filter": ["in", "class", "street", "street_limited"],
"paint": {
"line-color": "#e0e0e0",
"line-width": {
"base": 1.5,
"stops": [
[12, 0.5],
[15, 2],
[18, 6]
]
}
}
},
{
"id": "roads-major",
"type": "line",
"source": "mapbox-streets",
"source-layer": "road",
"filter": ["in", "class", "primary", "secondary", "tertiary"],
"paint": {
"line-color": "#ffffff",
"line-width": {
"base": 1.5,
"stops": [
[10, 1],
[15, 4],
[18, 12]
]
}
}
},
{
"id": "restaurant-markers",
"type": "symbol",
"source": "restaurants",
"layout": {
"icon-image": "restaurant-15",
"icon-size": 1.5,
"icon-allow-overlap": false,
"text-field": ["get", "name"],
"text-offset": [0, 1.5],
"text-size": 12,
"text-allow-overlap": false
},
"paint": {
"icon-color": "#FF6B35",
"text-color": "#333333",
"text-halo-color": "#ffffff",
"text-halo-width": 2
}
}
]
}
Key features:
- Desaturated base map (doesn't compete with photos)
- High-contrast markers (#FF6B35 orange stands out)
- Clear road network (white on light gray)
- Parks visible but subtle
- Text halos for readability
Pattern Selection Guide
Decision Tree
Question 1: What is the primary content?
- User-generated markers/pins -> POI Finder Pattern
- Property data/boundaries -> Real Estate Pattern
- Statistical/analytical data -> Data Visualization Pattern
- Routes/directions -> Navigation Pattern
- Real-time tracking/delivery zones -> Delivery/Logistics Pattern (customer markers should include a pulse animation via second circle layer + requestAnimationFrame + setPaintProperty; see references/delivery-logistics.md)
Question 2: What is the viewing environment?
- Daytime/office -> Light theme
- Night/dark environment -> Dark Mode Pattern
- Variable -> Provide theme toggle
Question 3: What is the user's primary action?
- Browse/explore -> Focus on POIs, rich detail
- Navigate -> Focus on roads, route visibility
- Track delivery/logistics -> Real-time updates, zones, status
- Analyze data -> Minimize base map, maximize data
- Select location -> Clear boundaries, context
Question 4: What is the platform?
- Mobile -> Simplified, larger touch targets, less detail
- Desktop -> Can include more detail and complexity
- Both -> Design mobile-first, enhance for desktop
Layer Optimization Patterns
Performance Pattern: Simplified by Zoom
{
"id": "roads",
"type": "line",
"source": "mapbox-streets",
"source-layer": "road",
"filter": [
"step",
["zoom"],
["in", "class", "motorway", "trunk"],
8,
["in", "class", "motorway", "trunk", "primary"],
12,
["in", "class", "motorway", "trunk", "primary", "secondary"],
14,
true
],
"paint": {
"line-width": {
"base": 1.5,
"stops": [
[4, 0.5],
[10, 1],
[15, 4],
[18, 12]
]
}
}
}
Reference Files
Additional patterns and configurations are available in the references/ directory. Load the relevant file when a specific pattern is needed.
| File | Contents |
|---|---|
| references/real-estate.md | Pattern 2: Real Estate Map -- property boundaries, price color-coding, amenity markers |
| references/data-viz-base.md | Pattern 3: Data Visualization Base Map -- minimal grayscale base for choropleth/heatmap overlays |
| references/navigation.md | Pattern 4: Navigation/Routing Map -- route display, user location, turn arrows |
| references/dark-mode.md | Pattern 5: Dark Mode / Night Theme -- near-black background, reduced brightness |
| references/delivery-logistics.md | Pattern 6: Delivery/Logistics Map -- real-time tracking, zones, driver markers, ETA badges |
| references/expressions-clustering.md | Data-driven expression patterns + clustering for dense POIs |
| references/common-modifications.md | 3D Buildings, Terrain/Hillshade, Custom Markers |
| references/interactions.md | addInteraction vs setFeatureState vs appearances -- how they fit together and when to use each |
Loading instructions: Read the reference file that matches the user's use case. For example, if implementing a delivery tracking map, load references/delivery-logistics.md.
Testing Patterns
Visual Regression Checklist
- Test at zoom levels: 4, 8, 12, 16, 20
- Verify on mobile (375px width)
- Verify on desktop (1920px width)
- Test with dense data
- Test with sparse data
- Check label collision
- Verify color contrast (WCAG)
- Test loading performance
When to Use This Skill
Invoke this skill when:
- Starting a new map style for a specific use case
- Looking for layer configuration examples
- Implementing common mapping patterns
- Optimizing existing styles
- Need proven recipes for typical scenarios
- Debugging style issues
- Learning Mapbox style best practices
Related skills
More from mapbox/mapbox-agent-skills and the wider catalog.

mapbox-style-quality
Validate, optimize, and ensure quality of Mapbox styles for production deployment.

mapbox-token-security
Security best practices for Mapbox access tokens: scopes, URL restrictions, rotation, and safe storage.

mapbox-web-integration-patterns
Official Mapbox GL JS integration patterns for React, Vue, Svelte, and Angular with best practices.

mapbox-web-performance-patterns
Performance optimization patterns for Mapbox GL JS web applications.

yt-dlp-downloader
Download videos from YouTube, Bilibili, Twitter, and thousands of other sites using yt-dlp. Use when the user provides a video URL and wants to download it, extract audio (MP3), download subtitles, or select video quality. Triggers on phrases like "下载视频", "download video", "yt-dlp", "YouTube", "B站", "抖音", "提取音频", "extract audio".

conventional-commit
Create conventional commit messages following best conventions. Use when committing code changes, writing commit messages, or formatting git history. Follows conventional commits specification.